主路由访问下级路由的设置方法
比如:小米路由器的局域网网段是 192.168.31.0/255.255.255.0,下级路由:OpenWRT 的局域网网段是 192.168.168.0/255.255.255.0,而 OpenWRT 连接小米路由器的接口,及(相对于 OpenWRT 而言的)广域网接口,IP 地址是 192.168.31.254,正好就在小米路由器的局域网网段内。
根据以上的信息,在小米路由器上,需要增加一条静态路由,目标是 192.168.168.0,掩码是 255.255.255.0 或者 /24,网关是 192.168.168.254。
通过路由器管理网页设定静态路由
有了目的地网络、掩码和网关 IP 地址后,我们就可以来配置小米路由器了。我首先想到的是通过网页来配置,结果,我找遍了上网设置和高级设置,就是没有看到设置静态路由的地方。好吧,这种基础的功能在 TP-Link 几十元的路由器上都有提供。
通过命令设置静态路由
小米的路由器提供了 SSH 服务,这样我们就可以通过命令行去添加静态路由。当然,SSH 服务默认是不开启的,需要在米家中开启。
首先,我们通过 PuTTY 等 SSH 客户端软件连接到小米路由器,然后执行命令:route add -net 192.168.168.0/24 gw 192.168.31.254
让静态路由持续有效
通过上面的方法配置静态路由,每次路由器重启后静态路由都会丢失,所以有人说通过 rc.local 让路由器开机时自动添加静态路由。rc.local 是一个脚本文件,系统启动时会执行该文件。小米 AX3000T 路由器比较特殊,每次修改完 /etc/rc.local 文件后,重启就会被恢复为默认值,所以修改这个文件没什么意义。这个文件也并未变成只读,背后的原因是 /etc 目录本身是一个内存文件系统。当路由器重启后,会从固件中读取放到内存盘的区域,所以修改 /etc 目录下的 rc.local 是没有意义的。
实际上,小米路由器的固件是基于 OpenWRT 二次开发的,因此可以通过修改 OpenWRT 配置文件的方法来达到添加静态路由的目的。打开 /etc/config/network 文件,在 config interface ‘lan’ 配置块下方,及从 config interface ‘lan’ 开始,到下一个 config 之前的空航,添加如下配置:
=============== 从下一行开始 ===============
config route
option interface 'lan'
option netmask '255.255.255.0'
option gateway '192.168.31.254'
option target '192.168.168.0'
=============== 到上一行结束 ===============
修改并保存 network 后,在终端中重新启动小米路由器,看看能不能访问 OpenWRT 的局域网地址,例如 192.168.168.1。也可以进入小米路由器的 Shell,执行 route 命令来检查添加的静态路由是否存在。
后续步骤
可以在 OpenWRT 等软路由的防火墙中,关闭 WAN 接口的“IP 动态伪装”和“MSS 钳制”,前者就是地址转换,而后者是自动匹配 MTU,局域网中没有必要启用这两者。为了 OpenWRT 的安全,不建议将 WAN 的“入栈数据”设为“允许”
来源:https://armstrong.viyf.org/articles/2025/03/set-static-route-in-xiaomi-router.shtml