在 Linux 中可以使用 iptables 命令来实现端口转发。以下是一个简单的示例:
```
# 开启转发功能
echo 1 > /proc/sys/net/ipv4/ip_forward
# 添加转发规则
iptables -t nat -A PREROUTING -p tcp --dport 80 -j DNAT --to-destination 192.168.1.100:8080
iptables -t nat -A POSTROUTING -p tcp --dst 192.168.1.100 --dport 8080 -j MASQUERADE
```
上面的命令做了以下事情:
1. 首先开启 Linux 内核的转发功能,否则数据包无法在不同网络接口之间转发。
2. 添加一条 PREROUTING 转发规则,将目的端口为 80 的数据包转发到 192.168.1.100:8080。
3. 添加一条 POSTROUTING 规则,对从 192.168.1.100:8080 返回的数据包进行 MASQUERADE 处理,以确保返回数据能正确路由。
这样当有流量访问本机的 80 端口时,就会被转发到 192.168.1.100 的 8080 端口上。
你也可以使用 socat 等第三方工具来实现更复杂的端口转发功能。比如将 TCP 流量转发到 UDP 等。
总之 iptables 是一个非常强大的网络工具,可以满足大部分的端口转发需求。具体的使用方法可以查阅相关的文档和教程。