NAT机器设置UFW中转

 此方法在 Debian & Ubuntu 下较为简便(Ubuntu 18.04 默认使用 UFW)。

首先要修改 /etc/sysctl.conf 文件:

echo "net.ipv4.ip_forward = 1" | sudo tee -a /etc/sysctl.conf
sudo sysctl -p

修改 /etc/default/ufw :

sudo vim /etc/default/ufw
DEFAULT_FORWARD_POLICY="ACCEPT"

修改 /etc/ufw/before.rules :

sudo vim /etc/ufw/before.rules

在 *filter 之前添加:

# nat table rules
*nat
:PREROUTING ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]

# port forwarding
-A PREROUTING -p tcp --dport 本机端口号 -j DNAT --to-destination 目标地址:目标端口号
-A PREROUTING -p udp --dport 本机端口号 -j DNAT --to-destination 目标地址:目标端口号
-A POSTROUTING -p tcp -d 目标地址 --dport 目标端口号 -j SNAT --to-source 本机内网地址
-A POSTROUTING -p udp -d 目标地址 --dport 目标端口号 -j SNAT --to-source 本机内网地址

# commit to apply changes
COMMIT

其中,目标地址 为目标服务器的 IP 地址,本机内网地址 为本机在内部局域网的 IP 地址。

重启 UFW:

sudo ufw disable && sudo ufw enable

至此,利用 UFW 设置中转的方法介绍完毕。另可根据使用场景,对目标机的防火墙进行配置,令其只接受来自此 NAT VPS 的流量。

目标机的设置:

此处示例的目标机为 Debian & Ubuntu 系统,安装并启用了 UFW:

如需同时允许 TCP 和 UDP 入站:

sudo ufw allow from 中转机地址 to any port 端口号

如需只允许 TCP 入站:

sudo ufw allow proto tcp from 中转机地址 to any port 端口号

如需只允许 UDP 入站:

sudo ufw allow proto udp from 中转机地址 to any port 端口号

以上命令中,中转机地址 为 NAT VPS 的公网 IP 地址。

其他系统、其他防火墙控制软件的操作与之类似,放行来自 NAT VPS 的 IP 的指定端口号即可。

评论

此博客中的热门博文

搭建Trojan-go一键脚本教程

使用 Cloudflare WARP 给 VPS 服务器免费添加 IPv4 或 IPv6 网络支持

GCP DD windows server 2012 亲测可用