在用了大概2年多时间的梅林固件后,最近打算重新用回OpenWRT。
原因非常现实,是因为某日一觉醒来,发现在用的那台AC86U坏掉了。
那就准备换新路由器玩玩吧。这次就尝试一下之前想玩玩的OpenWRT x86。
新路由器上线前,先拿一台闲置的路由器凑合用着。
上网淘一台双网口小主机,再准备一块调试用的小屏幕,最后等一个周末,开工。
1.准备工作
1.1.连接显示器
既然是小主机,那么当然有视频输出口。拿一根HDMI线将小主机街上小屏幕,同时再接上一个键盘,就可以在网络不通的环境下配置,相对来说更加灵活。
1.2.下载固件镜像
截至目前(2025年1月),OpenWRT的稳定版本为23.05.5。可以访问这个地址获取固件镜像:https://downloads.openwrt.org/releases/23.05.5/targets/x86/64/
其中有好几种镜像可选。简单归纳一下它们的区别,大概是这样的:
- 文件名带efi的:UEFI启动
- 文件名不带efi的:Legacy BIOS启动
- ext4:根目录分区可自由扩容,但无法重置固件系统
- squashfs:根目录分区只读,需要通过
overlay
分区扩容
对于即将装上OpenWRT x86的小主机来说,硬件支持UEFI启动,系统盘容量管够,一般也不会有事没事去重置系统,因此就选generic-ext4-combined-efi.img.gz
即可。
下载完成后将压缩包解压,获得generic-ext4-combined-efi.img
镜像文件。
1.3.写入固件镜像
小主机没有自带硬盘,因此我选择先把镜像写入后再装进小主机直接启动。
把打算作为系统盘的SSD塞入硬盘盒接上电脑,通过Balena Etcher写入镜像。
Balena Etcher的下载地址:https://etcher.balena.io/#download-etcher
1.4.接网线开机
把写入完成的SSD装进小主机,随后把小主机的2个网口分别接上在用路由器的LAN口和调试用电脑的网口,开机!
一连串的系统启动滚屏完后,敲个回车就能以root账号进入shell了。
2.开始调试
2.1.设置root密码
OpenWRT的root账号在初始状态下是没有密码的。从安全的角度考虑,建议设置一个。输入passwd
回车,根据提示输入新密码并确认一次,root账号的密码就设置完成了。
2.2.确认网口
接下来确认一下两个网口哪个是WAN口。可以通过配置文件进行查看和编辑。
系统自带的编辑器是vi,简易的操作方式是按i
进入编辑模式,编辑完成后按Esc
退出编辑模式,输入:wq
后按回车保存退出编辑器,或者输入:q!
后按回车不保存退出。
vi /etc/config/network
配置文件中需要确认并修改的部分如下。
config device
option name 'br-lan'
option type 'bridge'
list ports 'eth0' #LAN口桥接组成员,这里是eth0口config interface 'lan'
option device 'br-lan'
option proto 'static'
option ipaddr '192.168.1.1' #LAN口地址
option netmask '255.255.255.0'
option ip6assign '60'config interface 'wan'
option device 'eth1' #WAN口成员,这里是eth1口
option proto 'dhcp'
option metric '64'
option delegate '0'
上面的示例中eth0口是LAN口,eth1口是WAN口。刚好我也是eth0口接的调试用电脑,eth1口接的在用路由器,就不用改了。
LAN口的IP地址可以根据实际情况改掉,比如把192.168.1.1改成10.0.0.1之类的。重启网络服务后生效。
如果刚刚修改过网络配置文件,可以执行这个命令重启网络服务。
service network restart
2.3.修改opkg软件源
OpenWRT用的包管理器是opkg。按照惯例,默认的软件源服务器地址在海外,在内地直连的速度是比较慢的,建议换成第三方源。
我比较习惯用TUNA源,换源命令如下。
sed -i 's_https\?://downloads.openwrt.org_https://mirrors.tuna.tsinghua.edu.cn/openwrt_' /etc/opkg/distfeeds.conf
命令执行完后,可以执行opkg update
命令进行确认。
2.4.扩容根目录分区
OpenWRT x86镜像中划分的根目录分区很小,不到100MB。这就很有必要进行扩容了。
扩容前,先执行df -h
命令看看根目录分区有多少。
Filesystem Size Used Available Use% Mounted on
/dev/root 98.3M 18.6M 77.7M 19% /
官方文档中提供了扩容根目录分区的脚本,可以直接用脚本自动将SSD剩余空间全部扩容至根目录分区中。
根目录分区扩容文档链接:https://openwrt.org/docs/guide-user/advanced/expand_root
首先安装脚本要用的几个包。
opkg update opkg install parted losetup resize2fs
然后从那个文档中下载脚本的脚本,并运行。
文档中“Instructions”下面的一串命令就是“脚本的脚本”,运行它可以自动创建根目录分区扩容的2个脚本,同时将2个脚本加入系统升级后的自动执行列表中。
wget -U "" -O expand-root.sh "https://openwrt.org/_export/code/docs/guide-user/advanced/expand_root?codeblock=0" sh expand-root.sh
脚本的脚本下载运行完成后,执行以下命令运行真正的扩容脚本。
sh /etc/uci-defaults/70-rootpt-resize
命令执行完成后,系统会自行重启。
重启好后,再次执行df -h
命令看看根目录分区是否已经扩容完成。
Filesystem Size Used Available Use% Mounted on
/dev/root 117.7G 18.6M 117.7G 0% /
看起来已经扩容好了。128G的SSD,去除格式化损耗以及几个启动分区,也确实是这么大。
2.5.安装SFTP软件包
OpenWRT x86没有自带SFTP服务组件,需要手动安装。
opkg update opkg install vsftpd openssh-sftp-server
安装完成后启动服务并将其设为开机自启动。
/etc/init.d/vsftpd start /etc/init.d/vsftpd enable
2.6.安装中文语言包
OpenWRT LuCI默认只有英文显示。如果想看中文界面,可以装个中文语言包。
opkg update opkg install luci-i18n-base-zh-cn
2.7.修改WAN口协议类型
浏览器访问LAN口地址,在网络->接口
中对WAN口的协议进行修改。
WAN口默认用的是DHCP客户端协议,可以根据实际情况改为PPPoE协议进行拨号上网。
改好后,就可以把WAN口接到光猫上,使用这台OpenWRT小主机拨号上网了。
原来的路由器则是关闭LAN口的DHCP服务,LAN口网线连接小主机的LAN口,充当一个胖AP的角色。
毕竟小主机本身没带无线网卡,还得通过原来的路由器提供无线网信号。
3.个人吐槽
做完上面的调试工作后,OpenWRT x86小主机已经基本能用了。后面可以玩的东西很多,之后应该会再单独写文章来记录。
最后还是必须得吐槽一下那台AC86U。故障原因很经典,MT3125芯片烧坏了。前段时间网上买了2块MT3125,请了会操作热风枪的友人尝试换芯片,看着网上的视频教程折腾了半天,愣是没把那个芯片给吹下来,无奈放弃。
拍拍脑袋想一想,排除本身质量问题,路由器芯片烧坏的原因无非就是负载太高,散热没跟上。要么就是强化散热,要么就是降低负载。
所以这次就打算用小主机+路由器的架构,2台设备分别提供路由交换和无线信号的功能,看看实际效果怎么样。
0 Comments