将 Wireguard 流量转发到另一个端口

将 Wireguard 流量转发到另一个端口

我已在服务器 A 上安装了 Wireguard,配置如下:

[Interface]
Address = 172.16.0.1/24
ListenPort = 51820
PrivateKey = <server private key>
# Firewall rules
PostUp = iptables -A FORWARD -i %i -j ACCEPT; iptables -A FORWARD -o %i -j ACCEPT; iptables -t nat -A POSTROUTING -o ens160 -j MASQUERADE
PostDown = iptables -D FORWARD -i %i -j ACCEPT; iptables -D FORWARD -o %i -j ACCEPT; iptables -t nat -D POSTROUTING -o ens160 -j MASQUERADE


[Peer]
# Client #1 details
PublicKey = <client public key>
AllowedIPs = 172.16.0.2/32

而且我还在(port: 6060)服务器 A 的本地主机上打开了一个 tcp 端口,如果有人连接到该端口,其所有流量都将通过服务器 B 转发到互联网。(something like dynamic port forwarding)

我如何将所有 Wiregurad VPN 客户端流量转发到此端口,(6060)以便如果有人连接到我的 VPN 服务器,他们就可以通过服务器 B 访问互联网。

我的操作系统是:Ubuntu 20.04

答案1

您的问题不清楚,我猜您正在尝试将端口转发到您的 WireGuard 客户端?

# Allow communication between WireGuard peers and MASQUERADE traffic
PostUp = iptables -A FORWARD -i %i -j ACCEPT; iptables -t nat -A POSTROUTING -o ens160 -j MASQUERADE;
PostDown = iptables -D FORWARD -i %i -j ACCEPT; iptables -t nat -D POSTROUTING -o ens160 -j MASQUERADE;

# Port forwarding for single port to 172.16.0.2
PostUp = iptables -t nat -A PREROUTING -p tcp --dport 6000 -j DNAT --to-destination 172.16.0.2; iptables -t nat -A POSTROUTING -p tcp -d 172.16.0.2 --dport 6000 -j SNAT --to-source 172.16.0.1;
PostDown = iptables -t nat -D PREROUTING -p tcp --dport 6000 -j DNAT --to-destination 172.16.0.2; iptables -t nat -D POSTROUTING -p tcp -d 172.16.0.2 --dport 6000 -j SNAT --to-source 172.16.0.1;

这应该可以让您将端口转发到您的客户端 IP。

相关内容