失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > 树莓派计算模块CM4搭建软路由OpenWrt+OpenClash过程记录

树莓派计算模块CM4搭建软路由OpenWrt+OpenClash过程记录

时间:2023-12-03 20:30:14

相关推荐

树莓派计算模块CM4搭建软路由OpenWrt+OpenClash过程记录

本文记录了我通过树莓派CM4计算模块搭建OpenWrt软路由的过程以及遇到的问题和解决方法,其中仍有部分问题,因个人接触网络与linux知识不够深入,无法解决。如果有任何建议,欢迎交流,也希望这篇文章能帮助和我遇到一样问题的人。

设备:树莓派CM4计算模块Lite(2G运行内存+Wifi)、DFR0767 CM4物联网路由扩展板 Mini、CM4天线与32GTF卡。(并非作为软路由最优搭配,仅供参考)

最终成品

我的需求是搭建一个无线加速器软路由,一连上Wifi即可通过代理上网:WAN口连接上层路由器,DHCP获取IP地址,Wifi模块工作在AP模式广播一个热点,LAN与WLAN共享DHCP,向客户端分配IP地址,Openwrt安装openclash插件并开启代理。

目前基本需求实现,WIFI功能正常,连接后可以通过代理上网,但LAN口工作有问题,插上网线后,电脑可以识别网络、能够通过DHCP获取到ip地址,但无法上网,无法ping通软路由。猜测可能是静态路由表的问题,希望有看到的大神可以解答!

下面是系统搭建的步骤:

1.下载Openwrt固件并烧录

我使用了DFROBOT的DFR0767CM4扩展板,主要看中了它有一个走PCIE通道的外置RTL8111网卡(但目前没有成功使用上),因此固件使用官方编译完成的固件。固件下载与烧录可以参考链接。

DFROBOT DFR0767 CM4 物联网路由扩展板 Mini 产品资料 使用教程树莓派计算模组4 物联网路由器扩展板 , 是基于树莓派计算模组 4 的网络扩展版。通过 PCIe 2.0 连接千兆网卡,使树莓派CM4拥有了两个全速千兆网口,并且保留了树莓派特色的 GPIO 排针。加上 BCM2711 4 核心 Cortex-A72 的强大性能和树莓派社区丰富的软件支持,使它可以成为网关、智能路由器、家庭物联网平台的坚实基础。也可以连接外设,作为小型 NAS、无线网桥、4G上网终端使用。/DFR0767_CM4_%E7%89%A9%E8%81%94%E7%BD%91%E8%B7%AF%E7%94%B1%E6%89%A9%E5%B1%95%E6%9D%BF_Mini#target_3

固件烧录完成后插上软路由,连接网线,ETH0作为WAN口连接上级路由器,ETH1连接电脑,接通电源,等待CM4启动。启动完成后打开浏览器,输入192.168.1.1进入web管理界面。初始状态无密码,直接登录。

2.启用无线网卡,创建AP热点

该固件在初始状态下,网络处是看不到无线选项的,其原因是驱动问题导致网卡设备识别不到,在服务下的Terminal中,输入root回车登录,输入ifconfig -a 可以发现找不到wlan0设备。

终端位置

期望结果

如何解决:首先,输入第一行命令进入/lib/firmware/brcm目录,通过ls命令可以看到里面包含了树莓派4B的网卡驱动程序,没有正常加载驱动的原因在于brcmfmac43455-sdio.raspberrypi,4-model-b.txt这个文件是树莓派4B使用的,而CM4不会加载这个文件。因此利用第二行命令复制出一个文件名为brcmfmac43455-sdio.raspberrypi,4-compute-module.txt的文件,输入reboot命令重启,即可看到网络-无线选项出现。

cd /lib/firmware/brcmcp brcmfmac43455-sdio.raspberrypi,4-model-b.txt brcmfmac43455-sdio.raspberrypi,4-compute-module.txt

此时出现第二个问题,在无线选项中,无法正常创建AP热点,在web管理端中看到已创建,但无法搜索到wifi信号,也无法正常更改信道等设置。这是由于AP默认带宽为80M,但不知为何工作有问题。需要将其调整为40M方可正常工作。

如何解决:在终端中输入命令

vi /etc/config/wireless

按A键编辑,将文件内容改为下图所示,按ESC取消编辑,输入:wq保存并退出,输入reboot保存并重启。

此时可以发现,在网络-无线选项中AP工作正常,可以调节信道等(不要动带宽!),且已经能搜索到WIFI信号,但尝试连接时应该会卡在正在获取IP地址,下面进行网络参数设置,使其正常工作。注意!!!下面设置后,只有WIFI正常工作,LAN口会工作不正常,建议准备好一个usb转ttl,如果出现问题,无法通过web端管理路由时,可以使用串口进行调节修正。

3.网络参数的调整

我的上级路由地址为192.168.50.50(网关)软路由地址设置为192.168.1.1,软路由WAN口通过DHCP获取192.168.50.x的地址,WIFI与LAN口通过DHCP给连接主机分配192.168.1.x地址。

首先点击网络-接口,左下角添加新接口,设备选择wlan0,协议选择静态地址,名称命名为WLAN,详细设置如下图。

