需要帮助实现此目标:
Internet
<-- TP_LINK Router(192.168.0.1)
<-- PC1(eth0:192.168.0.8)
<-- PC2(eth0:192.168.0.81)
当我使用电缆将 PC2 eth1 连接到 PC3 eth0,并将 PC2 eth1 IPV4 设置配置为“共享给其他计算机”时,PC2 和 PC3 获得以下 IP:
PC2(eth1:10.42.0.1)
<-- PC3(eth0: 10.42.0.169)
现在我想在路由或 iptables 上做一些事情,以便我可以在 PC1 上“ping 10.42.0.169”。
这可能吗?以下是我尝试过的:
- 配置TP_LINK路由器的静态路由表:10.42.0.0(目标)- 255.255.255.0(网络掩码)- 192.168.0.81(网关)。
现在我在 PC1 上得到了结果:
$ traceroute 10.42.0.169
traceroute to 10.42.0.169 (10.42.0.169), 64 hops max, 52 byte packets
1 192.168.0.1 (192.168.0.1) 4.018 ms 0.905 ms 0.768 ms
2 ay11 (192.168.0.81) 1.140 ms 1.273 ms 1.482 ms
3 ay11 (192.168.0.81) 1.104 ms 1.041 ms 1.127 ms
我们可以看看,如果PC2能把数据包转发到10.42.0.0/24,是不是一切就都完美了?
PC2上的配置如下:
$ route
default 192.168.0.1 0.0.0.0 UG 100 0 0 eth1
10.42.0.0 * 255.255.255.0 U 100 0 0 eth0
link-local * 255.255.0.0 U 1000 0 0 eth1
192.168.0.1 * 255.255.255.255 UH 100 0 0 eth1
$ sudo iptables -L
[sudo] password for mlhch:
Chain INPUT (policy ACCEPT)
target prot opt source destination
ACCEPT udp -- anywhere anywhere udp dpt:bootps
ACCEPT tcp -- anywhere anywhere tcp dpt:bootps
ACCEPT udp -- anywhere anywhere udp dpt:domain
ACCEPT tcp -- anywhere anywhere tcp dpt:domain
Chain FORWARD (policy ACCEPT)
target prot opt source destination
ACCEPT all -- anywhere 10.42.0.0/24 state RELATED,ESTABLISHED
ACCEPT all -- 10.42.0.0/24 anywhere
ACCEPT all -- anywhere anywhere
REJECT all -- anywhere anywhere reject-with icmp-port-unreachable
REJECT all -- anywhere anywhere reject-with icmp-port-unreachable
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
我应该如何处理路由或 iptables?
谢谢!
答案1
尝试设置一下PC2
首先要做的是启用 IP 转发。这可以通过使用
echo "1" > /proc/sys/net/ipv4/ip_forward
然后,我们将添加一条规则,告诉转发流量
sudo iptables -A FORWARD -i eth1 -o eth0 -j ACCEPT
sudo iptables -A FORWARD -i eth0 -o eth1 -m state --state ESTABLISHED,RELATED -j ACCEPT
答案2
谢谢你的努力。
对于 /proc/sys/net/ipv4/ip_forward,它已经是“1”,并且我已经在 /etc/sysctl.conf 中配置了 net.ipv4.ip_forward=1
我执行了你的 iptables 命令,它们只是在 Chain FORWARD 部分附加了以下两行:
ACCEPT all -- anywhere anywhere
ACCEPT all -- anywhere anywhere state RELATED,ESTABLISHED
然后就没有奇迹发生。但这让我注意到了 2 条 REJECT 行
REJECT all -- anywhere anywhere reject-with icmp-port-unreachable
REJECT all -- anywhere anywhere reject-with icmp-port-unreachable
我删除了它们,一切都正常了!事实上,我还删除了新添加的行,只保留了一行“ACCEPT all -- anywhere anywhere”。