我正在尝试使用 WireGuard 配置 VPN 服务器,以便我在外出时可以访问本地网络。
我将 Raspberry Pi 配置为 Wireguard 的“服务器”,并且我有一台笔记本电脑作为客户端。我将“本地网络”描述为服务器(Raspberry Pi)所在的网络,“远程网络”描述为我家外的网络。
当我在本地网络的“客户端”中运行“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
客户端中的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
由于我是第一次设置这个网络系统,所以我想知道如何排除故障以找出问题的原因。
答案1
从您的问题描述中不能完全清楚,但我假设您的服务器位于某种为您的家庭提供互联网接入的消费级路由器后面。
这些设备通常是 NAT(对于 IPv4)和防火墙(对于 IPv6),它们会阻止您直接访问内部设备。
此外,从配置来看,很难猜出端点主机名实际上解析为什么。它是全局 IP 还是本地 IP?
我建议采取以下步骤:
- 在路由器中,找到端口转发选项,并确保 WireGuard 端口已转发到 WireGuard 服务器。这样设备就可以从外部访问。关于如何进行端口转发的指南有很多,所以我就不在这里详细介绍了。
- 确保您的端点是全局可解析的。在最简单的情况下,这意味着直接使用路由器的全局 IP(对于 IPv4)或 WireGuard 服务器的全局 IP(对于 IPv6)。