在不重启服务器的情况下设置 UFW before.rules

ene*_*ene 5 server ufw

我在我的 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
Run Code Online (Sandbox Code Playgroud)

我的问题是我找不到一种方法来运行新的转发规则而不重新启动服务器,我非常讨厌这样做。
所以请帮帮我,有什么办法吗?

小智 11

这对我有用:

sudo service ufw restart
Run Code Online (Sandbox Code Playgroud)

  • 据我了解,这是错误的。因为甚至不会加载新规则。请参阅[我的问题](http://askubuntu.com/q/660972/289003)和[此错误报告](https://bugs.launchpad.net/ubuntu/+source/ufw/+bug/881137)(已标记为无法修复)。在更改“/etc/before.rules”中的规则后,其他人可以确认这实际上有效吗? (2认同)

Den*_*rko 1

出色地

sudo iptables-restore < /etc/before.rules
Run Code Online (Sandbox Code Playgroud)

可能会起作用。


小智 0

/etc/init.d/networking restart
/etc/init.d/ufw restart
Run Code Online (Sandbox Code Playgroud)

来源