我使用NetworkManager
连接到VPN服务器。我的VPN有多个服务器,所以我配置了十几个配置文件。 NetworkManager
允许您同时连接到多个VPN;如果我这样做,路由表最终可能会有多个默认路由。
示例(部分表格):
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 10.8.8.1 0.0.0.0 UG 50 0 0 tun0
0.0.0.0 10.7.7.1 0.0.0.0 UG 51 0 0 tun1
0.0.0.0 10.8.8.1 0.0.0.0 UG 52 0 0 tun2
0.0.0.0 10.7.7.1 0.0.0.0 UG 53 0 0 tun3
0.0.0.0 10.8.8.1 0.0.0.0 UG 54 0 0 tun4
0.0.0.0 192.168.50.1 0.0.0.0 UG 100 0 0 enp0s31f6
答案 0 :(得分:1)
您的额外网关具有不同的指标(可能有不同的表格,发布ip rule show
和ip route list table TTT
,其中TTT是ip rule show
提到的所有表格。度量标准记录在man 8 route http://man7.org/linux/man-pages/man8/route.8.html
metric M
set the metric field in the routing table (used by routing
daemons) to M. If this option is not specified the metric for
inet6 (IPv6) address family defaults to '1', for inet (IPv4)
it defaults to '0'. You should always specify an explicit
metric value to not rely on those defaults - they also differ
from iproute2.
Metric The 'distance' to the target (usually counted in hops).
规则为https://serverfault.com/questions/648276/routing-selection-specificity-vs-metric:
单个路由表...在这种情况下,内核选择:
- 最具体的路线;
- 如果有多个同样具体的路由,那么具有最小内核度量的路由。
因此,当没有多个路由表时, linux将只使用一个可达最低度量的网关(它可能不会使用离线网络接口的网关)。
有没有办法配置它以便它选择更快的网关?
不,当不使用网关时,您无法检查它的速度。此外,你不能让个人电脑own AS合法拥有几个可以将你的单个IP连接到互联网的网关。 (因此,选择不同的网关将破坏所有TCP和UDP连接,因为您将在Internet中使用不同的IP地址。)