TCP端口转发不生效?IP转发、防火墙、SELinux排查手册
一、什么是TCP端口转发TCP端口转发是将发送到某IP和TCP端口的数据包重定向到另一IP和端口的技术。TCP是面向连接的可靠协议常用于Web服务80/443、SSH22、数据库3306等场景。在Linux系统中通过iptables的DNAT机制即可实现。二、核心配置方法1. 开启IP转发必须bash临时开启echo 1 /proc/sys/net/ipv4/ip_forward永久开启编辑/etc/sysctl.confnet.ipv4.ip_forward 1sysctl -p2. iptables配置TCP转发场景一转发到内网Web服务器bash外部8080端口→内网192.168.1.100:80iptables -t nat -A PREROUTING -p tcp --dport 8080 -j DNAT --to-destination 192.168.1.100:80返回流量正确路由iptables -t nat -A POSTROUTING -j MASQUERADE允许转发iptables -A FORWARD -p tcp -d 192.168.1.100 --dport 80 -j ACCEPT场景二本机端口重定向bash访问80端口自动转到8080iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 80803. firewalld配置CentOS 7bashfirewall-cmd --add-masquerade --permanentfirewall-cmd --add-forward-portport8080:prototcp:toport80:toaddr192.168.1.100 --permanentfirewall-cmd --reload三、常用管理命令| 操作 | 命令 ||------|------|| 查看NAT规则 | iptables -t nat -L -n -v || 删除规则 | iptables -t nat -D PREROUTING 1 || 保存规则CentOS | service iptables save |四、TCP vs UDP转发区别| 对比项 | TCP转发 | UDP转发 ||--------|---------|---------|| 连接状态 | 面向连接可靠 | 无连接不保证送达 || 会话管理 | 内核自动维护 | 需额外工具如socat || 典型应用 | Web、SSH、数据库 | DNS、游戏、VoIP |五、常见问题排查| 问题 | 解决方法 ||------|---------|| 转发不生效 | 检查IP转发sysctl net.ipv4.ip_forward || 连接被拒绝 | 确认目标服务正在监听防火墙允许端口 || 返回包丢失 | 检查MASQUERADE规则是否存在 |一句话总结开启IP转发 → 添加DNAT规则-p tcp指定目标IP和端口→ 添加MASQUERADE → 保存规则即可完成TCP端口转发。另外可以借助 80KM 端口流量转发程序搭建流量中转节点所有外网访问经过节点再回源彻底隐藏真实 IP。支持 80、443 常用网页端口兼容各大系统。