ฉันจะรู้ได้อย่างไรว่าคอมพิวเตอร์ของฉันใช้อินเตอร์เฟซเครือข่ายใด


24

ใน MBP (OS X 10.6.2) ฉันได้รับการตั้งค่าอีเทอร์เน็ตแบบใช้สายและไร้สายที่สนามบินเพื่อใช้ IP แบบคงที่เดียวกันกับเราเตอร์ของฉัน (เช่นอธิบายไว้ที่http://forums.macrumors.com/archive/index .php / t-708685.html ) ฉันยังได้รับการตั้งค่าใบสั่งบริการเพื่อให้การเชื่อมต่อแบบมีสายอยู่เหนือสนามบิน (เช่นตามที่อธิบายไว้ที่Mac OS X ปิดสนามบินโดยอัตโนมัติหากเสียบสายอีเธอร์เน็ต )

สิ่งนี้ดูเหมือนจะ "ทำงาน": การเชื่อมต่อ ssh แบบเปิดไปยังตำแหน่งระยะไกลยังคงอยู่ในขณะที่ฉันเสียบและถอดสายเคเบิลอีเธอร์เน็ต อย่างไรก็ตามเนื่องจากการ์ดสนามบินยังคงใช้งานได้อยู่ (และเชื่อมต่อกับเราเตอร์) โดยไม่คำนึงว่ามีการเชื่อมต่อแบบใช้สายอยู่ฉันจะบอกได้อย่างไรว่าอินเทอร์เฟซแบบใช้สายนั้นเป็นการเชื่อมต่อแบบ "ใช้งาน" จริงหรือไม่ เนื่องจากที่อยู่ IP เหมือนกันสำหรับทั้งคู่นี่เป็นการรับประกันได้หรือไม่ว่าไม่สามารถใช้ส่วนต่อประสานไร้สายได้ มีวิธีอื่นอีกไหมที่จะบอกได้ว่าอินเทอร์เฟซนี้ใช้งานอยู่หรือไม่?

PS ฉันจะโพสต์คำตอบ (บางส่วน) ทันทีที่ฉันโพสต์นี้เนื่องจากการเขียนและการตรวจสอบข้อเท็จจริงทั้งหมดของฉันทำให้ฉันมีข้อมูลเชิงลึก (ส่วนที่น่าสนใจและไม่มีคำตอบอยู่ในตัวหนาด้านบน)

คำตอบ:


26

การอ้างอิงที่ชัดเจนสำหรับคำถามเช่น 'อินเทอร์เฟซใดที่จะใช้ในการเข้าถึงโฮสต์ wxyz' สำหรับเวลาหรือสถานการณ์ที่กำหนดคือการอ้างถึงตารางเส้นทาง

[mini-nevie:~] nevinwilliams% route get 10.10.10.10
   route to: 10.10.10.10
destination: default
       mask: default
    gateway: 192.168.2.1
  interface: en0
      flags: <UP,GATEWAY,DONE,STATIC,PRCLONING>
 recvpipe  sendpipe  ssthresh  rtt,msec    rttvar  hopcount      mtu     expire
       0         0         0         0         0         0      1500         0 

ฉันเปิดใช้งานทั้ง en0 และ en1 และ en0 เป็นลำดับแรกในใบสั่งงานบริการ ถอดปลั๊กอีเธอร์เน็ตของฉันโดยไม่ทำการเปลี่ยนแปลงใด ๆ คำสั่งเดิมจะให้:

mini-nevie:~] nevinwilliams% route get 10.10.10.10
   route to: 10.10.10.10
destination: default
       mask: default
    gateway: 192.168.2.1
  interface: en1
      flags: <UP,GATEWAY,DONE,STATIC,PRCLONING>
 recvpipe  sendpipe  ssthresh  rtt,msec    rttvar  hopcount      mtu     expire
       0         0         0         0         0         0      1500         0 

12

ฉันใช้สิ่งนี้:

if=$(route -n get 0.0.0.0 2>/dev/null | awk '/interface: / {print $2}')

if [ -n "$if" ]; then
    echo "Default route is through interface $if"
