Jak sprawdzić w systemie Linux, jakiego interfejsu sieciowego i źródłowego adresu IP używa się do trasy do określonego hosta docelowego?


16

Jeśli mam wiele interfejsów sieciowych (tutaj: 2) na komputerze z systemem Linux (tutaj: Debian Lenny). Jak mogę zobaczyć, przez jaki interfejs sieciowy (NIC) prowadzi trasa do określonego hosta docelowego i jaki źródłowy adres IP jest domyślnie używany?

Myślałem o użyciu

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

też sprawdź, czy oba sposoby są możliwe. (Tutaj: możliwe są oba sposoby)

Spojrzałem na tablicę routingu

ip route show

Ale to dość skomplikowane, więc pomyślałem, że przy pomocy małego prostego narzędzia wystarczy mi powiedzieć:

„Do docelowego hosta desthost.example.com potrzebny jest interfejs nicX i źródłowy adres IP 10.0.0.1”

Jaki jest najprostszy sposób na uzyskanie tych informacji?

(I wolałbym nie używać tcpdump i ustawiać interfejsy w trybie promis).

Dzięki.

Odpowiedzi:


39

Zastosowanie ip route get <ip>.


1
Aby uzyskać tylko interfejs:ip -o route get $ipaddress | perl -nle 'if(/dev\s+(\S+)/) {print $1}'
mivk

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


0

Używam netstat -Wcatnp. Powinieneś spróbować tego polecenia.


0

Jeszcze łatwiejsze, powiedziałbym nm-tooli jeśli chcesz tylko odpowiednią linię nm-tool | grep Device. To powinno dać:

- Device: wlan0  [My router name] -----------------------------------------------
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.