引言
基于多年软路由折腾经验总结出的个人最佳实践。
设备
软路由设备的选择我推荐满足以下几个需求:
- 最少两个网口:单网口只能做旁路有,配置难度会更大一些
- x86 架构:固件最好找,奇怪问题更少
- 带风扇:主动散热效果远好于被动散热,对网络稳定性有明显提升
我目前使用的是零刻 EQ12,大家可以根据自己的财力去电商平台选购。这可能会是一个比较花时间的过程。
固件
软路由固件我推荐 iStoreOS,主要因为以下几个原因:
- 有容易找到的官网:https://www.istoreos.com,可以方便地查阅文档、下载固件
- 有专门的团队长期维护,可以在后台管理页面操作固件更新
- 配置相对简单
- 想要内网穿透可以直接使用官方的 ddnsto,配置简单、价格便宜
刷机
有了设备和固件,接下来就需要把固件写入设备。
准备好的固件必须是 img 格式的,如果是 img.gz 则需要解压,而 bin 格式则是升级包,不适合刷机。
刷机有很多的途径,核心思想都是把 img 镜像写入设备的启动介质上。启动介质可以是硬盘,也可以是 U 盘、TF 卡。针对 x86 设备,有以下一些方式:
- physdiskwrite 是一个 Windows 平台的命令行写镜像工具,适合在软路由设备上通过 WinPE 将 img 写到硬盘上。
- balenaEtcher 是一个多平台的图形化写镜像工具,适合 U 盘、TF 卡等移动设备,或者硬盘 + 硬盘盒,可以在其他电脑上把镜像写入启动介质,再把启动介质插回软路由设备用于启动。
- dd 是一个 Linux/MacOS 平台的命令行镜像工具,适合已经可以通过 ssh 连接到软路由设备的情况下,直接完成镜像写入。
上面的操作具体流程可能会随着时间推移有所变化,推荐根据关键字自行搜索最新的教程。如果你和我一样购买了一台准系统的 mini 主机,那么你甚至可以不需要购买硬盘,使用 balenaEtcher 将 img 写入 U 盘,然后插到 mini 主机上一直用就可以了,刷机方便、成本低廉、操作便捷。
组网
软路由设备通常都没有 Wi-Fi 功能。大部分家庭的网络结构应该都是:
1 | 光猫 -> [WAN]无线路由器(路由模式) |
要在这其中加入软路由,第一步是把无线路由器从路由模式改为中继模式,此时的无线路由器就只起到一个发射 Wi-Fi 信号的功能,而不再是一台会给所有设备分配 IP 地址的路由器:
1 | 光猫 -> [WAN]无线路由器(中继模式) |
修改成功以后光猫作为无线路由器的上级设备,承担了真正路由器的责任,依旧能和之前一样正常上网。此时就可以加入软路由了:
1 | 光猫 -> [WAN]软路由[LAN] -> [WAN]无线路由器(中继模式) |
组网成功的标志是:通过网线或者 Wi-Fi 连接到无线路由器,可以成功分配到内网 IP,并且可以访问路由器管理后台(iStoreOS 通常为:192.168.100.1)。
软路由通常不会明确标注 WAN 口和 LAN 口,经验来看 OpenWRT 默认都是 eth0 做 WAN 口,其他做 LAN 口。而 eth0 通常都在最边上,所以基本上尝试两次就可以找到正确的网口。
配置
正常情况下已经可以正常上网了,但是使用软路由的重点自然是使用它的各种插件。 iStoreOS 自带了 iStore 商店,可以一键安装各种插件。
如果 iStore 还不能够满足需求,还有一些地方可以下载一些插件,比如:Are-u-ok 项目,下载的插件可以直接在 iStore 的手动安装页面进行安装。
为了保证软路由长期运行的稳定性,定时重启十分有必要,iStore 提供了一个“定时设置”插件,可以完成这个功能。我通常会配置每周重启一次。
心得
用软路由最重要的一点,就是不要过度关注固件本身。如果你的软路由工作正常,那对待它最好的方式就是忘记它的存在。过分关注固件、刷机这些事情并没有意义,享受软路由带来的便利才是折腾它的目的。