我在 Ubuntu 服务器上使用 UFW。不幸的是,UFW 中没有端口转发到另一台机器的规则。
您需要做的是编辑 /etc/ufw/before.rules 并在其中输入路由命令,例如
# nat Table rules
*nat
:POSTROUTING ACCEPT [0:0]
# Forward traffic from eth0 through eth1.
-A POSTROUTING -s 192.168.0.0/24 -o eth1 -j MASQUERADE
-A PREROUTING -i eth1 -p tcp --dport 80 -j DNAT --to 192.168.0.200:80
-A PREROUTING -i eth1 -p udp --dport 10090 -j DNAT --to 192.168.0.202:22
-A PREROUTING -i eth1 -p tcp --dport 10090 -j DNAT --to 192.168.0.202:22
-A PREROUTING -i eth1 -p tcp --dport 443 -j DNAT --to 192.168.0.200:443
-A PREROUTING -i eth1 -p udp --dport 443 -j DNAT --to 192.168.0.200:443
-A PREROUTING -i eth1 -p tcp --dport 57626 -j DNAT --to 192.168.0.2:57626
-A PREROUTING -i eth1 -p udp --dport 57626 -j DNAT --to 192.168.0.2:57626
-A PREROUTING -i eth1 -p tcp --dport 3306 -j DNAT --to 192.168.0.200:3306
-A PREROUTING -i eth1 -p udp --dport 3306 -j DNAT --to 192.168.0.200:3306
COMMIT
我的问题是,我找不到在不重启服务器的情况下运行新转发规则的方法,我非常讨厌这样做。
所以请帮帮我,有办法吗?
答案1
这对我有用:
sudo service ufw restart
答案2
它看上去很简单:
sudo ufw disable && sudo ufw enable
答案3
遇到了同样的问题,在 Ubuntu 20.04 上进行了以下操作。
刷新链条并重启 ufw:
sudo /usr/lib/ufw/ufw-init flush-all
sudo service ufw restart
答案4
/etc/init.d/networking restart
/etc/init.d/ufw restart