Port-Forwarding

使用wireguard進行埠轉發

  • June 25, 2021

使用 qbittorrent 和 airdcpp 等應用程序共享文件。它們都需要轉發一些埠才能“可連接”。

在家庭連接中,我會進入路由器設置192.168.1.1,然後轉發埠,例如。56000到我電腦的本地 IP 地址:192.168.1.124. 並且服務會正常工作。

後來在 Linode VPS 上設置了wireguard,希望我可以通過 vpn 訪問它並屏蔽我的 IP。但是當我這樣做時,當我去像https://whoer.net這樣的地方時,我的 IP 地址會改變。但是使用的埠,例如。 56000未轉發,因此應用程序不可“連接”。

為了讓 VPS 像我的家庭路由器一樣轉發這些埠,我需要在 iptables 中添加哪些內容?

埠在活動 VPS防火牆56000中設置為。allow``ufw

非常感謝您的關注。

這就是我的 VPS wireguard conf 的樣子:

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

由於您使用的是 UFW,首先確保56000您添加的埠的 UFW 規則不是正常輸入規則,而是“路由”(又名轉發)規則,如下所示(假設它用於 TCP 埠;tcp替換udp為UDP):

ufw route allow proto tcp to 10.66.66.2 port 56000

然後,對於要轉發的每個埠,您都需要一個像這樣的 iptables 規則(eth0WAN 介面的名稱在哪裡):

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

如果您有一堆要轉發的單個埠,您可以使用模組的--dports標誌(注意s)將它們全部(最多 15 個埠)放在同一規則中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。

引用自:https://serverfault.com/questions/1067746