需要帮助通过 VPN 转发本地服务的端口,以便可以从网络访问它

需要帮助通过 VPN 转发本地服务的端口,以便可以从网络访问它

TL;DR:目标:将本地计算机上的服务及其关联端口在 VPN 下转发到 VPS,以便可以从网络访问它,并使用端口检查器检查要打开的端口。

我认为端口没有显示为打开并且程序无法正确运行是因为端口不知何故仍然卡在本地。即使在两个防火墙中都打开了端口,它仍然不会在wireguard 连接下转发到 VPS。

完整上下文:

我需要 Linux 专家的帮助来解决这个问题。我在本地计算机上运行一个程序 Airdcpp Web 客户端。它使用三个端口,在本例中,我将随机使用其中三个端口:220002200122002作为示例。

然后我通过防火墙程序firewalld的 GUI 允许这三个端口。因此,将允许进出交通。然后我进入路由器的设置页面,然后将这三个端口转发到我计算机的本地 IP 地址。例如。 22000-22000 --> 192.168.1.104。那时,如果我使用像这样的端口检查器:https://www.yougetsignal.com/tools/open-ports/,它显示它已打开并且程序按预期运行。

但问题是我的家庭 IP 暴露了,所以我想屏蔽它,我正在探索两种方法。使用代理或 VPN。

在代理的情况下,由于程序的固有限制,无论我尝试设置什么,数据传输都会受到限制。所以 VPN 成为我唯一的选择。

所以我使用这个脚本设置了wireguard:https://github.com/angristan/wireguard-install在我的 Linode VPS 上。在这种情况下,我相信直接暴露在互联网上,所以我所做的就是ufw allow上述三个端口,然后wg-quick up wg0在我的本地计算机上。然后连接VPN,程序运行并更改IP。问题是,当我使用端口检查器时,端口仍然显示为关闭,当然,程序没有在最佳条件下运行。

此时,我已将 VPS 和本地计算机上允许的所有端口设置为允许。 VPS连接正常。我也在 VPS 上运行一个程序,使用另一个端口,当我将它用作wireguard服务器时,我仍然可以正常访问该程序,这表明 VPS 直接暴露在网络上,并且 Linode 没有阻止任何东西,特别是因为这三个端口端口并不特殊,就像电子邮件一样。

所以我推测,为了让我的本地服务显示为可连接并在 VPN 连接中打开,我需要通过 VPN 协议以某种方式“转发”(我不知道实际的技术术语)其中三个,这样它就会看起来好像程序正在 VPS 上运行,我可以使用端口检查器在 VPS 的 IP 和端口关联下访问它。虽然现在我不知道该怎么办,但我需要一些前辈的帮助来提供任何想法。感谢您的阅读!欢迎任何有帮助的想法评论或指出指导或我的想法中的错误!

技术信息:

local machine OS: Arch Linux
program name: https://aur.archlinux.org/packages/airdcpp-webclient/
VPS: Linode ubuntu  20.04.1 LTS, running wireguard with a ufw firewall

编辑:wireguard 配置

VPS端:

[Interface]
Address = 10.66.66.1/24,fd42:42:42::1/64
ListenPort = 49503
PrivateKey = 
PostUp = iptables -A FORWARD -i eth0 -o wg0 -j ACCEPT; iptables -A FORWARD -i wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE; ip6tables -A FORWARD -i wg0 -j ACCEPT; ip6tables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
PostDown = iptables -D FORWARD -i eth0 -o wg0 -j ACCEPT; iptables -D FORWARD -i wg0 -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE; ip6tables -D FORWARD -i wg0 -j ACCEPT; ip6tables -t nat -D POSTROUTING -o eth0 -j MASQUERADE

### Client local_arch
[Peer]
PublicKey = 
PresharedKey = 
AllowedIPs = 10.66.66.2/32,fd42:42:42::2/128

我认为这些是内部IP,所以可以共享吗?如果我错了,请纠正。

本地机器配置:

[Interface]
PrivateKey = 
Address = 10.66.66.2/32,fd42:42:42::2/128
DNS = 1.1.1.1

[Peer]
PublicKey = 
PresharedKey = 
Endpoint = <linode.IP>:49503
AllowedIPs = 0.0.0.0/0,::/0

相关内容