Linux iptables端口转发从零到一:DNAT、SNAT、REDIRECT全解析
一、什么是iptables端口转发iptables是Linux内核的防火墙工具通过NAT表实现端口转发。它可以将发送到某IP和端口的数据包重定向到另一IP和端口常用于隐藏真实服务器IP、实现内网穿透或搭建跳板机。二、核心配置步骤1. 开启IP转发bash临时开启echo 1 /proc/sys/net/ipv4/ip_forward永久开启编辑/etc/sysctl.confnet.ipv4.ip_forward 1sysctl -p2. 添加转发规则场景一转发到内网服务器bashDNAT将外部8080端口流量转发到内网192.168.1.100:80iptables -t nat -A PREROUTING -p tcp --dport 8080 -j DNAT --to-destination 192.168.1.100:80SNAT让返回流量正确路由可选但推荐iptables -t nat -A POSTROUTING -j MASQUERADE场景二本机端口重定向bash访问80端口自动转到8080iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 80803. 允许转发流量bashiptables -A FORWARD -p tcp -d 192.168.1.100 --dport 80 -j ACCEPT4. 保存规则bashCentOSservice iptables saveUbuntuiptables-save /etc/iptables/rules.v4三、常用管理命令| 操作 | 命令 ||------|------|| 查看NAT规则 | iptables -t nat -L -n -v || 删除规则 | iptables -t nat -D PREROUTING 1 || 清空所有规则 | iptables -t nat -F |四、常见问题排查| 问题 | 解决方法 ||------|---------|| 转发不生效 | 检查IP转发是否开启sysctl net.ipv4.ip_forward || 返回包丢失 | 确认已添加MASQUERADE规则 || 目标服务器不通 | 检查防火墙是否允许端口 || SELinux阻止 | 临时测试setenforce 0 |五、安全建议- 只转发必要端口避免默认端口22、3389- 限制来源IP-s 10.0.0.0/24- 定期审计规则iptables -t nat -L -n -v一句话总结开启IP转发 → 添加DNAT规则指定目标IP和端口→ 添加MASQUERADE → 保存规则即可完成iptables端口转发配置。另外可以借助 80KM 端口流量转发程序搭建流量中转节点所有外网访问经过节点再回源彻底隐藏真实 IP。支持 80、443 常用网页端口兼容各大系统。