如果这个问题比较愚蠢,我提前道歉。我是一个网络新手,所以请耐心等待。
我在 Linode 实例上托管了一个 WireGuard VPN 服务器,并在不同位置有两个 Windows 客户端。目前,每个客户端都可以通过 VPN 服务器访问互联网,但我希望一个客户端 (10.0.0.3) 能够通过 VPN 使用 Windows 远程桌面连接到另一个客户端 (10.0.0.2),而这正是我目前遇到的问题。
当两个客户端都连接到 VPN 时,我可以使用 LAN 地址 ping 另一个客户端。但是,尝试通过 RDP 连接或telnet 3389
从源客户端使用会导致连接超时。
我已经在目标客户端上启用了远程桌面,还尝试在 Windows 防火墙中添加例外(以及彻底禁用它),所以我认为问题不在于接收端。此外,如果我telnet 3389
从 VPN 服务器使用到目标客户端,它能够连接,这让我相信 WireGuard 中的某个配置存在错误,阻止了两个客户端之间的通信。
这是我的 .conf 文件当前在 WireGuard 实例上的样子:
[Interface]
Address = 10.0.0.1/24
Address = fd86:ea04:1115::1/64
SaveConfig = true
PostUp = ufw route allow in on wg0 out on eth0
PostUp = iptables -t nat -I POSTROUTING -o eth0 -j MASQUERADE
PostUp = ip6tables -t nat -I POSTROUTING -o eth0 -j MASQUERADE
PreDown = ufw route delete allow in on wg0 out on eth0
PreDown = iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE
PreDown = ip6tables -t nat -D POSTROUTING -o eth0 -j MASQUERADE
ListenPort = 51820
PrivateKey = <privatekey>
[Peer]
PublicKey = <publickey>
AllowedIPs = 10.0.0.2/32, fd86:ea04:1115::2/64
Endpoint = <ip>:53042
[Peer]
PublicKey = <publickey>
AllowedIPs = 10.0.0.3/32, fd86:ea04:1115::3/64
Endpoint = <ip>:53042
源客户端上的配置如下:
[Interface]
PrivateKey = <privatekey>
Address = 10.0.0.3/32
DNS = 1.1.1.1, 1.0.0.1
[Peer]
PublicKey = <publickey>
AllowedIPs = 0.0.0.0/0
Endpoint = <ip>:51820
目标客户端应与上面的类似,只是地址改为 10.0.0.2/32。
如能提供任何帮助我将非常感激!
答案1
问题原来出在 ufw 上,它只设置为允许端口 22 和 51820。我添加了一条额外的规则来允许端口 3389 上的流量,现在我可以毫无问题地连接到另一个客户端。