由于我的互联网连接已切换到 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.1
to 192.168.1.15
) 提供了寻找解决方案的关键提示。除了指出无法到达目的地外,还指出:
sendmsg: Destination Address required
此消息由 Wireguard 提供。
wg0.conf
此错误的根源是在其相应文件中为两个 VPN 客户端创建的对等条目的端点定义缺失。
解决方案:
删除了最初旨在直接相互了解的客户端的对等定义。它们不起作用,因为 VPN 客户端之间的直接端点未定义。这就是 ICMP 消息的来源。
在剩余的对等定义中添加了具体的对等地址,该地址指向 Wireguard 服务器、
192.168.1.10/32
服务器本身和192.168.1.15/32
客户端(对于其他客户端反之亦然)。在链中添加了一条防火墙规则
FORWARD
,允许数据包wg0
在传入设备和传出设备之间转发。在第一个实例中,我在内部和 VPN 接口(双向)之间创建了特定的流量规则。我不确定这是否真的有效果。