Làm thế nào để xem trên Linux giao diện mạng và địa chỉ IP nguồn nào được sử dụng cho một tuyến đến máy chủ đích cụ thể?


16

Nếu tôi có nhiều giao diện mạng (ở đây: 2) trên máy Linux (ở đây: Debian Lenny). Làm thế nào để tôi thấy, qua giao diện mạng (NIC) nào một tuyến đến máy chủ đích cụ thể đang đi và địa chỉ IP nguồn nào được sử dụng theo mặc định?

Tôi có mặc dù sử dụng

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

quá xem cả hai cách đều có thể (Ở đây: Cả hai cách đều có thể)

Tôi nhìn lên bảng định tuyến

ip route show

Nhưng nó khá phức tạp, vì vậy tôi nghĩ, phải có một công cụ đơn giản nhỏ, chỉ cần nói với tôi:

"Để lưu trữ máy chủ đích Desthost.example.com, nó cần giao diện nicX và địa chỉ IP nguồn 10.0.0.1"

Cách đơn giản nhất để có được thông tin này là gì?

(Và tôi không muốn sử dụng tcpdump và đặt các giao diện ở chế độ lăng nhăng.)

Cảm ơn.

Câu trả lời:


39

Sử dụng ip route get <ip>.


1
Và để chỉ nhận giao diện:ip -o route get $ipaddress | perl -nle 'if(/dev\s+(\S+)/) {print $1}'
mivk

2
hoặcip -o route get $ipaddress | awk '{ print $5 }'
ShadowFlame


0

Tôi sử dụng netstat -Wcatnp. Bạn nên thử lệnh này.


0

Thậm chí dễ dàng hơn, tôi sẽ nói nm-toolvà nếu bạn chỉ muốn dòng liên quan nm-tool | grep Device. Điều đó sẽ xuất ra:

- Device: wlan0  [My router name] -----------------------------------------------
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.