我用两台机器构建了一个专用网络,它们都有两个网络接口--这是网络信息:
machine1:
eth0 10.0.0.11 (private net)
eth1 10.82.80.208 (Campus Network ip)machine2:
eth0 10.0.0.21 (private net)
eth2 10.82.80.207 (Campus Network ip)我希望访问我的计算机(10.82.80.206)中的10.0.0.11,而不是使用iptables的校园网IP地址。例如,我希望将数据包的目的地从10.0.0.11更改为10.82.80.208。
我试图使用iptables命令,例如:
iptables -t nat -A PREROUTING -i eth0 -p tcp -d 10.0.0.11 -j DNAT --to-destination 10.82.80.208
iptables -t nat -A PREROUTING -i eth0 -p icmp -d 10.0.0.11 -j DNAT --to-destination 10.82.80.208
iptables -t nat -A PREROUTING -i eth0 -p udp -d 10.0.0.11 -j DNAT --to-destination 10.82.80.208但是,当我试图切换10.0.0.11 (主机仍然无法到达)时,我如何才能将机器中的口袋的目的地从10.0.0.11更改为10.82.80.208?
发布于 2014-12-22 02:12:52
第一个错误是使用PREROUTING链来操作本地生成的数据包。在您自己的机器上生成的数据包从不遍历PREROUTING,而是只遍历输出和POSTROUTING链。您应该对输出链中本地生成的数据包执行NAT,因此您的规则如下所示:
iptables -t nat -A OUTPUT -i eth0 -p tcp -d 10.0.0.11 -j DNAT --to-destination 10.82.80.208
iptables -t nat -A OUTPUT -i eth0 -p icmp -d 10.0.0.11 -j DNAT --to-destination 10.82.80.208
iptables -t nat -A OUTPUT -i eth0 -p udp -d 10.0.0.11 -j DNAT --to-destination 10.82.80.208只有当您的计算机(10.82.80.206)充当通往校园网上其他计算机的10.0.0.11/21的网关时,才应该使用PREROUTING。
https://serverfault.com/questions/654095
复制相似问题