使用 wireguard 进行端口转发

使用 wireguard 进行端口转发

使用 qbittorrent 和 airdcpp 等应用程序共享文件。它们都需要转发一些端口才能“连接”。

在家庭连接中,我会进入路由器设置192.168.1.1,然后转发端口,例如,56000转发到我电脑的本地 IP 地址:192.168.1.124。服务就可以正常工作了。

后来在 Linode VPS 上设置了 wireguard,希望我可以通过 vpn 进入它并屏蔽我的 IP。但是当我这样做时,当我访问类似的地方时,我的 IP 地址会发生变化https://whoer.net。但是,所使用的端口例如56000未转发,因此应用程序不是“可连接的”。

为了让 VPS 像我的家用路由器一样转发这些端口,我需要在 iptables 中添加哪些东西?

在活动的 VPS 防火墙中端口56000设置为。allowufw

非常感谢您的观看。

这是我的 VPS wireguard 配置:

Address = 10.66.66.1/24,fd42:42:42::1/64
ListenPort = 49503
PrivateKey = ***


[Peer]
PublicKey = ***
PresharedKey = ***
AllowedIPs = 10.66.66.2/32,fd42:42:42::2/128

答案1

由于您使用的是 UFW,首先请确保56000您添加的端口的 UFW 规则不是常规输入规则,而是“路由”(又名转发)规则,如下所示(假设它用于 TCP 端口;替换tcpudpUDP):

ufw route allow proto tcp to 10.66.66.2 port 56000

然后,您需要为每个要转发的端口制定一条类似这样的 iptables 规则(其中eth0是您的 WAN 接口的名称):

iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 56000 -j DNAT --to-destination 10.66.66.2

如果您有一堆需要转发的单独端口,则可以用模块的--dports标志(注意)将它们全部(最多 15 个端口)放入同一条规则中:smultiport

iptables -t nat -A PREROUTING -i eth0 -p tcp -m multiport --dports 123,456,789 -j DNAT --to-destination 10.66.66.2

而且由于您使用 UFW,您可能希望将规则放在配置文件的块PREROUTING中,如下所示(假设您可能已经有类似于那里的规则):*nat/etc/ufw/before.rulesPOSTROUTING

# /etc/ufw/before.rules
*nat
:PREROUTING ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]
-A PREROUTING -i eth0 -p tcp --dport 56000 -j DNAT --to-destination 10.66.66.2
-A POSTROUTING -o eth0 -j MASQUERADE
COMMIT

*nat如果您的文件中还没有块/etc/ufw/before.rules,请将其添加到文件末尾。进行更改后重新启动 UFW。

相关内容