¿Cómo ver en Linux qué interfaz de red y dirección IP de origen se utiliza para una ruta a un host de destino específico?

16

Si tengo varias interfaces de red (aquí: 2) en una máquina Linux (aquí: Debian Lenny). ¿Cómo veo a través de qué interfaz de red (NIC) se dirige una ruta a un host de destino específico y qué dirección IP de origen se usa de manera predeterminada?

He pensado en usar

ping -I nic1 desthost.example.com
ping -I nic2 desthost.example.com

También vea si ambas formas son posibles. (Aquí: Ambas formas son posibles)

Miré la tabla de enrutamiento

ip route show

Pero es bastante complejo, así que pensé, debe haber una pequeña herramienta simple, solo para decirme:

"Para el host de destino desthost.example.com se necesita la interfaz nicX y la dirección IP de origen 10.0.0.1"

¿Cuál es la forma más sencilla de obtener esta información?

(Y prefiero no usar tcpdump y configurar las interfaces en modo promisorio).

Gracias.

sandoz
fuente

Respuestas:

39

Uso ip route get <ip>.

weeheavy
fuente
1
Y para obtener solo la interfaz:ip -o route get $ipaddress | perl -nle 'if(/dev\s+(\S+)/) {print $1}'
mivk
2
oip -o route get $ipaddress | awk '{ print $5 }'
ShadowFlame
0

qué pasa route -C

Jure1873
fuente
la ruta está en desuso. use iproute2.
madCode
0

Yo uso netstat -Wcatnp. Deberías probar este comando.

fmysky
fuente
0

Incluso más fácil, diría yo, nm-tooly si solo quieres la línea relevante nm-tool | grep Device. Eso debería dar salida:

- Device: wlan0  [My router name] -----------------------------------------------
Buzut
fuente