背景
我的路由器本来都是一直使用中继模式来连接WiFi的,但是路由器突然连不上出租房的WiFi了。手机连接的上,所以我怀疑可能是路由器mac地址被阻断了,一开始我打算修改路由器的mac地址,但是发现好像不行,所以后面我就使用树莓派连接WiFi,然后通过网口共享网络给软路由。
修改路由器的mac地址
使用 ifconfig -a
可以查看所有网卡对应的mac地址
这里可以和路由器对应一下
这里我们可以看到那个对应的外部的ip地址
ifconfig apcli0 down
ifconfig apcli0 hw ether 00:0C:18:EF:FF:ED
ifconfig apcli0 up
但是这样做不行。。。一直报错,所以,这个东西暂时无解。。。
树莓派网络共享
无奈只能尝试下一个方法。。让树莓派连接WiFi,然后通过树莓派的网口来共享网络,首先我们让树莓派连接WiFi
进入网络工具 sudo wpa_cli -i wlan0
首先输入scan
扫描WiFi
使用scan_result
获取我们扫描的结果,不过这个扫描的结果好像为空。。。
不过我们不管它,我们已经知道WiFi的名字和密码了,直接设置就行
我们可以使用 list_network
查看配置过的网络信息
下面我们新建一个新网络 add_network
下面设置一下WiFi和密码,这个数字要和那个add_network返回的数字对应
set_network 1 ssid "LHC102202"
set_network 1 psk "1234567890"
set_network 1 key_mgmt WPA-PSK
set_network 1 bssid 54:75:95:63:ba:c6
然后使用下面这个命令 select_network 1
然后我们默认使用这个WiFi
enable_network 1
保存配置 save_config
使用 status
查看链接状态
我们也可以这样使用
$ sudo wpa_cli -i wlan0 scan // 搜索附近wifi网络
$ sudo wpa_cli -i wlan0 scan_result // 打印搜索wifi网络结果
$ sudo wpa_cli -i wlan0 add_network // 添加一个网络连接
无线桥接
注意,配置网桥前我们不能在通过网口来传递数据了,我们只能通过连接wifi的ip地址来连接树莓派
配置网桥
其实就是设置一个lan口
sudo apt install bridge-utils
brctl addbr br0
brctl addif br0 eth0
ifconfig br0 192.168.3.1 up
ifconfig eth0 0.0.0.0 up
在配置的时候出现了下面这个错误
可能是因为我之前配置过 /etc/resolv.conf
,改成下面这个
nameserver 8.8.8.8
不过改了还是无效
切换为root用户就不报这个错了,是sudo的问题。。我们先不管这个。。
配置ip转发
vim /etc/sysctl.conf
去掉net.ipv4.ip_forward=1的注释,保存退出
sysctl -p
配置iptables
想让内网的所有设备共享这一个公网IP,需要在wlan0网口启用nat
iptables -t nat -A POSTROUTING -o wlan0 -j MASQUERADE
安装DHCP/DNS服务器
apt install dnsmasq
vim /etc/dnsmasq.conf
# 添加如下内容
interface=br0
dhcp-range=192.168.3.50,192.168.3.200,255.255.255.0,12h
# 重启一下
systemctl reload dnsmasq
开机启动
vim bridge-init.sh
#!/bin/sh
set -m
brctl addbr br0
brctl addif br0 eth0
ifconfig br0 192.168.3.1 up
ifconfig eth0 0.0.0.0 up
sysctl -p
iptables -t nat -A POSTROUTING -o wlan0 -j MASQUERADE
service dnsmasq start
然后我们放到init.d里面去
cp bridge-init.sh /etc/init.d
chmod 755 /etc/init.d/bridge-init.sh
cd /etc/init.d
update-rc.d bridge-init.sh defaults 95
卸载脚本
cd /etc/init.d
update-rc.d -f bridge-init.sh
这个开机脚本好像没用,不过算了,我们就自己手动启动吧。。
然后我们接上软路由,发现可以访问了
后记
最后我发现可以下面这样搞,我怀疑可能是mac地址有多个导致无法连接
参考文章
【树莓派】在Raspbian下将wifi中继为有线网络_colorfulshark-CSDN博客
使用wpa_cli命令行配置Wi-Fi无线网卡_记得最初的梦想-CSDN博客