如何修复 Wireguard VPN 网关的路由

如何修复 Wireguard VPN 网关的路由

由于我的互联网连接已切换到 IPV6 (DS-lite),我正在拼命尝试设置并运行 Wireguard-VPN-Setup。

我的设置(原始):

  • NetCup VPS(充当我的移动设备在互联网之外的 IPv4 联系点)
  • 内部Wireguard服务器(充当内部和外部网络之间的网关)
  • 安装了 Wireguard 客户端的 iPhone 仅通过移动网络连接

当前状态:

  • 在 VPS 和内部 Wireguard 服务器以及 VPS 和移动客户端之间建立并运行 VPN 隧道
  • VPS(VPN 地址 192.168.1.10)能够 ping 两个对等点(192.168.1.1 和 192.168.1.15)
  • 内部 Wireguard 服务器 (192.168.1.1) 能够 ping VPS (192.168.1.10),但无法访问移动客户端 (192.168.1.15) --> ICMP:目标主机无法访问。
  • 尝试 ping 192.168.1.15 时,VPS 服务器上的 tcpdump 未显示任何来自我的内部 Wireguard 服务器的 ICMP 请求
  • 移动客户端 (192.168.1.15) 能够通过 VPN 隧道 ping VPS (192.168.1.10),但无法到达内部 Wireguard 服务器 (192.168.1.1)

对我来说,这似乎是内部网关服务器上的路由问题。 wg-quick 设置的路由如下:

默认通过 192.168.2.1 dev enp0s10 原始静态指标 100 169.254.0.0/16 dev enp0s10 范围链接指标 1000 192.168.1.0/24 dev wg0 原始内核范围链接 src 192.168.1.1 192.168.2.0/24 dev enp0 s10 原型内核范围链接 src 192.168 .2.2 公制100

IP 转发已激活。

关于我可能错过的任何想法?

非常感谢任何帮助!

答案1

这是最初作为问题中的编辑发布的解决方案。作为社区 wiki 答案发布在这里(带有语法修复),因为原作者自己并没有这样做。


经过几个小时的搜索,我终于找到了一个对我有用的解决方案。

失败的 ICMP ping 消息 ( 192.168.1.1to 192.168.1.15) 提供了寻找解决方案的关键提示。除了指出无法到达目的地外,还指出:

sendmsg: Destination Address required

此消息由 Wireguard 提供。

wg0.conf此错误的根源是在其相应文件中为两个 VPN 客户端创建的对等条目的端点定义缺失。

解决方案:

  1. 删除了最初旨在直接相互了解的客户端的对等定义。它们不起作用,因为 VPN 客户端之间的直接端点未定义。这就是 ICMP 消息的来源。

  2. 在剩余的对等定义中添加了具体的对等地址,该地址指向 Wireguard 服务器、192.168.1.10/32服务器本身和192.168.1.15/32客户端(对于其他客户端反之亦然)。

  3. 在链中添加了一条防火墙规则FORWARD,允许数据包wg0在传入设备和传出设备之间转发。在第一个实例中,我在内部和 VPN 接口(双向)之间创建了特定的流量规则。我不确定这是否真的有效果。

相关内容