首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >iptables dnat映射到特定ip

iptables dnat映射到特定ip
EN

Server Fault用户
提问于 2014-12-22 01:06:32
回答 1查看 506关注 0票数 1

我用两台机器构建了一个专用网络,它们都有两个网络接口--这是网络信息:

machine1:

代码语言:javascript
复制
eth0 10.0.0.11 (private net)
eth1 10.82.80.208 (Campus Network ip)

machine2:

代码语言:javascript
复制
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命令,例如:

代码语言:javascript
复制
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?

EN

回答 1

Server Fault用户

发布于 2014-12-22 02:12:52

第一个错误是使用PREROUTING链来操作本地生成的数据包。在您自己的机器上生成的数据包从不遍历PREROUTING,而是只遍历输出和POSTROUTING链。您应该对输出链中本地生成的数据包执行NAT,因此您的规则如下所示:

代码语言:javascript
复制
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。

票数 2
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/654095

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档