![将 UFW 中的所有端口转发到 Ubuntu 服务器上的 VPN 客户端](https://linux22.com/image/793777/%E5%B0%86%20UFW%20%E4%B8%AD%E7%9A%84%E6%89%80%E6%9C%89%E7%AB%AF%E5%8F%A3%E8%BD%AC%E5%8F%91%E5%88%B0%20Ubuntu%20%E6%9C%8D%E5%8A%A1%E5%99%A8%E4%B8%8A%E7%9A%84%20VPN%20%E5%AE%A2%E6%88%B7%E7%AB%AF.png)
我在 Ubuntu 22.04 上运行 VPN Wireguard 服务器。我试图将服务器的所有端口转发到 10.10.10.2 上的 VPN 客户端。到目前为止,我已经完善了单个端口的端口转发。在 中/etc/ufw/before.rules
,执行此操作的行如下所示:
# Port forward port 80 to VPN Client at 10.10.10.2
-A PREROUTING -i enp1s0 -d my.public.server.ip -p tcp --dport 80 -j DNAT --to-destination 10.10.10.2:80
这成功将端口 80 从 VPN 服务器的公共 IP 转发到 10.10.10.2 上的 VPN 客户端。现在,我想转换此规则以将来自 my.public.server.ip 的所有流量转发到我的 VPN 客户端 10.10.10.2 上的所有端口,而不必转发单个端口。
我怎样才能在一行中将所有流量从 VPN 服务器端口转发到 VPN 客户端/etc/ufw/before.rules
?
谢谢您的帮助。
答案1
所有 udp/tcp 端口的正确/etc/ufw/before.rules
端口转发行如下(注意:这假设您的以太网接口名为enp1s0
,您的以太网 IP(您的 VPN 服务器的公共 IP 地址)地址为xx.xx.xxx.xxx
,并且您的 wireguard 客户端 IP 地址为10.10.10.2
。请进行相应的更改):
### /etc/ufw/before.rules
## NAT table rules
*nat
# Nat Pre-Routing
:PREROUTING ACCEPT [0:0]
# DMZ FORWARDING
# Forward all TCP ports from enp1s0 to wireguard client at 10.10.10.2
-A PREROUTING -i enp1s0 -p tcp -d xx.xx.xxx.xxx -j DNAT --to-destination 10.10.10.2
# Forward all UDP ports from enp1s0 to wireguard client at 10.10.10.2
-A PREROUTING -i enp1s0 -p udp -d xx.xx.xxx.xxx -j DNAT --to-destination 10.10.10.2
COMMIT