我启动了一个 Docker 容器,其中运行着 VPN 客户端。为了在容器内使用VPN,我在主机路由表中添加了一条路由:
$ sudo ip route add 123.123.123.123 via 172.17.0.2 mtu 1400 table 3
172.17.0.2
是容器的地址。添加路由后,我使用 VPN 时没有遇到任何问题。
但是,我在以下输出中看不到路线ip route
:
❯ ip route
default via 192.168.1.1 dev enp3s0 proto dhcp metric 100
172.17.0.0/16 dev docker0 proto kernel scope link src 172.17.0.1
192.168.1.0/24 dev enp3s0 proto kernel scope link src 192.168.1.42 metric 100
192.168.12.0/24 dev wlp0s20f0u1 proto kernel scope link src 192.168.12.1
再次添加相同的路由会产生错误,这意味着该路由确实已添加到路由表中:
❯ sudo ip route add 123.123.123.123 via 172.17.0.2 mtu 1400 table 3
RTNETLINK answers: File exists
问题是:
ip route
当实际添加到路由表中时,为什么我在输出中看不到添加的路由?- 如何查看添加的路线?
答案1
因为您显式地将路由添加到了不同的路由表中,并且ip route show
默认情况下仅显示默认表。
我已经有好几年没有搞乱路由表了,但我认为显示您添加路由的表就像 一样简单ip route show table 3
。