小米红米路由器添加静态路由 重启不丢失 修改 /etc/rc.local文件 无效 最终解决办法
静态路由写到rc.local文件中,路径在/etc/下
使用vi命令,编辑rc.local。命令是:vi /etc/rc.local,并在其中增加一行:
route add -net 192.168.1.0/24 gw 192.168.13.201
使用:wq!保存退出,并用reboot命令,直接重新启动小米路由器
无效
解决办法如下
修改 /etc/config/network
在选项中增加需要的路由
格式如下
config route
option interface 'lan'
option target '192.168.31.0/24'
option gateway '192.168.33.253'
config route
option interface 'lan'
option target '192.168.34.0/24'
option gateway '192.168.33.253'
分割线
====================================
记得修改firewall 文件中的forward 为accept
假设有如下的路由结构
路由器A: 192.168.31.0/24 网关 192.168.31.1
路由器B: 192.168.36.0/24 网关 192.168.36.1
路由器A为路由器B的上级,即B的wan口与A的lan口连接,B在A中的地址为192.168.31.10
当如上网络搭建完成后,默认 B路由器中的设备是可以访问 A、B内所有设备的,但是这时候如果想让A路由局域网内的设备访问B路由下属的设备就要进行额外的配置了。
看了许多教程,基本上思路就是添加静态路由 但是在实际操作中会发现添加完成后依旧无法互相访问,遇到问题后也不知该如何排查,所以详细的记录一下具体的步骤,以方便有同样需求的人。
首先要在上级也就是A路由器上添加一条静态路由,这个路由应该指向B的网段也就是192.168.36.0/24,网关使用B在A中的地址即192.168.31.10
如果你的A路由是基于OpenWrt的那么可以在telnet/ssh连接之后修改/etc/config/network,追加如下内容
config route
option interface 'lan'
option target '192.168.36.0/24'
option netmask '255.255.255.0'
option gateway '192.168.31.10'
保存之后,执行如下命令以使其生效
/etc/init.d/network restart
这是使用执行命令 route -n 应能看到新添加的一条路由
192.168.36.0 192.168.31.10 255.255.255.0 UG 0 0 0 br-lan
这时在终端ping 36子网下的设备就可以ping通了
回到连接在A路由器上的设备,想要访问 192.168.36.1 即路由B的管理界面,发现依旧无法连接
这时候就需要使用 traceroute 指令来分析一下具体问题了,也到了本篇文章的重点
首先在路由器A的终端中执行命令 traceroute 192.168.36.167 (任意B子网设备) 得到如下输出
traceroute to 192.168.36.167 (192.168.36.167), 30 hops max, 46 byte packets
1 7c2be1130676 (192.168.31.10) 0.425 ms 0.372 ms 0.285 ms
2 192.168.36.167 (192.168.36.167) 1.009 ms 0.774 ms 0.605 ms
可以看到此时对于A路由器本身来讲,已经可以成功访问B路由器的子网了
回到电脑 同样执行命令 traceroute 192.168.36.167 得到如下输出
traceroute to 192.168.36.167 (192.168.36.167), 64 hops max, 52 byte packets
1 xiaoqiang (192.168.31.1) 6.312 ms 5.594 ms 3.331 ms
2 xiaoqiang (192.168.31.1) 2.893 ms 2.908 ms 2.759 ms
可以看到数据包在到达目的地之前就返回了路由器,因此无法到达192.168.36.167。这通常意味着数据包在路由器上被丢弃或重定向了。
此时就可以不用怀疑是自己配错了或者百思不得其解了,路由部分已经解决 可能是因为其他问题没能成功实现数据的转发
这时候把眼光转向路由A的防火墙 cat /etc/config/firewall 像我这边A路由型号是AX9000,通过分析防火墙规则可以看到 默认 zone lan 的 option forward 为 'REJECT' 即拒绝所有的转发流量 有些教程中会让直接改为 ACCEPT 或者添加 lan lan 的 forwarding 规则 这里提供一种更优雅一些的解决方案 即添加如下规则
config zone
option name 'PVEOpenwrt'
option input 'ACCEPT'
option output 'ACCEPT'
option forward 'ACCEPT'
list subnet '192.168.36.0/24'
config forwarding
option src 'lan'
option dest 'PVEOpenwrt'
PVEOpenwrt是zone的名字可以随便取 这样子就可以针对性的放行与B路由器的数据了
参看https://blog.csdn.net/qq_41453285/article/details/102625790
版权声明
本文仅代表作者观点,不代表Csuper立场。
本文系作者授权百度百家发表,未经许可,不得转载。