ping 另一个子网中的计算机时出现“目标端口无法访问”

fla*_*006 7 networking routing home-networking openwrt subnet

在我的家庭网络中,我通过路由器 (192.168.1.1) 连接到 Internet。我还有另一个路由器(192.168.1.15、192.168.2.1),这个路由器使用 OpenWRT,配置为无线客户端。我的其中一台计算机通过以太网电缆连接到该路由器,该电缆以无线方式连接到我的主路由器。

由于通过 OpenWRT 路由器连接,我的电脑 (192.168.2.4) 位于不同的子网上。为此,我在主路由器上设置了静态路由。目的网络设置为192.168.2.0,子网掩码为255.255.255.0,网关设置为192.168.1.15。这台计算机可以毫无问题地访问 Internet 和网络上的其他计算机。

无论如何,从子网 192.168.1.x 中的计算机,我可以 ping 192.168.1.15 和 192.168.2.1(我的 OpenWRT 路由器的两个 IP 地址)就好了。但是,当我尝试 ping 192.168.2.4 时,我收到以下消息:

PING 192.168.2.4 (192.168.2.4) 56(84) bytes of data.
From 192.168.1.15 icmp_seq=1 Destination Port Unreachable
Run Code Online (Sandbox Code Playgroud)

显然它使用的是我分配的静态路由。问题似乎是 OpenWRT 路由器不知道如何将数据包路由到 192.168.2.4,这很奇怪,因为该 IP 直接连接到该路由器。

我究竟做错了什么?

小智 10

晚了 1 年,但您的问题可能是 OpenWRT 防火墙,当源和目标子网不相同时,它似乎禁止在 LAN 接口上进行 ip 转发。在此之后重试 ping:/etc/init.d/firewall stop

如果它有效,那么你会享受规则的乐趣!


小智 0

可能不是解决方案,但是您检查一下您的网关配置是否正确?由于网关已连接到两个系统,因此 ping 可能工作正常,但您是否检查网关是否进行从 192.168.1.x 到 192.168.2.x 的路由?

请在网关上使用 Wireshark 检查请求和响应。