通过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,这样端口就好像在服务器端运行并向公众开放一样。

为了实现这一目标,我根据这些指南修改了我的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。

相关内容