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.

Antworten:


39

Verwenden Sie ip route get <ip>.


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

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


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] -----------------------------------------------
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.