树莓派4变身旁路由
上篇文章轶哥介绍了树莓派4使用OTG功能变身有线网卡的方法。今天我们就来实践让树莓派4变身路由器。(由于本文的「操作」不具备拨号功能,更适合作为旁路由使用。需要实现拨号请自行研究。😂)
2020年07月23日更新:树莓派可以直接安装OpenWRT作为旁路由,但是无法使用OTG有线网卡这个功能。
让树莓派联网
无线: 使用raspi-config,设置WIFI网络,让树莓派联网。
有线: 使用raspi-config,设置WIFI网络的国家,保存后按Esc退出安装界面,插入网线。
无论选择以上何种方式,请参考树莓派4使用OTG功能变身有线网卡的方法将Type-C接口和电脑的USB接口相连,使用OTG USB网卡确保我们在树莓派中途断网的情况下也能通过ssh [email protected]的方式连接到树莓派。
让树莓派具备AP功能(开热点)
安装RaspAP,让树莓派拥有漂亮的网络管理界面:
安装过程中会有一些选项,根据你的需要来选择即可,无论作出何种选择均不会影响树莓派变身为旁路由。
安装完成后,执行telinit 6,重启设备。
重启完成在浏览器输入http://raspberrypi.local/访问管理界面:

用户名: admin 密 码: secret
登录成功后可以看到当前树莓派已经具备WIFI热点功能。

在RaspAP管理界面,我们会发现WiFi client功能无法正常使用。这是因为目前我们的AP工作方式是eth0接入,wlan0发出热点信号。

这时,如果插入的是有线网络,其它设备搜索名称为raspi-webgui的WIFI,输入默认密码ChangeMe即可上网。运行模式如上图。
让USB OTG网卡也能上网
当前的USB OTG网卡仍然是169.254.x.x一类的地址,是无法连接网络的。
编辑/etc/dhcpcd.conf,在最末尾添加如下配置:
# OTG USB usb0 configuration
interface usb0
static ip_address=192.168.130.1/24
static domain_name_server=
生成/etc/dnsmasq.d/usb0.conf文件,添加如下配置:
重启dhcpcd和dnsmasq服务。
通过ifconfig命令,我们可以看到usb0网卡拥有了192.168.130.1这个IP地址,同时与之相连的电脑也获取到了该网段的IP地址。
如果现在将网线插入到树莓派有线网卡,则USB OTG网卡也可以上网了。虽然usb0与wlan0不在同一网段,但是他们之间的设备是可以互相访问的。此时的运行模式如下:

让树莓派具备无线接入功能
现在我们知道如何将有线网络共享为无线WIFI信号并分享给USB OTG网卡使用。不过很多时候我们并没有有线网络接入的条件,我们需要进行无线网络接入(本文采用外接USB网卡的方式实现),然后分享给有线网卡eth0、无线热点wlan0、OTG USB网卡usb0。不过,由于无线网络接入速率较低,保留有限网卡eth0作为接入网口(WAN口)更具有现实意义,因此本文不再描述如何将其变为LAN口,感兴趣的小伙伴可以自己研究研究。
我们希望树莓派具备下图的运行模式:

我使用具备双频WIFI的网件AC6210网卡,在树莓派下免驱。

插入USB无线网卡,执行ifconfig -a确认驱动安装正常,确认网卡编号是wlan1。如不出意外,网卡会自动连上之前连接过的WIFI。
将/var/www/html/includes/config.php文件中的
改为
修改/etc/dhcpcd.conf文件,在wlan0(注意是板载网卡wlan0)的配置最后面加上nohook wpa_supplicant。例如:
# RaspAP wlan0 configuration
interface wlan0
static ip_address=10.3.141.1/24
static routers=10.3.141.1
static domain_name_server=9.9.9.9 1.1.1.1
nohook wpa_supplicant
最后重启hostapd:
如一切正常,则USB OTG网卡以及WIFI热点均可正常访问网络。
当然,也有小伙伴发现无法上网,排查方式如下:
查看当前设备路由表。结果可能和下述相似:
root@raspberrypi:~# route
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
default 10.3.141.1 0.0.0.0 UG 304 0 0 wlan0
default OpenWrt.lan 0.0.0.0 UG 305 0 0 wlan1
10.3.141.0 0.0.0.0 255.255.255.0 U 304 0 0 wlan0
192.168.100.0 0.0.0.0 255.255.255.0 U 305 0 0 wlan1
192.168.130.0 0.0.0.0 255.255.255.0 U 203 0 0 usb0
这是由于默认网关优先级不够导致无法正常上网。
修改后即可正常上网。
同理,有线网口eth0和USB无线网卡wlan1都可以作为WAN口接入网络,而具体想选择谁来上网,只需要调整路由的优先级即可。
按照轶哥提供的修改方法,RaspAP原本的功能不会受到影响,而且首页还能显示wlan1的信息,可以可视化配置wlan1接入的无线网络,是不是很酷呢?😎