我可以使用 ufw 设置端口转发吗?

我可以使用 ufw 设置端口转发吗?

我目前使用 ufw 来执行一些基本的防火墙规则。是否也可以使用 ufw 进行端口转发?

具体来说,我想将传入流量从端口 80 转发到我的服务器(运行 ufw 的同一台机器)到端口 8080。(http 流量转发到 tomcat)

答案1

假设您想将发往 80 的请求转发到监听端口 8080 的服务器。

请注意,您需要确保允许端口 8080,否则 ufw 将阻止重定向到 8080 的请求。

sudo ufw allow 8080/tcp

没有用于设置端口转发的 ufw 命令,因此必须通过配置文件来完成。在文件顶部的节/etc/ufw/before.rules之前,将以下几行添加到:filter

*nat
:PREROUTING ACCEPT [0:0]
-A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8080
COMMIT

然后重新启动并启用 ufw 在启动时启动:

sudo ufw enable

答案2

自 ufw 0.34 起,ufw 支持转发规则。

例子: sudo ufw route allow in on eth0 out on eth1 to 10.0.0.0/8 port 8080 from 192.168.0.0/16 port 80

您还需要确保已net.ipv4.ip_forward启用 sysctl。对于大多数发行版,这可以通过编辑/etc/sysctl.conf和运行sysctl -p或重新启动来完成。

但是,ufw 并不通过其简易界面支持 NAT。

相关内容