轶哥

📚 Having fun with AI Agent. Always learning.

    树莓派4变身旁路由
    •   更新:2020-07-23 19:32:18
    •   首发:2020-05-12 00:47:33
    •   教程
    •   6308

    上篇文章轶哥介绍了树莓派4使用OTG功能变身有线网卡的方法。今天我们就来实践让树莓派4变身路由器。(由于本文的「操作」不具备拨号功能,更适合作为旁路由使用。需要实现拨号请自行研究。😂)

    2020年07月23日更新:树莓派可以直接安装OpenWRT作为旁路由,但是无法使用OTG有线网卡这个功能。

    让树莓派联网

    无线: 使用raspi-config,设置WIFI网络,让树莓派联网。

    有线: 使用raspi-config,设置WIFI网络的国家,保存后按Esc退出安装界面,插入网线。

    无论选择以上何种方式,请参考树莓派4使用OTG功能变身有线网卡的方法将Type-C接口和电脑的USB接口相连,使用OTG USB网卡确保我们在树莓派中途断网的情况下也能通过ssh root@raspberrypi.local的方式连接到树莓派。

    让树莓派具备AP功能(开热点)

    安装RaspAP,让树莓派拥有漂亮的网络管理界面:

    curl -sL https://install.raspap.com | bash
    

    安装过程中会有一些选项,根据你的需要来选择即可,无论作出何种选择均不会影响树莓派变身为旁路由。

    安装完成后,执行telinit 6,重启设备。

    重启完成在浏览器输入http://raspberrypi.local/访问管理界面:

    RaspAP-Login

    用户名: admin 密 码: secret

    登录成功后可以看到当前树莓派已经具备WIFI热点功能。

    RaspAP-Home

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

    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文件,添加如下配置:

    interface=usb0
    dhcp-range=192.168.130.100,192.168.130.255,255.255.255.0,12h
    

    重启dhcpcddnsmasq服务。

    sudo systemctl daemon-reload
    sudo systemctl restart dhcpcd
    sudo systemctl restart dnsmasq
    

    通过ifconfig命令,我们可以看到usb0网卡拥有了192.168.130.1这个IP地址,同时与之相连的电脑也获取到了该网段的IP地址。

    如果现在将网线插入到树莓派有线网卡,则USB OTG网卡也可以上网了。虽然usb0wlan0不在同一网段,但是他们之间的设备是可以互相访问的。此时的运行模式如下:

    eth0-wlan0-usb0

    让树莓派具备无线接入功能

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

    我们希望树莓派具备下图的运行模式:

    eth0-wlan0-usb0-wlan1

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

    raspberry4-ac6210

    插入USB无线网卡,执行ifconfig -a确认驱动安装正常,确认网卡编号是wlan1。如不出意外,网卡会自动连上之前连接过的WIFI。

    /var/www/html/includes/config.php文件中的

    define('RASPI_WIFI_CLIENT_INTERFACE', 'wlan0')
    

    改为

    define('RASPI_WIFI_CLIENT_INTERFACE', 'wlan1')
    

    修改/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

    sudo systemctl restart hostapd.service
    

    如一切正常,则USB OTG网卡以及WIFI热点均可正常访问网络。

    当然,也有小伙伴发现无法上网,排查方式如下:

    route
    

    查看当前设备路由表。结果可能和下述相似:

    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
    

    这是由于默认网关优先级不够导致无法正常上网。

    route add default gw 正确的网关地址
    

    修改后即可正常上网。

    同理,有线网口eth0和USB无线网卡wlan1都可以作为WAN口接入网络,而具体想选择谁来上网,只需要调整路由的优先级即可。

    按照轶哥提供的修改方法,RaspAP原本的功能不会受到影响,而且首页还能显示wlan1的信息,可以可视化配置wlan1接入的无线网络,是不是很酷呢?😎

    打赏
    交流区

    暂无内容

    尚未登陆
    发布
      上一篇 (K个一组翻转链表)
    下一篇 (树莓派4使用OTG功能变身有线网卡)  

    评论回复提醒