Wireguard 不会将所有流量都传输到服务器

Wireguard 不会将所有流量都传输到服务器

我花了好长时间让 WG 将所有流量传输回服务器。我以为这会是一个简单的单行过程,但事实并非如此。我已经安装了最新版本,删除、重新安装,几乎完成了所有操作。服务器中也进行了 iptables 更改,但甚至没有进展到那个程度。它只是没有路由到 wg0。如果我尝试手动添加路由,它会说它已经存在。我错过了什么?

wg0.conf
[Interface]
Address = 172.20.3.9/32
PrivateKey = 

[Peer]
PublicKey = 
Endpoint = 18.x.x.x:51820
AllowedIPs = 0.0.0.0/0,::/0
PersistentKeepalive = 25
Route tables on the client:
route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.1.1     0.0.0.0         UG    0      0        0 eno1
192.168.1.0     0.0.0.0         255.255.255.0   U     0      0        0 eno1

ip route show table main
default via 192.168.1.1 dev eno1 proto static 
192.168.1.0/24 dev eno1 proto kernel scope link src 192.168.1.62 
wg show on the client:
interface: wg0
  public key: 
  private key: (hidden)
  listening port: 39804
  fwmark: 0xca6c

peer: 
  endpoint: 18.x.x.x:51820
  allowed ips: 0.0.0.0/0, ::/0
  latest handshake: 38 seconds ago
  transfer: 20.05 KiB received, 33.70 KiB sent
  persistent keepalive: every 25 seconds
Console output when it starts:
wg-quick up wg0
[#] ip link add wg0 type wireguard
[#] wg setconf wg0 /dev/fd/63
[#] ip -4 address add 172.20.3.9/32 dev wg0
[#] ip link set mtu 1420 up dev wg0
[#] wg set wg0 fwmark 51820
[#] ip -6 route add ::/0 dev wg0 table 51820
[#] ip -6 rule add not fwmark 51820 table 51820
[#] ip -6 rule add table main suppress_prefixlength 0
[#] ip6tables-restore -n
[#] ip -4 route add 0.0.0.0/0 dev wg0 table 51820
[#] ip -4 rule add not fwmark 51820 table 51820
[#] ip -4 rule add table main suppress_prefixlength 0
[#] sysctl -q net.ipv4.conf.all.src_valid_mark=1
[#] iptables-restore -n

答案1

当您设置AllowedIPs为时/0,wg-quick 使用策略路由来避免覆盖主表中除默认路由之外的路由。运行ip rule以查看 wg-quick 设置的策略规则,并ip route show table 51820查看您要查找的路由。wg-quick 的策略规则在您的情况下的效果是继续通过 路由192.168.1.0/24(以及 WireGuard 自己的流量到18.x.x.xeno1,同时通过 路由其他所有内容wg0

如果你真的想路由一切通过 wg0,首先在自定义路由表中添加远程端点的路由:

ip route add 18.x.x.x via 192.168.1.1 dev eno1 table 123

然后添加一个策略规则,使该表优先于其他表:

ip rule add table 123 priority 456

然后配置 wg-quick 在启动界面时将其路由添加到该表(如您的情况下的默认路由):

[Interface]
...
Table = 123

[Peer]
...

https://www.wireguard.com/netns/#routing-all-your-traffic以进行进一步的讨论和替代方法。

相关内容