境外服务器往往对国内网络不友好,在连接ssh和Windows远程桌面等操作时,需要借助另一台对国内网络友好的服务器进行tcp转发,以达到优化连接质量。
Ubuntu默认防火墙是ufw,查阅了很多网上的资料,多数为卸载ufw安装iptables实现,那么想要保留ufw实现转发需要哪些操作呢?
1、修改 /etc/default/ufw
,找到 DEFAULT_FORWARD_POLICY
,修改为:
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