TCP端口转发是将发送到某IP和TCP端口的数据包,重定向到另一IP和端口的技术。TCP是面向连接的可靠协议,常用于Web服务(80/443)、SSH(22)、数据库(3306)等场景。在Linux系统中,通过iptables的DNAT机制即可实现。
二、核心配置方法
1. 开启IP转发(必须)
```bash
临时开启
echo 1 > /proc/sys/net/ipv4/ip_forward
永久开启(编辑/etc/sysctl.conf)
net.ipv4.ip_forward = 1
sysctl -p
```
2. iptables配置TCP转发
场景一:转发到内网Web服务器
```bash
外部8080端口→内网192.168.1.100:80
iptables -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端口自动转到8080
iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8080
```
3. firewalld配置(CentOS 7+)
```bash
firewall-cmd --add-masquerade --permanent
firewall-cmd --add-forward-port=port=8080:proto=tcp:toport=80:toaddr=192.168.1.100 --permanent
firewall-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 常用网页端口,兼容各大系统。
TShock开服笔记:用上80KM穿云箭,联机就这么简单
什么是内网穿透?如何实现无公网IP远程访问?
想和朋友一起玩泰拉瑞亚?先把联机这关过了
泰拉瑞亚联机老连不上?试试这个省心办法
内网穿透工具选型指南:ZeroTier、FRP、80KM穿云箭、花生壳全面对比
出差在外,连不上公司内网?远程登录内网的解决办法
外网如何打通内网,外网远程内网操作步骤
Windows端口转发和路由器端口转发有什么区别?各自适用什么场景?
DNS转发器的应用场景有哪些?企业内网、混合云、分支互联案例解析
MC端口映射完全教程:路由器虚拟服务器配置+防火墙放行+内网穿透备用方案
端口映射配置后连不上?别慌!按这4步排查,一学就会
网关端口映射和路由器端口转发有什么区别?配置要点全解析
Ngrok TCP:解锁内网服务的跨网桥梁
从零实现Linux软路由:报文转发配置+静态路由+NAT实战
手把手配置Nginx反向代理:多域名转发、端口映射、SSL证书一篇搞定
Windows Server DNS转发器完全教程:安装配置+条件转发+排错
流媒体转发服务器性能压测:单机10万并发是怎么做到的?
Linux proxy_arp 和传统的IP转发(iptables NAT)有什么区别?各自在什么场景下更优?
内网穿透必备:Linux端口转发命令与iptables规则详