Wie kann man unter Linux sehen, welche Netzwerkschnittstelle und Quell-IP-Adresse für eine Route zu einem bestimmten Zielhost verwendet wird?

16

Wenn ich mehrere Netzwerkschnittstellen (hier: 2) auf einem Linux-Rechner habe (hier: Debian Lenny). Wie sehe ich, über welche Netzwerkschnittstelle (NIC) eine Route zu einem bestimmten Zielhost verläuft und welche Quell-IP-Adresse standardmäßig verwendet wird?

Ich habe aber davon Gebrauch gemacht

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

zu sehen, ob beide möglich sind. (Hier: beide möglich)

Ich habe die Routing-Tabelle nachgeschlagen

ip route show

Aber es ist ziemlich komplex, also dachte ich, es muss mit einem kleinen einfachen Tool einfach gesagt werden:

"Zum Ziel-Host desthost.example.com werden die Schnittstelle nicX und die Quell-IP-Adresse 10.0.0.1 benötigt."

Was ist der einfachste Weg, um diese Informationen zu erhalten?

(Und ich würde lieber nicht tcpdump verwenden und die Schnittstellen in den Promiscous-Modus versetzen.)

Vielen Dank.

sandoz
quelle

Antworten:

39

Verwenden Sie ip route get <ip>.

weh
quelle
1
Und um nur das Interface zu bekommen:ip -o route get $ipaddress | perl -nle 'if(/dev\s+(\S+)/) {print $1}'
mivk
2
oderip -o route get $ipaddress | awk '{ print $5 }'
ShadowFlame
0

wie wäre es mit route -C

Jure1873
quelle
route ist veraltet. benutze iproute2.
MadCode
0

Ich benutze netstat -Wcatnp. Sie sollten diesen Befehl versuchen.

fmysky
quelle
0

Noch einfacher würde ich sagen nm-toolund wenn du nur die entsprechende Leitung willst nm-tool | grep Device. Das sollte ausgeben:

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