使用 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
设置为。allow
ufw
非常感谢您的观看。
这是我的 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 端口;替换tcp
为udp
UDP):
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 个端口)放入同一条规则中: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
而且由于您使用 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
*nat
如果您的文件中还没有块/etc/ufw/before.rules
,请将其添加到文件末尾。进行更改后重新启动 UFW。