我已成功在 Ubuntu 20.04 上使用作为服务运行的方式设置了 Wireguard。Wireguardwg-quick
已连接到 VPN 服务提供商,并且运行正常。Wireguard10.0.100.0/24
运行时,同一子网上的其他计算机 () 对 Ubuntu 计算机的 LAN 访问和从 Ubuntu 计算机的 LAN 访问也运行正常。但是,一旦启动 Wireguard(使用wg-quick up wg0
),就会与其他子网失去连接。
具体来说,所讨论的另一个子网用于通过防火墙连接到 LAN 的另一个 VPN 连接。防火墙负责子网中 LAN 上的机器10.0.100.0/24
与子网中 VPN 上的机器之间的路由10.88.220.0/24
。在没有 Wireguard 的情况下,一切都运行顺利,VPN 上的机器可以访问 LAN 上的所有机器。但是一旦启动 Wireguard,该连接就会消失。
我查看了手册页,wg-quick
并查看了不少关于如何配置 Wireguard 的帖子,但还是没能找到解决方案。我尝试过的方法之一是将 添加到PostUp = ip route add 10.88.220.0/24 dev eth0
。/etc/wireguard/wg0.conf
在查看 执行的命令时wg-quick
,我怀疑我的问题与 执行的一些 ip 命令有关wg-quick
- 具体来说:
[#] ip -4 rule add not fwmark 51820 table 51820
[#] ip -4 rule add table main suppress_prefixlength 0
我的理解是,这些命令(与其他命令结合使用)会创建一个单独的路由表,该路由表指向 ,wg0
作为默认路由,然后将除 LAN 流量之外的流量转移到该路由表。我猜想发生的事情是,10.88.220.0/24
原本eth0
应该流向 的流量被上面的规则重定向到表 81820 并从 流出wg0
。我还尝试添加,PostUp = ip route add 10.88.220.0/24 dev eth0 table 51820
只是为了看看这是否可行(但要知道这不是永久解决方案,因为数字会因会话而异),但也许并不奇怪,它没有成功。
ip route
我尝试查看和命令的页面ip rule
,但无法弄清楚如何修改或补充规则和/或路由表以重新启用 LAN 和 VPN 之间的连接。如能提供任何有关如何执行此操作的建议或意见,我将不胜感激。
答案1
via [gateway]
修复方法非常简单。我所需要做的就是在我尝试的第一条规则中添加以下内容:
PostUp = ip route add 10.88.220.0/24 dev eth0 via 10.0.100.1