วิธีดูบน Linux อินเตอร์เฟสเครือข่ายและที่อยู่ IP ต้นทางใดที่ใช้สำหรับเส้นทางไปยังโฮสต์ปลายทางที่ระบุ


16

ถ้าฉันมีอินเตอร์เฟสเครือข่ายหลายตัว (ที่นี่: 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 และตั้งค่าอินเทอร์เฟซในโหมด promiscous)

ขอบคุณ

คำตอบ:


39

ip route get <ip>ใช้


1
และเพื่อให้ได้อินเทอร์เฟซเท่านั้น:ip -o route get $ipaddress | perl -nle 'if(/dev\s+(\S+)/) {print $1}'
mivk

2
หรือip -o route get $ipaddress | awk '{ print $5 }'
ShadowFlame



0

ง่ายยิ่งขึ้นผมว่าและถ้าคุณต้องการเพียงบรรทัดที่เกี่ยวข้องnm-tool nm-tool | grep Deviceที่ควรส่งออก:

- Device: wlan0  [My router name] -----------------------------------------------
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.