56 networking linux
这是在unix环境中。我在主机中有多个路由(使用“ip route show”命令可见)。如果我正在 ping 一个地址,我怎样才能找出哪个网关用于路由流量?
我尝试使用 traceroute 命令,但它没有显示直接网关。
从下面的输出中,10.58.227.1 是我的默认网关。
# ip r l
10.58.227.0/24 dev front_eth1 proto kernel scope link src 10.58.227.231
169.254.0.0/17 dev bond0 proto kernel scope link src 169.254.0.4
default via 10.58.227.1 dev front_eth1 proto gated
Run Code Online (Sandbox Code Playgroud)
当我对外部地址执行 traceroute 时,使用的网关(默认网关 10.58.227.1)未显示在输出中。
# traceroute -n -I 10.63.21.118
traceroute to 10.63.21.118 (10.63.21.118), 30 hops max, 40 byte packets
1 10.58.112.1 0.507 ms 1.008 ms 1.017 ms
2 10.63.21.118 0.228 ms 0.233 ms 0.234 ms
Run Code Online (Sandbox Code Playgroud)
是否有任何选项可以查看与 traceroute 命令给出的信息相同的信息,包括用于路由的网关?
sar*_*old 96
您可以使用该ip route get <address>命令要求内核报告它将用于将数据包发送到指定地址的路由:
$ ip route get 4.2.2.1
4.2.2.1 via 192.168.0.1 dev eth0 src 192.168.0.121
cache
$
Run Code Online (Sandbox Code Playgroud)
192.168.0.1是我的默认路线。如果我要求一个不会通过默认路由的地址:
$ ip route get 192.168.0.116
192.168.0.116 dev eth0 src 192.168.0.121
cache
$
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
101820 次 |
| 最近记录: |