按 ESC 键关闭

Ubuntu系统使用ufw防火墙实现端口转发功能

境外服务器往往对国内网络不友好,在连接ssh和Windows远程桌面等操作时,需要借助另一台对国内网络友好的服务器进行tcp转发,以达到优化连接质量。

Ubuntu默认防火墙是ufw,查阅了很多网上的资料,多数为卸载ufw安装iptables实现,那么想要保留ufw实现转发需要哪些操作呢?

1、修改 /etc/default/ufw,找到 DEFAULT_FORWARD_POLICY,修改为:

DEFAULT_FORWARD_POLICY="ACCEPT"
DEFAULT_FORWARD_POLICY="ACCEPT"

2、开启转发,修改 /etc/sysctl.conf,增加一行

net.ipv4.ip_forward=1

然后执行命令 sysctl -p 使其生效。

3、修改 /etc/ufw/before.rules,在 *filter 之前,加入以下这段:

*nat
:PREROUTING ACCEPT [0:0]
-A PREROUTING -p tcp -m tcp -d $from_ip --dport $from_port -j DNAT --to-destination $to_ip:$to_port
-A POSTROUTING -j MASQUERADE
COMMIT

请把 $from_ip$from_port$to_ip$to_port 变量修改为实际值

4、把相关端口打开

sudo ufw allow from any to any port $port

请把 $port 变量修改为实际值

5、如果 ufw 未启动

sudo ufw enable

PS: 如果都沒有启动过,请选确定 ssh 端口已开放,不然就 ufw 一旦启动ssh就连不上了…

6、ufw 重新加载配置

sudo ufw reload