树莓派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
接入的无线网络,是不是很酷呢?😎