如何解决wireguard连接问题?

jlu*_*esc 7 vpn troubleshooting raspberry-pi wireguard

我正在尝试使用 WireGuard 配置 VPN 服务器,以便在外出时能够访问我的本地网络。

我将树莓派配置为 Wireguard“服务器”,并且我有一台笔记本电脑将用作客户端。我将把“本地网络”描述为服务器(树莓派)所在的网络,将“远程网络”描述为我家外面的网络。

当我从本地网络在“客户端”中运行“wg-quick PiVPN-FT”时,我可以通过 ssh 连接到本地网络上的设备,并且也可以访问互联网。但是,当我从远程网络(使用手机的热点)执行此操作时,我无法 ssh 到其他设备,并且无法访问互联网。

我还尝试在工作时从网络进行连接(以避免使用热点),但得到了相同的负面结果。

服务器上的conf文件是:

[Interface]
PrivateKey = Private_key
Address = 10.6.0.1/24
MTU = 1420
PostUp = iptables -A FORWARD -i wg0 -j ACCEPT; iptables -A FORWARD -o wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
PostDown = iptables -D FORWARD -i wg0 -j ACCEPT; iptables -D FORWARD
-o wg0 -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE
ListenPort = 51820

[Peer]
PublicKey = Public_Key
PresharedKey = Preshared_Key
AllowedIPs = 10.6.0.2/32

[Peer]
PublicKey = Public_Key
PresharedKey = Preshared_Key
AllowedIPs = 10.6.0.3/32
PersistentKeepalive=25
Run Code Online (Sandbox Code Playgroud)

客户端中的conf文件为:

[Interface]
PrivateKey = Private_Key
Address = 10.6.0.3/24
MTU = 1420
DNS = 8.8.8.8, 8.8.4.4

[Peer]
PublicKey = Public_Key
PresharedKey = Preshared_Key
Endpoint = End_point:51820
AllowedIPs = 0.0.0.0/0, ::0/0
Run Code Online (Sandbox Code Playgroud)

由于我是设置此网络系统的新手,我想知道如何进行故障排除以找出导致问题的原因。

sve*_*aro 1

从您的问题描述来看,这并不完全清楚,但我假设您的服务器位于某种消费级路由器后面,该路由器为您的家庭提供互联网访问。

这些设备通常是 NAT(对于 IPv4)和防火墙(对于 IPv6),它们会阻止您直接访问内部设备。

另外,从配置中,不太可能猜测端点主机名实际解析为什么。是全球IP还是本地IP?

我建议采取以下步骤:

  1. 在您的路由器中,找到选项端口转发并确保您的 WireGuard 端口已端口转发到 WireGuard 服务器。这将使设备可以从外部访问。关于如何进行端口转发的指南有很多,因此我不会在这里详细介绍。
  2. 确保您的端点是全局可解析的。在最简单的情况下,这意味着直接使用路由器的全局 IP(对于 IPv4)或 WireGuard 服务器的全局 IP(对于 IPv6)。