我已连接到 VPS,需要通过 VPN 路由特定应用程序。但是,当我通过 WireGuard 启用 VPN 时,我与 VPS 的 SSH 连接断开。默认情况下,我的 VPN 会自行路由所有流量,但我只希望某些应用程序使用 VPN。我的目标是配置 WireGuard,以便只有明确绑定到 VPN 网络接口 ( se-got-wg-001
) 的应用程序才会使用 VPN,而其他应用程序将继续使用默认接口 ( eth0
)。
以下是我当前的 WireGuard 配置:
[Interface]
PrivateKey = REDACTED
Address = 10.66.127.142/32,fc00:bbbb:bbbb:bb01::3:7f8d/128
DNS = REDACTED
[Peer]
PublicKey = REDACTED
AllowedIPs = 0.0.0.0/0,::0/0
Endpoint = REDACTED
我希望这些更改在重启后仍然有效。我应该做哪些修改才能确保我的系统eth0
即使在启用 VPN 时也能将其用作默认接口?
我发现一些相关的帖子可能会有所帮助,但我仍然不清楚我需要采取哪些步骤:
- 具有两个接口的 Wireguard 客户端 - 使用一个接口来管理 Wireguard
- https://www.reddit.com/r/WireGuard/comments/npf4bp/new_to_wireguard_tips_for_routing_only_certain/
- https://serverfault.com/questions/1075973/wireguard-how-to-only-tunnel-some-of-the-traffic
- https://www.reddit.com/r/WireGuard/comments/vytuv5/is_it_possible_to_setup_wireguard_so_it_only/
以下是有关我的系统的一些信息:
root@vmixxx /e/wireguard# neofetch
.-/+oossssoo+/-. [email protected]
`:+ssssssssssssssssss+:` ---------------------------------
-+ssssssssssssssssssyyssss+- OS: Ubuntu 24.04.1 LTS x86_64
.ossssssssssssssssssdMMMNysssso. Host: KVM/QEMU (Standard PC (i440FX + PIIX, 1996) pc-i440fx-7.2)
/ssssssssssshdmmNNmmyNMMMMhssssss/ Kernel: 6.8.1-1009-realtime
+ssssssssshmydMMMMMMMNddddyssssssss+ Uptime: 2 hours, 45 mins
/sssssssshNMMMyhhyyyyhmNMMMNhssssssss/ Packages: 1813 (dpkg), 4 (snap)
.ssssssssdMMMNhsssssssssshNMMMdssssssss. Shell: fish 3.7.0
+sssshhhyNMMNyssssssssssssyNMMMysssssss+ Resolution: 800x600
ossyNMMMNyMMhsssssssssssssshmmmhssssssso CPU: AMD EPYC 7282 (4) @ 2.794GHz
ossyNMMMNyMMhsssssssssssssshmmmhssssssso GPU: 00:02.0 Vendor 1234 Device 1111
+sssshhhyNMMNyssssssssssssyNMMMysssssss+ Memory: 2630MiB / 5925MiB
.ssssssssdMMMNhsssssssssshNMMMdssssssss.
/sssssssshNMMMyhhyyyyhdNMMMNhssssssss/
+sssssssssdmydMMMMMMMMddddyssssssss+
/ssssssssssshdmNNNNmyNMMMMhssssss/
.ossssssssssssssssssdMMMNysssso.
-+sssssssssssssssssyyyssss+-
`:+ssssssssssssssssss+:`
.-/+oossssoo+/-.
WireGuard 不处理路由。wg-quick 将您的 AllowedIPs 转换为路由,因此如果您有“AllowedIPs = 0.0.0.0/0”,wg-quick 将从中添加 0.0.0.0/0 路由。
在您的 wg-quick 配置中,指定
Table=
让其将路由安装到不同的路由表(而不是主路由表)中。例如:启动 VPN 后,运行
ip [-4] [-6] route ls table 40
以验证路由确实放置在该表中。最后
ip -4 rule add from 10.66.127.142/32 lookup 40
让操作系统为来自 wg0 的 IPv4 地址的任何数据包选择该表,并ip -6 rule
对其 IPv6 地址重复相同的操作(您可以指定from fc00::/8
它是否不会与其他接口冲突,但最好匹配整个 /128)。配置 wg-quick
PostUp=
以自动添加这些策略路由规则。