如果家里使用主路由 + OpenWrt 副路由,默认情况下两个路由器之间通常存在网络隔离。
通过 主路由静态路由 + 副路由关闭 NAT + 防火墙放行,可以让主路由和副路由下的设备直接互相访问,同时保留两个独立的网段。
一、网络结构
本文以以下网络为例:
主路由 LAN:192.168.8.1/24
副路由 WAN:192.168.8.2
副路由 LAN:192.168.10.1/24
最终网络结构:
主路由
192.168.8.1
│
192.168.8.0/24
│
副路由 WAN
192.168.8.2
│
副路由 LAN
192.168.10.1
│
192.168.10.0/24
│
NAS / PC
二、固定副路由 WAN IP
登录主路由后台,进入:
网络 → DHCP → 静态 IPv4 租约
根据副路由 WAN 口的 MAC 地址,为副路由分配固定 IP:
192.168.8.2
注意:192.168.8.2 是副路由 WAN IP,不是 LAN IP。
三、主路由添加静态路由
进入主路由:
网络 → 静态路由(Routing)
添加:
接口: lan
目标: 192.168.10.0/24
网关: 192.168.8.2
路由类型: unicast
保存并应用。
作用是告诉主路由:
192.168.10.0/24网段需要通过副路由192.168.8.2访问。
四、允许访问副路由 Web 后台
部分 OpenWrt / ImmortalWrt 固件默认只允许 uHTTPd 在 LAN 接口监听,因此主路由网段的设备可能无法访问副路由后台。
登录副路由,打开 系统 → ttyd 终端,执行:
uci -q delete uhttpd.main.listen_http
uci -q delete uhttpd.main.listen_https
uci add_list uhttpd.main.listen_http='0.0.0.0:80'
uci add_list uhttpd.main.listen_http='[::]:80'
uci add_list uhttpd.main.listen_https='0.0.0.0:443'
uci add_list uhttpd.main.listen_https='[::]:443'
uci commit uhttpd
/etc/init.d/uhttpd restart
这样 Web 管理界面会监听所有接口。
五、允许访问副路由 SSH / ttyd
如果需要从主路由网段访问副路由的 ttyd:
进入:
系统 → ttyd
将 接口(Interface) 设置为:
未指定
保存并应用。
SSH 则需要确保副路由防火墙允许来自主路由网段的 SSH 访问。
六、修改副路由防火墙
这是最关键的一步。
进入:
网络 → 防火墙 → 区域
找到 wan 区域,点击编辑。
设置:
入站数据(Input): 接受
输出数据(Output): 接受
区域内转发(Forward): 丢弃
IP 动态伪装: ❌ 取消
全锥型 NAT: ❌ 取消
添加 WAN → LAN 转发
在 wan 区域的编辑页面中找到:
区域转发(Forwardings)
在允许转发到目标区域中勾选:
☑ lan
最终就是:
wan → lan
同时保留原本的:
lan → wan
不要删除。
最终 wan 区域可以理解为:
wan
├── Input:ACCEPT
├── Output:ACCEPT
├── Forward:REJECT
├── Masquerading:关闭
├── Full Cone NAT:关闭
└── Forwarding:wan → lan
点击保存并应用。
为什么必须设置 wan → lan?
因为主路由设备访问副路由 LAN 设备时,数据路径是:
192.168.8.100
↓
192.168.8.2 ← 副路由 WAN
↓
192.168.10.100 ← 副路由 LAN 设备
对于副路由防火墙来说,这属于:
WAN → LAN
所以必须允许 wan → lan。
而:
Input = ACCEPT
主要解决的是访问副路由本机,例如:
192.168.10.1
两者不是一回事。
七、为什么要关闭 NAT?
副路由默认会对 WAN → LAN 流量进行 NAT。
关闭:
IP 动态伪装
全锥型 NAT
后,副路由不再对跨网段流量进行地址转换。
两个网段依然是独立的:
192.168.8.0/24
↕
192.168.10.0/24
但可以通过路由直接互相访问,并且能够看到对方的真实 IP。
注意:这里只关闭副路由的 NAT。主路由连接互联网时,主路由 WAN 侧的 NAT 不需要关闭。
八、测试网络是否正常
在主路由下的电脑执行:
ping 192.168.8.2
测试副路由 WAN。
然后:
ping 192.168.10.1
测试副路由 LAN。
最后测试副路由下的设备:
ping 192.168.10.100
如果都能正常访问,说明跨网段通信已经正常。
也可以直接在浏览器访问:
http://192.168.10.1
进入副路由后台。
讨论
评论