Comment voir sous Linux quelle interface réseau et quelle adresse IP source est utilisée pour un itinéraire vers un hôte de destination spécifique?

16

Si j'ai plusieurs interfaces réseau (ici: 2) sur une machine Linux (ici: Debian Lenny). Comment puis-je voir sur quelle interface réseau (NIC) une route vers un hôte de destination spécifique va et quelle adresse IP source est utilisée par défaut?

Je dois bien d'utiliser

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

voir aussi si les deux voies sont possibles. (Ici: les deux voies sont possibles)

J'ai regardé la table de routage

ip route show

Mais c'est assez complexe, alors j'ai pensé, il faut par un petit outil simple, juste me dire:

"Pour l'hôte de destination desthost.example.com, il faut l'interface nicX et l'adresse IP source 10.0.0.1"

Quelle est la manière la plus simple d'obtenir ces informations?

(Et je préfère ne pas utiliser tcpdump et définir les interfaces en mode promiscous.)

Merci.

sandoz
la source

Réponses:

39

Utilisez ip route get <ip>.

weeheavy
la source
1
Et pour ip -o route get $ipaddress | perl -nle 'if(/dev\s+(\S+)/) {print $1}'
n'obtenir
2
ouip -o route get $ipaddress | awk '{ print $5 }'
ShadowFlame
0

qu'en est-il de route -C

Jure1873
la source
route est obsolète. utilisez iproute2.
madCode
0

J'utilise netstat -Wcatnp. Vous devriez essayer cette commande.

fmysky
la source
0

Encore plus facile, je dirais nm-toolet si vous ne voulez que la ligne pertinente nm-tool | grep Device. Cela devrait produire:

- Device: wlan0  [My router name] -----------------------------------------------
Buzut
la source