无法在子网之间以及互联网上进行 ping 操作

无法在子网之间以及互联网上进行 ping 操作

我的设置是调制解调器 -> Linksys 路由器 -> 带有 2 个设备的笔记本电脑 (wlan0/eth0) -> 台式机

路由器的互联网网关为 192.168.1.1 笔记本电脑 wlan0 的网关为 192.168.1.4,网关为 192.168.1.1 笔记本电脑 eth0 的网关为 192.168.2.254,作为第二个网关 台式机的网关为 192.168.2.100

在笔记本电脑上,我将 ip_forward 设置为 1,并插入了 2 个 iptables 规则

-A FORWARD -i eth0 -o wlan0 -j ACCEPT 
-A FORWARD -i wlan0 -o eth0 -j ACCEPT

笔记本电脑可以 ping 通网络外(即 yahoo.com),但无法 ping 通 192.168.2.100。台式机可以 ping 通 192.168.2.254,但无法 ping 通网络外或 192.168.1.0 子网。

在笔记本电脑ip route show列表中:

192.168.2.0/24 dev eth0  proto kernel  scope link  src 192.168.2.254 
192.168.1.0/24 dev wlan0  proto kernel  scope link  src 192.168.1.4 
127.0.0.0/8 dev lo  scope link 
default via 192.168.1.1 dev wlan0 

我缺少什么才能让我的台式机通过笔记本电脑访问提供互联网访问的路由器?

谢谢

答案1

如果您只想在笔记本电脑上透明地传输流量,则可以使用桥接。这样,linksys 会为您的台式机分配 IP,并且您的台式机只需路由一次即可访问互联网。

不过,如果您愿意的话,您可以使用 iptables 过滤笔记本电脑上的数据。

http://www.linuxfoundation.org/collaborate/workgroups/networking/bridge

答案2

直接连接到台式机的笔记本电脑无法 ping 通台式机,但台式机可以 ping 通笔记本电脑?那么,换句话说,A->B 可以,但 B->A 不行?

您可能还需要设置某种 SNAT 或伪装。我的直觉是数据包被转发到源为 192.168.2.100 的路由器,但路由器不知道如何处理它,因为它只直接连接到 192.168.1.0/24。也许路由器上的静态路由会强制所有 192.168.2.0/24 流量通过笔记本电脑。

答案3

因此,基本上,您使用笔记本电脑上的无线连接路由器/互联网,并希望与台式机“共享”连接。这正是“桥接”的用途,因为吉时指出。

如果你喜欢单独的子网,那么你需要让 iptables 进行网络地址转换(NAT)。Iptables 可以做到这一点。下面是一个教程. 在开始之前,请确保笔记本电脑可以完成您在互联网上所需的一切。

但是,除非是作为学习练习,否则我建议您为台式机购买无线适配器。它们不贵,而且安装简单(尤其是 USB 适配器)。

相关内容