防火墙设置区域与LAN相同,DHCP服务器中勾选动态DHCP,并禁用IPV6相关选项,其余保持默认。

编辑LAN(eth1)调节设置如下图,DHCP服务器选项与上文相同,其余保持默认。

WAN口应当不需要进行其他设置,保持不动。

在网络-接口-设备中,编辑eth0、eth1、wlan0 全部取消启用ipv6勾选。

进入网络-无线选项,对AP进行编辑,选择网络为WLAN(wlan0),密码与SSID设置自便。

进入网络-静态路由选项,添加静态ipv4路由,选择网络为WLAN 目标为192.168.1.0,子网掩码为255.255.255.0,网关为192.168.1.1

使用终端输入 vi /etc/config/network 如上文操作修改参数并保存,参考如下图

调整设置后记得保存,在调整中可能会出现WIFI不能用或者是LAN不能用,可以全部改完以后应用或者不断插拔网线(滑稽),到这一步保存重启后,WIFI就应该能够正常连接上网了。下面开始进行OPENCLASH的安装

4.OPENCLASH安装

首先,安装各种依赖库,打开终端,依次输入下面代码:

opkg updateopkg install luciopkg install luci-baseopkg install iptablesopkg install dnsmasq-fullopkg install coreutilsopkg install coreutils-nohupopkg install bashopkg install curlopkg install jsonfilteropkg install ca-certificatesopkg install ipsetopkg install ip-fullopkg install iptables-mod-tproxyopkg install kmod-tunopkg install luci-compat代码参考自/developer/article/1693260

其中安装dnsmasq-full时可能会报错,可以在软件包管理界面或是使用命令卸载原先的dnsmasq包,再安装dnsmasq-full即可。

然后前往github下载openclash的ipk,我这里使用了v0.43.06beta版本,链接如下Release v0.43.06-beta · vernesong/OpenClash · GitHub/vernesong/OpenClash/releases/tag/v0.43.06-beta下载得到ipk文件,使用Winscp软件将文件传输到软路由/tmp文件夹下,此处方法不再赘述,可自行查找。

执行安装命令,cd /tmp 进入目录,ls列出文件,然后使用 opkg install xxxx.ipk安装软件包。

安装完毕后,刷新web界面可以看到在服务处出现openclash选项。

下面进行openclash内核安装,参考链接下载内核,我将三个内核:dev、tun、tun-game 全部安装了。

DEV内核

Release Clash · vernesong/OpenClash · GitHub/vernesong/OpenClash/releases/tag/Clash TUN内核

Release TUN(Tun-Mode) · vernesong/OpenClash · GitHubA Clash Client For OpenWrt. Contribute to vernesong/OpenClash development by creating an account on GitHub./vernesong/OpenClash/releases/tag/TUN-Premium TUN-GAME内核

Release TUN(Game-Mode) · vernesong/OpenClash · GitHub/vernesong/OpenClash/releases/tag/TUN三个内核下载完毕后,使用压缩软件解压得到三个clash文件(不要放到同一个文件夹里),按下载的类型将文件重命名为clash(对应dev)、clash_tun(对应tun)、clash_game(对应game)。使用Winscp软件将文件传输到/etc/openclash/core目录中,然后右键调整属性,三个文件权限都设置为777,重启,此时clash插件应该就能正常工作了,自行配置后即可使用wifi进行代理上网。本次记录结束,最后附上最终成果图片。

5.部分参考文章

OpenClash 安装和简单使用教程及常见错误解决(openwrt) - 阿道https://adao.me/ruanjian/216.html树莓派4B 亲手打造一款Openwrt软路由(带编译固件-超详细) - RaspberryPi硬核系列(三) - 哔哩哔哩/read/cv9714518/LEDE(OpenWrt)安装openclash |旁路由技巧 | 配置网络流量全部通过旁路由 - 云+社区 - 腾讯云/developer/article/16932606.写在最后

这是我第一次写CSDN文章,在整个搭建过程中遇到了大大小小的问题,虽然其中有部分仍然没解决(指LAN口不能用),但总算基本符合预期了,因此希望写一篇文章分享出来,希望能对和我遇到了一样问题的人有所帮助。这个软路由的实际性价比不高,各种材料加在一起最便宜应该也接近500了,也只是想借此机会搭建出一个能够学习网络与linux方面知识的软路由,如果只是拿来做个代理路由器实在是有点奢侈了,另外由于本人是刚开始学习openwrt,所以文章中的各种设置是参考了网络各类大神以及自己摸索出来的,不少地方是知其然不知其所以然,而且有些地方的调整我自己也忘了,不过应该大差不差,仅供大家学习参考2333。

另外,LAN口不能用的问题详细如下,在连接LAN口后,使用电脑ping软路由时在系统日志里面会显示

daemon.err odhcpd[2179]:Failedtosendtoff02::1%lan@eth0(Permission Denied)简单调了一下防火墙问题没有解决,希望有大神可以解答。

如果觉得《树莓派计算模块CM4搭建软路由OpenWrt+OpenClash过程记录》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。