在CentOS系统中,iptables虽常被作为防火墙进行安全管控,但它同样具备强大的 NAT(网络地址转换)功能,能够轻松实现端口转发。如何通过设置iptables规则实现端口转发呢?本文记录下在CentOS系统下通过iptables实现端口转发操作步骤,同时也给有需要的同学提供一丢丢帮助。

操作步骤
1、开启系统转发功能
echo "net.ipv4.ip_forward=1" >> /etc/sysctl.conf sysctl -p /etc/sysctl.conf
2、安装iptables服务
yum install iptables-services -y
3、iptables服务启动,并设置开机自启
systemctl start iptables systemctl enable iptables
4、配置iptables转发规则
添加 DNAT 规则(目标地址转换)
# 作用:将外部访问本机 <本机端口> 的流量,目标地址修改为 <目标服务器IP>:<目标服务器端口>
iptables -t nat -A PREROUTING -p tcp --dport <本机端口> -j DNAT --to-destination <目标服务器IP>:<目标服务器端口>
添加 SNAT 规则(源地址转换)
# 作用:将发往目标服务器的数据包源IP,修改为 <本机IP>,确保目标服务器能正确回包
iptables -t nat -A POSTROUTING -p tcp -d <目标服务器IP> --dport <目标服务器端口> -j SNAT --to-source <本机IP>
5、放行 FORWARD 链(允许流量转发)
iptables -A FORWARD -p tcp -d <目标服务器IP> --dport <目标服务器端口> -j ACCEPT
6、设置完规则后执行以下命令保存规则
service iptables save
7、测试端口转发
curl http://your-server-ip:8080
PS,如果需要在本机测试则需要在iptables中添加下如下命令
iptables -t nat -A OUTPUT -p tcp -d <本机IP> --dport <本机端口> -j DNAT --to-destination <目标服务器IP>:<目标服务器端口>
