我的设置是调制解调器 -> 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 流量通过笔记本电脑。