Ubuntu 配置 UFW 端口转发
- Linux
- 2025-04-22
- 40热度
- 0评论
Ubuntu 默认的防火墙工具是 UFW,通过修改其底层规则文件实现端口转发。
1、启用 IP 转发
编辑 /etc/sysctl.conf,取消注释或添加以下行:
net.ipv4.ip_forward=1
立即生效:
sudo sysctl -p
2、修改 UFW 转发策略
编辑 /etc/default/ufw:
DEFAULT_FORWARD_POLICY="ACCEPT"
3、添加 NAT 规则
编辑 /etc/ufw/before.rules,在 *filter 段落前插入以下内容:
*nat
:PREROUTING ACCEPT [0:0]
-A PREROUTING -p tcp --dport 11233 -j DNAT --to-destination 192.168.80.63:11233
-A POSTROUTING -j MASQUERADE
COMMIT
#临时添加规则方式,重启后失效:
sudo iptables -t nat -A PREROUTING -p tcp --dport 11211:11233 -j DNAT --to-destination 192.168.80.63
sudo iptables -t nat -A POSTROUTING -j MASQUERADE
#规则持久化:
sudo systemctl status netfilter-persistent
sudo apt install iptables-persistent
sudo netfilter-persistent save
sudo cat /etc/iptables/rules.v4
sudo cat /etc/iptables/rules.v6
4、开放端口并重启 UFW
sudo ufw allow 11233/tcp
sudo ufw reload
5、查看规则是否生效:
sudo iptables -t nat -L -n
6、验证
使用 telnet localhost 11233 测试连接。
番外:
要删除 UFW 中的 Chain PREROUTING 规则,需通过底层 iptables 直接操作,因为 UFW 本身未提供直接管理 NAT 规则的命令行工具。以下是具体步骤:
1、通过 iptables 命令删除(临时生效),列出所有 NAT 表的 PREROUTING 规则及编号
sudo iptables -t nat -L PREROUTING --line-numbers
2、根据编号删除规则,使用规则编号(例如 1)删除对应的 PREROUTING 规则:
sudo iptables -t nat -D PREROUTING 1
注意:此操作仅删除当前活动的规则,重启后可能恢复(若 UFW 配置文件中仍保留规则)。

鲁ICP备19063141号
鲁公网安备 37010302000824号