一、简介
最近淘了一个二手树莓派3B来玩,想把它变成随身路由器实现无线中继的功能,但是只有一个无线网卡,经过各种努力认真学习了一周的时间终于搞定了。
二、我目前在使用的云服务器推荐,学Linux不搞个云服务器始终感觉不爽
要稳定性、安全性、不差钱的可以使用阿里、腾讯等大厂的云服务器。
本人穷屌丝一枚,所以我用的是免费的“三丰云”,同时提供"免费虚拟主机"和“免费云服务器”产品,有兴趣的可以试一下。
“三丰云”我已经用了一段时间,感觉还是很不错的,速度快也很稳定。
三丰云 https://www.sanfengyun.com 链接。
大家可以点击前往查看是否需要。
三、树莓派开启ap-sta模式--第一步配置uap0虚拟接口
经过我的测试这种方法是可以使用的,至于其他方法肯定有,但是我只会这一种,只成功了这一种方法,做个记录以后需要用的时候可以直接来看。
废话不多说了直接上代码,把下面的内容保存为/home/username/softap.sh
#!/bin/bash
# 等待2秒
sleep 2
# 开启内核转发
echo 1 > /proc/sys/net/ipv4/ip_forward
sleep 6
# 建立虚拟接口uap0
iw dev wlan0 interface add uap0 type __ap
# 设置循环运行次数记录变量
runnum=1
# 设置接口ip地址,做了一个循环直到设置成功为止
until [ "$(ifconfig |grep 192.168.103. |wc -l)" = 1 ]
do
# 打印循环运行次数
echo run number:$runnum
# 运行次数加1
runnum=$(($runnum+1))
sleep 6
# 配置uap0接口ip地址
ip addr add 192.168.103.1/24 broadcast 192.168.103.255 dev uap0
done
sleep 2
# 重启hostapd服务
service hostapd restart
sleep 2
# 重启udhcpd服务
service udhcpd restart
# 删除所有条目,但是不包括nat
iptables -F
# 设置允许进入接口
iptables -P INPUT ACCEPT
# 设置允许转发
iptables -P FORWARD ACCEPT
# 下面几条是开启相应端口的nat转发的
iptables -t nat -A POSTROUTING -o wlan0 -j MASQUERADE
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
iptables -t nat -A POSTROUTING -o ztuwzbcaod -j MASQUERADE
iptables -t nat -A POSTROUTING -o uap0 -j MASQUERADE
然后在/etc/rc.local文件中添加一条命令在启动时执行上面那个脚本如下
#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.
# Print the IP address
_IP=$(hostname -I) || true
if [ "$_IP" ]; then
printf "My IP address is %s\n" "$_IP"
fi
# 这一条就是用来执行脚本的命令
/bin/bash /home/username/softap.sh
exit 0
然后再执行如下命令就可以重启了
# 把"12:34:56:78:90:00"中的mac地址替换为自己的uap0接口的mac地址即可
sudo su root -c 'echo SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="12:34:56:78:90:00", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="wlan*", NAME="uap0" > /etc/udev/rules.d/70-persistent-net.rules'
关于hostapd和udhcpd这两个服务的配置,下次再来记录。