如何在 Linux 上查看用于路由到特定目标主机的网络接口和源 IP 地址?

san*_*doz 18 networking linux linux-networking

如果我在 Linux 机器(这里:Debian Lenny)上有多个网络接口(这里:2)。我如何查看到特定目标主机的路由通过哪个网络接口 (NIC) 进行以及默认使用哪个源 IP 地址?

我虽然使用

ping -I nic1 desthost.example.com
ping -I nic2 desthost.example.com
Run Code Online (Sandbox Code Playgroud)

也看看这两种方式是否可行。(这里:两种方式都可以)

我查了路由表

ip route show
Run Code Online (Sandbox Code Playgroud)

但它相当复杂,所以我想,必须有一个简单的小工具,告诉我:

“到目标主机 desthost.example.com 它需要接口 nicX 和源 IP 地址 10.0.0.1”

获取这些信息的最简单方法是什么?

(而且我宁愿不使用 tcpdump 并将接口设置为混杂模式。)

谢谢。

wee*_*avy 40

使用ip route get <ip>.

  • 或者`ip -o route get $ipaddress | awk '{ 打印 $5 }'` (2认同)