我的默认路线有以下输出:
Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 192.168.167.1 0.0.0.0 UG 100 0 0 enp1s0
192.168.167.0 0.0.0.0 255.255.255.0 U 100 0 0 enp1s0
这里选择的路由是 8.8.8.8。到这里,没什么特别的。
traceroute to 8.8.8.8 (8.8.8.8), 30 hops max, 60 byte packets
1 192.168.167.1 (192.168.167.1) 0.326 ms 0.465 ms 0.527 ms
2 192.168.1.254 (192.168.1.254) 1.409 ms 1.422 ms 1.429 ms
当我激活VPN时,路由变成:
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 10.8.0.13 128.0.0.0 UG 0 0 0 tun0
0.0.0.0 192.168.167.1 0.0.0.0 UG 100 0 0 enp1s0
10.8.0.1 10.8.0.13 255.255.255.255 UGH 0 0 0 tun0
10.8.0.13 0.0.0.0 255.255.255.255 UH 0 0 0 tun0
128.0.0.0 10.8.0.13 128.0.0.0 UG 0 0 0 tun0
169.254.0.0 0.0.0.0 255.255.0.0 U 1000 0 0 tun0
192.168.167.0 0.0.0.0 255.255.255.0 U 100 0 0 enp1s0
213.246.56.21 192.168.167.1 255.255.255.255 UGH 0 0 0 enp1s0
无论我为 tun0 metric 设置什么值:
sudo ifmetric tun0 3000
路线-n输出:
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 10.8.0.13 128.0.0.0 UG 3000 0 0 tun0
0.0.0.0 192.168.167.1 0.0.0.0 UG 100 0 0 enp1s0
10.8.0.1 10.8.0.13 255.255.255.255 UGH 3000 0 0 tun0
10.8.0.13 0.0.0.0 255.255.255.255 UH 3000 0 0 tun0
128.0.0.0 10.8.0.13 128.0.0.0 UG 3000 0 0 tun0
169.254.0.0 0.0.0.0 255.255.0.0 U 3000 0 0 tun0
192.168.167.0 0.0.0.0 255.255.255.0 U 100 0 0 enp1s0
213.246.56.21 192.168.167.1 255.255.255.255 UGH 0 0 0 enp1s0
选定的路由始终通过接口 tun0 :
traceroute to 8.8.8.8 (8.8.8.8), 30 hops max, 60 byte packets
1 10.8.0.1 (10.8.0.1) 28.510 ms 33.924 ms 33.941 ms
2 ik056002.ikoula.com (213.246.56.2) 33.960 ms
...
为什么 ??
谢谢 !
答案1
路由从最具体到最不具体进行处理,如果有两个路由具有相同级别的具体性,则只检查度量。
您正在使用这种route -n
格式,在我看来有点糟糕,如果您做一个,它会看起来更好,更明显,ip route show
它的输出可能看起来像这样。
default via 192.168.167.1 dev enp1s0 metric 100
0.0.0.0/1 via 10.8.0.13 dev tun0 metric 3000
128.0.0.0/1 via 10.8.0.13 dev tun0 metric 3000
...
两条路由具有不同的特异性,因此度量无关紧要。 比路由/1
更具体(多 1 位)/0
。
查看route -n
输出时,必须记住必须考虑第一列和第三列。路由是网络地址和面具。