兰 亭 墨 苑
期货 · 量化 · AI · 终身学习
首页
归档
编辑文章
标题 *
URL 别名 *
内容 *
(支持 Markdown 格式)
# 路由规则决定了哪些流量走 VPN 网络地址表示法解释: · 10.0.0.0/32:只匹配 单个IP地址 10.0.0.0 · /32 表示子网掩码为 255.255.255.255(32位1) · 这是网络地址(通常不分配给设备使用) · 所以实际上 没有任何设备 符合这个路由 · 10.0.0.0/24:匹配 整个网段 10.0.0.0-10.0.0.255 · /24 表示子网掩码为 255.255.255.0(24位1) · 覆盖你的 WireGuard 网络中的所有设备 具体发生了什么: 当设置为 /32 时: 1. iPhone 想连接到 WireGuard 服务器(比如 10.0.0.1 或其他设备) 2. 系统检查路由表:"目标 IP 10.0.0.1 是否匹配 10.0.0.0/32?" 3. 答案:不匹配!因为 10.0.0.1 ≠ 10.0.0.0 4. 流量走默认路由(直接上网),不进入 WireGuard 隧道 5. 结果:握手包根本发不出去 当设置为 /24 时: 1. iPhone 想连接到 WireGuard 服务器(10.0.0.1) 2. 系统检查:"目标 IP 10.0.0.1 是否匹配 10.0.0.0/24?" 3. 答案:匹配!因为 10.0.0.1 在 10.0.0.0-10.0.0.255 范围内 4. 流量通过 WireGuard 接口发送 5. 结果:握手成功,连接建立 实际场景类比: 想象一下邮递系统: · /32 就像说:"我只给 门牌号0号 的房子寄信" · /24 就像说:"我给 整个小区(0-255号)都寄信" · 你要连接的其他设备都在这个小区里,但他们的门牌号不是0号 其他设备的配置为什么能通? 你的其他设备(MacBook、阿里云等)的服务器端配置中,它们的 AllowedIPs 都是单个IP(如 10.0.0.6/32),这是正确的,因为这是服务器允许这些设备使用的IP地址。 而 iPhone 客户端的 AllowedIPs(实际上是路由设置)应该是客户端要通过VPN访问的网段,而不是它自己的IP。 总结: · 客户端的 AllowedIPs(路由):告诉系统 哪些目标IP要走VPN · 服务器端的 AllowedIPs:告诉服务器 允许这个客户端使用哪些源IP 你的问题就是把客户端的路由表设置错了,导致系统不知道哪些流量应该进入 VPN 隧道。改成 /24 后,系统就知道所有 10.0.0.x 的流量都走 WireGuard,于是就能正常握手了。
配图 (可多选)
选择新图片文件或拖拽到此处
标签
更新文章
删除文章