【问题标题】:Linux nat/iptables configuration for this setup [closed]此设置的 Linux nat/iptables 配置 [关闭]
【发布时间】: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 网络吗??

【问题讨论】:

    标签: linux routing iptables nat


    【解决方案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 并且它正在工作
    • 您应该将此标记为正确答案
    猜你喜欢
    • 2015-04-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-30
    • 1970-01-01
    相关资源
    最近更新 更多