两个 openwrt 路由,怎么就是不能相互访问,求解

268 天前
 superdotcom

路由 1:192.168.7.1 ,路由 2(192.168.8.1 ),路由 2 接路由 1 的 LAN 口,然后我的电脑接路由 2 的 LAN 口上,SSH 和 http 都可以正常访问路由 1 和路由 2 ,如果我的电脑接路由 1 的 LAN 口,就访问不了路由 2 了。求解

1385 次点击
所在节点    OpenWrt
7 条回复
chengyecc
268 天前
路由 2 wan 口有防火墙
inthemist
268 天前
除了防火墙, 还要确定路由 2 wan 口的 ip ,或者设置静态路由
superdotcom
268 天前
@inthemist @chengyecc 求方法,我也知道是被 openwrt 默认的防火墙阻止了或者静态路由不正确,防火墙我直接默认没动过,静态路由 1(192.168.7.1)上设置:192.168.8.0/24 网关:192.168.8.1 ;静态路由 2(192.168.8.1)上设置 192.168.7.0/24 网关:192.168.7.1;
wangritian
268 天前
路由 2 接 1 的 lan ,是不是 dhcp 获取到一个 7.*的 ip ,路由 1 按理说根本不认识 8.1 ,所以电脑插路由 1 的 lan ,应该通过 7.*的 ip 去访问路由 2 ?
badgv
268 天前
路由 1 设置的静态路由是 192.168.8.0/24 ,网关不是 192.168.8.1 ,要设置成 192.168.7.x(路由 2wan 口在路由 1 的 lan 口获取的 ip),其次,要允许路由 2 的防火墙转发功能
cpstar
268 天前
典型的什么叫路由、什么叫子网,什么是 NAT ,以及 WAN 和 LAN 。

路由 2 的 LAN 侧是 8.1 ,子网是 8.*,但在路由 1 子网看来,路由 2 就是 7.Y 而不是 8.1 。同时路由 2 下的设备访问路由 1 都要经过 NAT ,将 8.*的端口转换成 7.Y 的某个端口来访问,而 7.*必然不知道 8.*的存在,数据包只能报到 7.1 去找设备。
所以设置静态路由,在 7.1 上或者 7.*本机,ip route add 192.168.8.0/24 via 192.168.7.Y ,同时还要打开路由 2 的数据包转发,或者 NAT (即将 7.*的映射到 8.1 的端口,上 masquerade )或者源包转发(双向 FORWARD ),区别是前者在 8.*上看到的都是 8.1 (数据包源地址)的访问,而后者则直接能看到 7.*的数据包源地址。

当然还有简单的方法,把 8.*的服务映射到 7.Y 端口上,这样 7.*直接访问 7.Y 的相应端口即可。

最后的原则就是,原则上一个家庭子网只在总出口侧做一次 NAT ,网内不要再做二次 NAT ,那么路由 2 改配置,从路由降低为交换机,消灭 8.*子网。
kokutou
268 天前
典型的什么叫路由、什么叫子网,什么是 NAT ,以及 WAN 和 LAN 。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1095949

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX