Come vedere su Linux quale interfaccia di rete e indirizzo IP di origine viene utilizzato per un percorso verso un host di destinazione specifico?


16

Se ho più interfacce di rete (qui: 2) su una macchina Linux (qui: Debian Lenny). Come posso vedere su quale interfaccia di rete (NIC) sta andando una rotta verso un host di destinazione specifico e quale indirizzo IP di origine viene utilizzato per impostazione predefinita?

Ho pensato di usare

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

anche vedere se entrambi i modi sono possibili. (Qui: entrambi i modi sono possibili)

Ho cercato la tabella di routing

ip route show

Ma è abbastanza complesso, quindi ho pensato, ci deve essere un piccolo semplice strumento per dirmi:

"Per l'host di destinazione desthost.example.com sono necessari l'interfaccia nicX e l'indirizzo IP di origine 10.0.0.1"

Qual è il modo più semplice per ottenere queste informazioni?

(E preferirei non usare tcpdump e impostare le interfacce in modalità promiscous.)

Grazie.

Risposte:


39

Usa ip route get <ip>.


1
E per ottenere solo l'interfaccia:ip -o route get $ipaddress | perl -nle 'if(/dev\s+(\S+)/) {print $1}'
mivk,

2
oppureip -o route get $ipaddress | awk '{ print $5 }'
ShadowFlame il


0

Io uso netstat -Wcatnp. Dovresti provare questo comando.


0

Ancora più semplice, direi nm-toole se vuoi solo la linea pertinente nm-tool | grep Device. Questo dovrebbe produrre:

- Device: wlan0  [My router name] -----------------------------------------------
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.