我一直在尝试设置 wireguard。经过比我想承认的更多的挣扎之后。它终于起作用了!我可以从我的电脑上连接到本地的 wireguard 服务器并访问服务器上托管的网站(node-red 界面)。
供参考,我的本地网络位于192.168.1.0/24
以下是我的配置文件:
服务器 (Ubuntu 服务器 21.10在192.168.1.100/24
)
[Interface]
Address = 192.168.50.1/24
ListenPort = 51820
PrivateKey = <something>
[Peer]
PublicKey = <something>
PresharedKey = <something>
AllowedIPs = 192.168.50.2/32
客户 (Ubuntu 桌面 20.04.3开启192.168.1.33
(DHCP))
[Interface]
Address = 192.168.50.2/32
PrivateKey = <Something>
[Peer]
Endpoint = 192.168.2.100:51820
AllowedIPs = 192.168.50.0/24
PublicKey = <Something>
PresharedKey = <something>
此配置按预期工作,因为我可以通过1880
ip端口访问我的 node-red 接口192.168.50.1
然后,我尝试通过互联网访问它。因此,我在路由器上添加了端口转发规则,以便将所有流量路由51820
到我的 pi端口
规则如下
握手不会发生。
这是命令的结果sudo wg
peer: <The public key of the server>
preshared key: (hidden)
endpoint: <My public ip>:51820
allowed ips: 192.168.50.0/24
transfer: 0 B received, 296 B sent
并且在服务器上,该sudo wg
命令显示没有接收或发送任何内容。
我尝试过什么:
- 我尝试添加另一条测试规则,将来自端口 1880 的流量重定向到我的 pi,以查看我是否弄乱了我的 ips,但之后我可以从我的公共 IP 访问我的界面
- 我暂时禁用了
ufw
客户端和服务器上的防火墙,以查看防火墙是否阻止了 - 我只指定了端口重定向规则的更新
什么都做不了……
但是当我回到本地服务器 IP 时,一切都正常。所以这不是我的公钥/私钥/预共享密钥组合。
从这里我唯一能看到的是,udp 端口被我的 ISP 阻止了。这是可能发生的事吗?
结论:
我可以从本地访问我的 wireguard vpn,但无法通过互联网访问它,我的公共 IP 是正确的,我的密钥是正确的,我的服务器/客户端防火墙已被禁用。
我先发了这里不知道 serverfault 仅适用于专业用例。
编辑 : 我发现了一个网站检查一下我们的公网地址是否屏蔽了端口。我回家后会试试。显然,ISP 屏蔽非公用端口并不常见来源。
我的问题与这个因为我没有尝试从我的公共 IP 访问我的公共 IP。我尝试使用手机的移动连接(肯定是不同的 IP,因为它甚至不是同一个 ISP),我得到了相同的结果。
编辑2:
好吧,在尝试调试时,我在我的公共 IP 上执行了 tracert 命令。我发现我的 IP 是在美国注册的。但我不在美国,所以我检查了 x 时间的配置,发现公共 IP 是错误的 :(。所以这对我来说是个错误,因为它现在工作正常!无论如何,谢谢你的帮助!