Wireguard 无法从一台机器连接,但可以从另一台机器连接

Wireguard 无法从一台机器连接,但可以从另一台机器连接

我正在运行 Manjaro,在其中我设置了一个 wireguard 对等点来连接到我家里的 Raspberry Pi,但它无法 ping 通我本地网络上的任何机器,甚至无法 ping wireguard 对等点。它甚至可能没有连接,尽管它声称已经连接。我有第二个客户端,完全没有问题。

这是我的接口配置,它与我的客户端安装脚本吐出的配置文件相同:

这是我的界面配置

除了私钥和预共享密钥不同之外,这与我的其他客户端上使用的配置非常相似。

据我所知,客户端在服务器端设置正确,如我的/etc/wireguard/wg0.conf文件所示。

每当我启用时tun0,我无法 ping 任何本地地址,包括 wireguard 隧道的另一端。

这到底发生了什么事?

答案1

当您使用 AllowedIPs 0.0.0.0 时,wireguard 会绑定到所有 IP 地址。如果您有两个端点,则需要更具体地使用此字段。来自“非官方”github 上的 wireguard 文档,请参阅下面的第 3 点:

允许IP

这定义了对等方将路由流量的 IP 范围。在简单客户端上,这通常是一个地址(简单客户端本身的 VPN 地址)。对于反弹服务器,这将是中继服务器能够路由流量的 IP 或子网范围。可以使用逗号分隔的 IPv4 或 IPv6 CIDR 表示法指定多个 IP 和子网(从单个 /32 或 /128 地址,一直到 0.0.0.0/0 和 ::/0 以指示通过该对等方发送所有互联网和 VPN 流量的默认路由)。可以多次指定此选项。

在决定如何路由数据包时,系统会首先选择最具体的路由,然后再选择更广泛的路由。因此,对于目的地为 192.0.2.3 的数据包,系统会首先寻找专门通告 192.0.2.3/32 的对等体,最后再选择通告 192.0.2.1/24 或更大范围(如 0.0.0.0/0)的对等体。

例子

  1. peer 是一个简单的客户端,它只接受来自自身的流量:AllowedIPs = 192.0.2.3/32
  1. 对等体是一个中继服务器,可以将 VPN 流量反弹到所有其他对等体:AllowedIPs = 192.0.2.1/24
  1. peer 是一个中继服务器,可反弹所有互联网和 VPN 流量(如代理),包括 IPv6:AllowedIPs = 0.0.0.0/0,::/0
  1. peer 是一个中继服务器,它路由到自身和仅一个其他对等体:AllowedIPs = 192.0.2.3/32,192.0.2.4/32
  1. peer 是一个中继服务器,它路由到自身及其本地 LAN 上的所有节点:AllowedIPs = 192.0.2.3/32,192.168.1.1/24

相关内容