Ubuntu防火墙(UFW)可通过配置iptables规则实现端口转发,步骤如下:
/etc/sysctl.conf,取消net.ipv4.ip_forward=1的注释,执行sudo sysctl -p使配置生效。/etc/ufw/before.rules,在*nat部分添加规则:-A PREROUTING -p tcp --dport <外部端口> -j REDIRECT --to-port <目标端口> # 本地端口转发
# 或
-A PREROUTING -p tcp --dport <外部端口> -j DNAT --to-destination <目标IP>:<目标端口> # 转发到其他IP
-A POSTROUTING -j MASQUERADE # 允许返回流量
sudo nano /etc/ufw/before.rules
# 在*nat段添加
-A PREROUTING -p tcp --dport 8080 -j REDIRECT --to-port 80
ufw allow <目标端口>/tcp开放目标端口。sudo systemctl restart ufw。验证:通过sudo ufw status查看规则,或使用telnet/curl测试端口连通性。
注:若需永久保存iptables规则,可安装iptables-persistent。