使用 qbittorrent 和 airdcpp 等应用程序来共享文件。它们都需要转发一些端口才能“可连接”。
在家庭连接中,我会进入路由器设置192.168.1.1
,然后转发端口,例如。56000
到我的电脑的本地 IP 地址:192.168.1.124
。而且服务会正常工作。
后来在Linode VPS 上设置了wireguard,希望我可以VPN 进入它并屏蔽我的IP。但是当我这样做时,当我访问https://whoer.net这样的地方时,我的 IP 地址会发生变化。但使用的端口,例如。 56000
未转发,因此应用程序不可“连接”。
为了让 VPS 像我的家庭路由器一样转发这些端口,我需要在 iptables 中添加哪些内容?
端口56000
设置为allow
活动 VPSufw
防火墙中的端口。
非常感谢您的浏览。
这是我的 VPS 线卫配置的样子:
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
Run Code Online (Sandbox Code Playgroud)
小智 7
由于您使用的是 UFW,首先请确保56000
您添加的端口的 UFW 规则不是常规输入规则,而是“路由”(又名转发)规则,如下所示(假设它用于 TCP 端口;替换tcp
为udp
for UDP):
ufw route allow proto tcp to 10.66.66.2 port 56000
Run Code Online (Sandbox Code Playgroud)
然后,对于要转发的每个端口,您需要这样的 iptables 规则(其中eth0
是 WAN 接口的名称):
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 56000 -j DNAT --to-destination 10.66.66.2
Run Code Online (Sandbox Code Playgroud)
如果您想要转发一堆单独的端口,您可以使用模块的--dports
标志(注意)将它们全部(最多 15 个端口)放入同一规则中:s
multiport
iptables -t nat -A PREROUTING -i eth0 -p tcp -m multiport --dports 123,456,789 -j DNAT --to-destination 10.66.66.2
Run Code Online (Sandbox Code Playgroud)
由于您使用的是 UFW,您可能希望将PREROUTING
规则放入配置文件*nat
的块中/etc/ufw/before.rules
,如下所示(假设您可能已经有与POSTROUTING
那里的规则类似的内容):
# /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
Run Code Online (Sandbox Code Playgroud)
*nat
如果文件中还没有块/etc/ufw/before.rules
,请将其添加到文件末尾。进行更改后重新启动 UFW。