Назад | Перейти на главную страницу

Как узнать в Linux, какой сетевой интерфейс и IP-адрес источника используются для маршрута к определенному хосту назначения?

Если у меня есть несколько сетевых интерфейсов (здесь: 2) на машине Linux (здесь: Debian Lenny). Как узнать, по какому сетевому интерфейсу (NIC) идет маршрут к конкретному узлу назначения и какой исходный IP-адрес используется по умолчанию?

Я думаю об использовании

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

тоже посмотрим, возможны ли оба пути. (Здесь: возможны оба способа)

Я посмотрел таблицу маршрутизации

ip route show

Но это довольно сложно, поэтому я подумал, что должен быть небольшой простой инструмент, чтобы просто сказать мне:

"Для целевого хоста desthost.example.com требуется интерфейс nicX и исходный IP-адрес 10.0.0.1"

Как проще всего получить эту информацию?

(И я бы предпочел не использовать tcpdump и устанавливать интерфейсы в неразборчивом режиме.)

Спасибо.

Использовать ip route get <ip>.

я использую netstat -Wcatnp . Вам следует попробовать эту команду.

что о route -C

Я бы сказал, даже проще nm-tool и если вам нужна только соответствующая строка nm-tool | grep Device. Это должно вывести:

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