首先启用IP转发,编辑/etc/sysctl.conf添加net.ipv4.ip_forward=1并执行sysctl -p生效;然后配置iptables规则,使用MASQUERADE或SNAT实现NAT,如iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE;接着允许转发流量,添加FORWARD链规则放行内网接口eth1到外网接口eth0及返回流量;最后保存规则至/etc/iptables/rules.v4(Ubuntu/Debian)或/etc/sysconfig/iptables(CentOS/RHEL),确保重启后生效。

在Linux中配置NAT(网络地址转换)和iptables转发规则,通常用于让一台Linux服务器充当网关,使内网设备可以通过它访问外网。这在搭建防火墙、路由器或共享网络连接时非常常见。核心工具是iptables和内核的netfilter框架。
Linux默认不开启IP转发,需手动启用。
编辑sysctl配置文件:
sudo nano /etc/sysctl.conf取消注释或添加以下行:
net.ipv4.ip_forward=1保存后立即生效:
sudo sysctl -p也可临时开启(重启失效):
echo 1 | sudo tee /proc/sys/net/ipv4/ip_forward假设你的外网接口是eth0,内网接口是eth1,内网网段为192.168.1.0/24。
执行以下命令设置SNAT(源地址转换)或MASQUERADE:
sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE或指定内网网段进行SNAT:
sudo iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o eth0 -j SNAT --to-source 外网IPMASQUERADE适合动态IP,SNAT适合固定IP。
确保iptables的filter表允许转发数据包。
添加规则允许内网到外网的转发:
sudo iptables -A FORWARD -i eth1 -o eth0 -j ACCEPT sudo iptables -A FORWARD -i eth0 -o eth1 -m state --state RELATED,ESTABLISHED -j ACCEPT第一条允许内网设备发起连接,第二条允许响应流量返回。
不同发行版保存方式不同。
在Ubuntu/Debian上:
sudo iptables-save > /etc/iptables/rules.v4在CentOS/RHEL上:
sudo service iptables save或使用:
sudo iptables-save > /etc/sysconfig/iptables确保系统启动时加载规则和IP转发设置。
基本上就这些。配置完成后,内网设备将能通过这台Linux主机访问外网。注意防火墙策略和接口名称要根据实际情况调整。
以上就是如何在Linux中配置NAT Linux iptables转发规则的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号