WireGuard:Ubuntu 22.04 上的服务器和 MacOS 上的 Peer - 活动但无连接

WireGuard:Ubuntu 22.04 上的服务器和 MacOS 上的 Peer - 活动但无连接

我有一台安装了 Ubuntu 22.04 和 wireguard 服务器的云服务器,以及一台安装了 WireGuard 应用程序的 MacOS 设备。该应用程序显示活动连接,但 IP 地址没有更改,我也没有在服务器上看到活动连接。我的配置文件如下所示:

/etc/wireguard/wg0.conf 
[Interface]
Address = 10.8.0.1/24, cce7:c18e:3cd5::2/64

ListenPort = 41194
SaveConfig = true
PostUp = ufw route allow in on wg0 out on ens192
PostUp = iptables -t nat -I POSTROUTING -o ens192 -j MASQUERADE
PostUp = ip6tables -t nat -I POSTROUTING -o ens192 -j MASQUERADE
PreDown = ufw route delete allow in on wg0 out on ens192
PreDown = iptables -t nat -D POSTROUTING -o ens192 -j MASQUERADE
PreDown = ip6tables -t nat -D POSTROUTING -o ens192 -j MASQUERADE

PrivateKey = <server_private_key>

我的对等配置如下所示:

[Interface]
PrivateKey = <peer_private_key>
Address = 10.8.0.2/24, cce7:c18e:3cd5::2/64

[Peer]
PublicKey = <server_public_key>
AllowedIPs = 10.8.0.0/24, cce7:c18e:3cd5::/64
Endpoint = dunno.com:41194

防火墙已打开 UDP 端口 41194,并且 wg0 配置中的规则也已到位:

41194/udp                  ALLOW       Anywhere   
41194/udp (v6)             ALLOW       Anywhere (v6)            
Anywhere on ens192         ALLOW FWD   Anywhere on wg0        
Anywhere (v6) on ens192    ALLOW FWD   Anywhere (v6) on wg0   

WireGuard 服务器正在运行:

[email protected] - WireGuard via wg-quick(8) for wg0
 Loaded: loaded (/lib/systemd/system/[email protected]; enabled; vendor preset: enabled)
 Active: active (exited) since Sat 2023-12-16 11:22:50 UTC; 8s ago
   Docs: man:wg-quick(8)
         man:wg(8)
         https://www.wireguard.com/
         https://www.wireguard.com/quickstart/
         https://git.zx2c4.com/wireguard-tools/about/src/man/wg-quick.8
         https://git.zx2c4.com/wireguard-tools/about/src/man/wg.8
Process: 5925 ExecStart=/usr/bin/wg-quick up wg0 (code=exited, status=0/SUCCESS)
Main PID: 5925 (code=exited, status=0/SUCCESS)
    CPU: 239ms

Dec 16 11:22:50 localhost wg-quick[5925]: [#] wg setconf wg0 /dev/fd/63
Dec 16 11:22:50 localhost wg-quick[5925]: [#] ip -4 address add 10.8.0.1/24 dev wg0
Dec 16 11:22:50 localhost wg-quick[5925]: [#] ip -6 address add cce7:c18e:3cd5::2/64 dev wg0
Dec 16 11:22:50 localhost wg-quick[5925]: [#] ip link set mtu 1420 up dev wg0
Dec 16 11:22:50 localhost wg-quick[5925]: [#] ufw route allow in on wg0 out on ens192
Dec 16 11:22:50 localhost wg-quick[5956]: Rule added
Dec 16 11:22:50 localhost wg-quick[5956]: Rule added (v6)
Dec 16 11:22:50 localhost wg-quick[5925]: [#] iptables -t nat -I POSTROUTING -o ens192 -j MASQUERADE
Dec 16 11:22:50 localhost wg-quick[5925]: [#] ip6tables -t nat -I POSTROUTING -o ens192 -j MASQUERADE
Dec 16 11:22:50 localhost systemd[1]: Finished WireGuard via wg-quick(8) for wg0.

我可以激活对等连接,并且应用程序显示绿灯,但是当调用类似https://whatismyipaddress.com/我仍然可以看到我的本地 IP。此外,服务器上的 wg 没有显示任何活动连接:

#wg show wg0
interface: wg0
public key: <public_server_key>
private key: (hidden)
listening port: 41194

我究竟做错了什么?

编辑

在阅读@Michalng 的评论后(感谢!)我明白了,它AllowedIPs定义了在我的对等点上调用的 URL,并且应该通过 WG 服务器进行路由。因此,我将该设置更改为::/0, 0.0.0.0.0/0建议的设置,现在我看到数据通过连接传递到服务器。并且,如上所述,我确实收到了 DNS 错误。因此,我将我的 openWRT 路由器的 IP 添加到对等点的配置中:

[Interface]
....
DNS = 192.168.200.1

当调用nslookup google.com这个功能在我的对等终端上运行良好时,但在浏览器中我无法打开同一页面 - 它只是无休止地加载。

我在 MacOS 上使用 WireGuard 应用程序,它显示数据已发送:X MB,但在服务器上运行 wg show all 仅显示 wg0 接口。

那么,似乎缺少了一点点。那是什么呢?

答案1

您的 WireGuard 设置未完成。Ubuntu 主机缺少 macOS 主机的对等配置。

要在两个主机之间设置 WireGuard,您需要:

  • 在主机 A 上
    • 主机 A 的私钥
    • 主机A的监听端口
    • 主机 B 的公钥
    • 主机 B 的 IP 地址和/或子网(“允许的 IP”)
  • 在主机 B 上
    • 主机 B 的私钥
    • 主机B的监听端口
    • 主机 A 的公钥
    • 主机 A 的 IP 地址和/或子网

所有这些都必须事先交换。要建立两台主机之间的关联,至少其中一台必须能够访问另一台的 UDP 监听端口。这个设置过程可能很麻烦,这就是 Tailscale 存在的原因。

您必须添加对等体使用 macOS 主机的公钥在 Ubuntu 主机上输入。不过,您不需要添加端点。如果一切顺利,双方都会将对方列为对等方。鉴于您正在使用wg-quick,它可能看起来像这样:

[Peer]
PublicKey = R6gGtDkUJCfVYXpRrem1TxlLYGzT/PrfZNp5Cp669Ro=
AllowedIPs = 10.8.0.2/32, cce7:c18e:3cd5::2/128

(前缀长度允许IP必须适当选择:“公路战士”同伴通常会有/32(或 _/128)。WireGuard 使用此信息将流量路由到对等点。对等体,接口仍将配置“真实”前缀长度。)

然后,在成功交换流量后,您还将wg在 Ubuntu 主机上看到类似这样的内容:

peer: R6gGtDkUJCfVYXpRrem1TxlLYGzT/PrfZNp5Cp669Ro=
  endpoint: 203.0.113.54:51820
  allowed ips: 10.8.0.2/32, cce7:c18e:3cd5::2/128
  latest handshake: 38 seconds ago
  transfer: 46.34 MiB received, 995.54 MiB sent

如果发起关联的主机(在您的情况下为 macOS 主机)位于 NAT 后面,您可能需要在那里启用保活数据包。

相关内容