我正在使用 VPN,它使用位掩码创建隧道。我想访问我的本地网络,因此使用以下命令添加了一条路由ip route add
:
ip route add 172.16.0.0/16 via 172.16.46.1
我使用在另一个 Stackexchange 答案中找到的网关获取了该网关ip route show | grep default
。但是,这不起作用。我也指定了设备,但也没有用。
这是输出ip route show
0.0.0.0/1 via 10.41.0.1 dev tun1
default via 172.16.46.1 dev enp3s0 proto dhcp metric 20100
10.41.0.0/21 dev tun1 proto kernel scope link src 10.41.0.89
10.41.0.0/21 dev tun0 proto kernel scope link src 10.41.0.37
37.218.241.7 via 172.16.46.1 dev enp3s0
128.0.0.0/1 via 10.41.0.1 dev tun1
169.254.0.0/16 dev enp3s0 scope link metric 1000
172.16.0.0/16 via 172.16.46.1 dev enp3s0
172.16.46.0/23 dev enp3s0 proto kernel scope link src 172.16.46.104 metric 100
198.252.153.28 via 172.16.46.1 dev enp3s0
212.83.143.67 via 172.16.46.1 dev enp3s0
我的路由似乎确实被添加到了路由表中。但是,我仍然无法访问本地网络中的网站,也无法 ping 通它们。route add 172.16.0.0 MASK 255.255.0.0 172.16.46.1
在 Windows 上执行类似操作 ( ) 效果很好。
输出的路由顺序是否ip route show
会影响最终选择的路由?默认路由 (0.0.0.0) 通过 tun1,这是 VPN 软件创建的接口。会首先选择该路由吗?我做错了什么?
谢谢。
答案1
如何通过两个步骤解决您的问题:
使用 检查到站点 IP 地址的实际路由
ip route get <dst-ip>
。运行
tcpdump -ni enp3s0 'ip host <site-ip>'
并检查流量。运行 ping 时,您应该会看到传出的 ICMP 回显请求。如果看到它们,您应该检查远程端 - 问题出在其他地方,而不是您的主机上。在 Windows 上运行 wireshark,然后比较结果。