此设置的 Linux nat/iptables 配置 [关闭]

Posted

技术标签:

【中文标题】此设置的 Linux nat/iptables 配置 [关闭]【英文标题】:Linux nat/iptables configuration for this setup [closed] 【发布时间】:2013-01-30 13:25:47 【问题描述】:

我有 4 台 linux (CentOS) 机器的实验设置:

所有 4 台机器都使用不同的网络在内部连接,并且可以相互 ping 对方直接连接的接口。但是只有 PC4 可以访问互联网。

我正在尝试设置允许 PC1 能够通过 PC4 访问互联网的 iptable 规则,但我不知道该怎么做。

我尝试在 PC2、PC3 和 PC4 的出接口添加 NAT:

iptables -t nat -F POSTROUTING
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

但是,这不起作用,您能告诉我如何在这样的设置中让 PC1 访问 10.0.0.1 网络吗??

【问题讨论】:

【参考方案1】:

启用 IP 转发。

echo 1 > /proc/sys/net/ipv4/ip_forward

永久设置编辑/etc/sysctl.conf并将0设置为1

net.ipv4.ip_forward = 1

要启用在 sysctl.conf 中所做的更改,您需要运行命令

sysctl -p /etc/sysctl.conf

用于 NAT 的 iptables 规则

# /sbin/iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
# /sbin/iptables -A FORWARD -i eth0 -o eth1 -m state --state RELATED,ESTABLISHED -j ACCEPT
# /sbin/iptables -A FORWARD -i eth1 -o eth0 -j ACCEPT

【讨论】:

谢谢,但每次我得到目标主机禁止错误,可能是什么原因?? 我检查过,例如我从 PC1 (1.1.1.1) ping 到 PC3 (2.1.1.2) 但没有数据包从 PC2 外部接口进一步传输,似乎有问题或者它是只用 ping?? 好的,我明白了,令人惊讶的是,我只需要在最后一台 PC 上进行 NAT,而其余的我只需要启用 ip 转发,并且必须使用 iptables -D FORWARD 删除转发链中的默认拒绝规则1 并且它正在工作 您应该将此标记为正确答案

以上是关于此设置的 Linux nat/iptables 配置 [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

iptables典型NAT上网

Docker NAT iptables实现 及网络配置

KVM虚拟机使用NAT+iptables做端口映射

linux配ip(虚拟机)

linux配ip(虚拟机)

关于Linux系统创建时分配分区问题