else
    echo "No default route found"
fi

2
iface(){ route get 0.0.0.0 2>/dev/null | awk '/interface: / {print $2}'; }
mralexgray

8

นี่คือดัมพ์ของifconfig -aในแต่ละสถานการณ์ (ฉันจะเน้นความแตกต่างหลังจากนั้น):

เสียบสาย Ethernet แล้ว:

lo0: ค่าสถานะ = 8049 mtu 16384
        inet6 :: 1 คำนำหน้า 128
        inet6 xxxx :: 1% lo0 คำนำหน้า 64 ขอบเขตid 0x1
        inet 127.0.0.1 netmask 0xff000000
gif0: ค่าสถานะ = 8010 mtu 1280
stf0: ค่าสถานะ = 0 mtu 1280
en0: ค่าสถานะ = 8863 mtu 1500
        inet6 xxxx% en0 คำนำหน้า 64 ขอบเขตid 0x4
        inet 192.168.0.110 netmask 0xffffff00 Broadcast 192.168.0.255
        อีเธอร์ xx: xx: xx: xx: xx: xx
        สื่อ: สถานะการเลือกอัตโนมัติ (100baseTX): เปิดใช้งาน
        สื่อที่รองรับ: ไม่มีการเลือกอัตโนมัติ 10baseT / UTP 10baseT / UTP 10baseT / UTP 10baseT / UTP 100baseTX 100baseTX 100baseTX 100baseTX 100baseTX 1000baseT 1000baseT 1000baseT 
fw0: ค่าสถานะ = 8863 mtu 4078
        lladdr xx: xx: xx: xx: xx: xx
        สื่อ: สถานะการเลือกอัตโนมัติ: ไม่ใช้งาน
        สื่อที่รองรับ: เลือกอัตโนมัติ 
en1: ค่าสถานะ = 8863 mtu 1500
        คำนำหน้า inet6 xxxx% en1 64 ขอบเขตid 0x6
        inet 192.168.0.110 netmask 0xffffff00 Broadcast 192.168.0.255
        อีเธอร์ xx: xx: xx: xx: xx: xx
        สื่อ: สถานะการเลือกอัตโนมัติ: เปิดใช้งาน
        สื่อที่รองรับ: เลือกอัตโนมัติ

สายเคเบิลอีเธอร์เน็ตไม่ได้เสียบปลั๊ก:

lo0: ค่าสถานะ = 8049 mtu 16384
        inet6 :: 1 คำนำหน้า 128
        inet6 xxxx :: 1% lo0 คำนำหน้า 64 ขอบเขตid 0x1
        inet 127.0.0.1 netmask 0xff000000
gif0: ค่าสถานะ = 8010 mtu 1280
stf0: ค่าสถานะ = 0 mtu 1280
en0: ค่าสถานะ = 8863 mtu 1500
        อีเธอร์ xx: xx: xx: xx: xx: xx
        สื่อ: สถานะการเลือกอัตโนมัติ: ไม่ใช้งาน
        สื่อที่รองรับ: ไม่มีการเลือกอัตโนมัติ 10baseT / UTP 10baseT / UTP 10baseT / UTP 10baseT / UTP 100baseTX 100baseTX 100baseTX 100baseTX 100baseTX 1000baseT 1000baseT 1000baseT 
fw0: ค่าสถานะ = 8863 mtu 4078
        lladdr xx: xx: xx: xx: xx: xx
        สื่อ: สถานะการเลือกอัตโนมัติ: ไม่ใช้งาน
        สื่อที่รองรับ: เลือกอัตโนมัติ 
en1: ค่าสถานะ = 8863 mtu 1500
        คำนำหน้า inet6 xxxx% en1 64 ขอบเขตid 0x6
        inet 192.168.0.110 netmask 0xffffff00 Broadcast 192.168.0.255
        อีเธอร์ xx: xx: xx: xx: xx: xx
        สื่อ: สถานะการเลือกอัตโนมัติ: เปิดใช้งาน
        สื่อที่รองรับ: เลือกอัตโนมัติ

