学习/ 200 阅读 阅读时间 9 分钟

双层 OpenWrt 路由实现跨网段互访

如果家里使用主路由 + 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

进入副路由后台。

最后更新:2026-09-19

讨论

评论

写评论

写下评论