此设置的 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 配置 [关闭]的主要内容,如果未能解决你的问题,请参考以下文章