diff plugged unplugged แสดงให้เห็นว่าการเชื่อมต่อแบบใช้สายใช้งานได้เมื่อพร้อมใช้งาน:

8,9d7
<   inet6 xxxx%en0 prefixlen 64 scopeid 0x4 
<   inet 192.168.0.110 netmask 0xffffff00 broadcast 192.168.0.255
11c9
<   media: autoselect (100baseTX <full-duplex,flow-control>) status: active
---
>   media: autoselect status: inactive

1
ภาคผนวก: ผ่านส่วนขยายของบุคคลที่สาม "MenuMeters" ( ragingmenace.com/software/menumeters ) เป็นไปได้ที่จะเห็นว่าอินเทอร์เฟซ "แอคทีฟ" และแบนด์วิธที่ใช้ในอินเทอร์เฟซทั้งหมดซึ่งทำให้ชัดเจนว่า อินเทอร์เฟซจะสลับอย่างถูกต้อง (ตามต้องการ) เมื่อเสียบและถอดการเชื่อมต่อแบบใช้สาย
อีเธอร์

6

สองสิ่ง Mac จะใช้การเชื่อมต่อเครือข่ายตามลำดับที่ระบุไว้ในโปรไฟล์ "การเชื่อมต่อเครือข่าย" ของคุณ ตัวอย่างเช่นหากอีเธอร์เน็ตอยู่ด้านบนของไร้สายอีเธอร์เน็ตจะเข้าควบคุม

ฉันไม่แน่ใจว่า SSH ทำงานได้อย่างไร แต่จากประสบการณ์ของฉัน หากการเชื่อมต่อหนึ่งล้มเหลวหรือยกเลิกการเชื่อมต่อ SSH จะใช้การเชื่อมต่ออื่น

หากคุณต้องการดูว่าการเชื่อมต่อใช้งานได้จริงหรือไม่คุณควรใช้ยูทิลิตีมอนิเตอร์แบนด์วิดท์ หนึ่งที่ยอดเยี่ยมคือ iStat ( http://www.islayer.com/apps/istatmenus/ )


1
ฉันเผลออ่านเร็วเกินไปใช่ ... สิ่งที่ฉันพูดก็คือการสั่งบริการ คุณควรตรวจสอบแบนด์วิดท์เพื่อดูว่าเกิดอะไรขึ้นระหว่างการเชื่อมต่อทั้งหมดของคุณ
Steven Lu

ssh เป็นสิ่งที่ฉันใช้ในการทดสอบเครือข่าย แต่จริงๆแล้วเซสชัน TCP (ถาวร) ใด ๆ ที่จะทำ
Ether

0

ฉันใช้คำแนะนำเพื่อทำให้ที่อยู่ IP เหมือนกันสำหรับอีเธอร์เน็ตและ WiFi ตั้งค่าใบสั่งบริการตามที่แนะนำและใช้เน็ตเวิร์กยูทิลิตี้> ข้อมูลบน en0 และ en1

ฉันเริ่มการสำรองข้อมูล TimeMachine และภายใต้ Network Utility> Info> en0 Ethernet ฉันเห็นว่าแพ็กเก็ตนับพันกำลังเคลื่อนที่ผ่านการเชื่อมต่ออีเธอร์เน็ตในขณะที่ Network Utility> Info> en1 WiFi ไม่มีอะไรเคลื่อนไหว

ขอบคุณที่ทำให้ฉันชี้ไปในทิศทางที่ถูกต้อง เมื่อการสำรองข้อมูล TimeMachine เสร็จสมบูรณ์ฉันจะย้อนกลับไปยังที่อยู่ IP ที่แยกต่างหากและดูว่า Mac ยังคงย้ายทุกอย่างผ่านอีเธอร์เน็ตโดยอัตโนมัติหรือไม่

คำถามเดิมคือ "ฉันจะทราบได้อย่างไรว่าคอมพิวเตอร์ของฉันใช้งานอินเตอร์เฟซเครือข่ายอยู่" ยูทิลิตี้เครือข่ายใช้งานได้สำหรับฉัน

Macbook Pro 17 "กลางปี ​​2010, Mountain Lion

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