透過wireguard轉送本機服務連接埠並傳回本機服務

透過wireguard轉送本機服務連接埠並傳回本機服務

我的系統:

Local: Arch Linux
VPS: Linode uubuntu 20.04.1
Standard Wireguard Package on both ends

所以我正在使用空氣DCPPD,一個文件共享程序,它使用我本地計算機上的 3 個連接埠來傳輸流量資訊。

他們是:

23288/tcp
21500/udp
13875/tcp

我想要做的是將這些連接埠轉發到 VPS 線衛,這樣看起來就好像這些連接埠在伺服器端運行並向公眾開放。

為了實現這一目標,我根據這些指南修改了我的wireguard介面配置:

指南1

指南2

所以我的配置現在看起來像這樣:

當地的:

[Interface]
PrivateKey = <my key>
Address = 10.66.66.2/32,fd42:42:42::2/128
DNS = 1.1.1.1,94.140.15.15

# packet forwarding
PreUp = sysctl -w net.ipv4.ip_forward=1

# port forwarding
PreUp = iptables -t nat -A PREROUTING -d local.ip.address -p tcp --dport 23288 -j DNAT --to-destination 10.66.66.1
PreUp = iptables -t nat -A PREROUTING -d local.ip.address -p udp --dport 21500 -j DNAT --to-destination 10.66.66.1
PreUp = iptables -t nat -A PREROUTING -d local.ip.address -p tcp --dport 13875 -j DNAT --to-destination 10.66.66.1
PostDown = iptables -t nat -D PREROUTING -d local.ip.address -p tcp --dport 23288 -j DNAT --to-destination 10.66.66.1
PostDown = iptables -t nat -D PREROUTING -d local.ip.address -p udp --dport 21500 -j DNAT --to-destination 10.66.66.1
PostDown = iptables -t nat -D PREROUTING -d local.ip.address -p tcp --dport 13875 -j DNAT --to-destination 10.66.66.1

[Peer]
PublicKey = <my key>
PresharedKey = <my key>
Endpoint = vps.ip.address:49503
AllowedIPs = 0.0.0.0/0,::/0

伺服器:

[Interface]
Address = 10.66.66.1/24,fd42:42:42::1/64
ListenPort = 49503
PrivateKey = <my key>

PreUp = iptables -t nat -A PREROUTING -d vps.ip.address -p tcp --dport 23288 -j DNAT --to-destination 10.66.66.2
PreUp = iptables -t nat -A PREROUTING -d vps.ip.address -p udp --dport 21500 -j DNAT --to-destination 10.66.66.2
PreUp = iptables -t nat -A PREROUTING -d vps.ip.address -p tcp --dport 13875 -j DNAT --to-destination 10.66.66.2
PostDown = iptables -t nat -D PREROUTING -d vps.ip.address -p tcp --dport 23288 -j DNAT --to-destination 10.66.66.2
PostDown = iptables -t nat -D PREROUTING -d vps.ip.address -p udp --dport 21500 -j DNAT --to-destination 10.66.66.2
PostDown = iptables -t nat -D PREROUTING -d vps.ip.address -p tcp --dport 13875 -j DNAT --to-destination 10.66.66.2

### Client name
[Peer]
PublicKey = <my key>
PresharedKey = <my key>
AllowedIPs = 10.66.66.2/32,fd42:42:42::2/128

正如您可能看到的,我的本地wireguard內部地址是:10.66.66.2而伺服器的內部地址是10.66.66.1

現在發生的情況是,本機電腦上的本機連接埠23288(在沒有經過 VPN 的情況下顯示為開啟)在使用連接埠檢查器檢查後也顯示為開啟。其他三個連接埠仍然關閉,但這並不是什麼大問題,因為使用的主要連接埠是開放的,這對於我的目的來說已經足夠了。即使沒有 VPN,其他連接埠也顯示為關閉。

目前還沒有使用防火牆,在我開始工作後我將允許所有涉及的連接埠。

出現的問題是包裹通過VPN發送後發生的情況,它似乎沒有返回到本地。正如您所看到的,我確實設定了將這 3 個連接埠上的所有套件傳送回本機電腦的規則。但由於某種原因,我沒有得到它們,因為應用程式中airdc沒有顯示應有的內容。

我在嘗試將這些連接埠的流量「轉送」回本機電腦時是否做錯了什麼?這是我的本機應用程式接收包的正確方法嗎?如果不是,設定 VPS 線衛配置的正確方法應該是什麼,以便正確返回這三個連接埠上轉發的任何內容?

謝謝您的關注!

編輯:我用來存取服務的本機連接埠是 http://localhost:5960 ,我想將其與 vpn 一起使用,這樣我也可以從網路存取它,如下所示:https://vps.ip.位址:5960,但即使我添加了一行以使用上面相同的語法將本地端口 5960 轉發到伺服器,它仍然不起作用,也許這也是讓整個事情正常工作的關鍵?

答案1

相反,您必須將連接埠從 VPS 端轉送到本機的內部 IP。就像您在家中的路由器上連接到 PC 的本地地址一樣。不將本機連接到VPS。

相關內容