मैं कैसे बता सकता हूं कि मेरा कंप्यूटर किस नेटवर्क इंटरफेस का उपयोग कर रहा है?


24

एक MBP (OS X 10.6.2) पर मैंने वायर्ड ईथरनेट और वायरलेस एयरपोर्ट कॉन्फ़िगरेशन को अपने राउटर के समान स्थिर IP का उपयोग करने के लिए स्थापित किया है (उदाहरण के लिए http://forums.macrumors.com/archive/index पर वर्णित है) .php / t-708685.html )। मुझे सेवा आदेश भी मिल गया है, ताकि वायर्ड कनेक्शन एयरपोर्ट के ऊपर हो (जैसे कि मैक ओएस एक्स में वर्णित स्वचालित रूप से एयरपोर्ट बंद हो जाता है अगर ईथरनेट केबल प्लग इन है )।

यह "काम" करने के लिए लगता है: एक दूरस्थ स्थान पर एक खुला ssh कनेक्शन ऊपर रहता है जैसा कि मैं प्लग करता हूं और ईथरनेट केबल को अनप्लग करता हूं। हालांकि, चूंकि हवाई जहाज का कार्ड लाइव (और राउटर से जुड़ा हुआ) है, चाहे वायर कनेक्शन मौजूद है या नहीं, मैं कैसे बता सकता हूं कि वायर्ड इंटरफ़ेस वास्तव में "सक्रिय" कनेक्शन है जब यह उपलब्ध है? चूंकि आईपी पता दोनों के लिए समान है, क्या यह गारंटी है कि वायरलेस इंटरफ़ेस का उपयोग नहीं किया जा सकता है? क्या यह बताने का कोई अन्य तरीका है कि क्या यह इंटरफ़ेस उपयोग में है?

पुनश्च। मैं इसे पोस्ट करते ही (आंशिक) उत्तर पोस्ट करने जा रहा हूं, क्योंकि इसे लिखने और मेरे सभी तथ्यों की जांच करने का कार्य मुझे कुछ अंतर्दृष्टि तक ले जाता है। (अधिक दिलचस्प और अनुत्तरित हिस्सा ऊपर बोल्ड है।)

जवाबों:


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प्रत्येक स्थिति में एक डंप है (मैं बाद में मतभेदों को उजागर करूंगा):

ईथरनेट केबल को प्लग इन किया गया है:

lo0: झंडे = 8049 mtu 16384
        inet6 :: 1 प्रीफ़िक्सल 128
        inet6 xxxx :: 1% lo0 प्रीफ़िक्सलीन 64 स्कोपिड 0x1
        inet 127.0.0.1 नेटमास्क 0xff000000
gif0: झंडे = 8010 mtu 1280
stf0: झंडे = 0 mtu 1280
en0: झंडे = 8863 mtu 1500
        inet6 xxxx% en0 प्रीफ़िक्सलीन 64 स्कोपिड 0x4
        inet 192.168.0.110 netmask 0xffffff00 प्रसारण 192.168.0.255
        ईथर xx: xx: xx: xx: xx: xx
        मीडिया: ऑटोसेक्ट (100baseTX) स्थिति: सक्रिय
        समर्थित मीडिया: कोई भी ऑटोज़ नहीं 10baseT / UTP 10baseT / UTP 10baseT / UTP 10baseT / UTP 100baseTX 100baseTX 100baseTX 100baseTX 1000baseT 1000baseT 1000baseT 1000baseT 
fw0: झंडे = 8863 mtu 4078
        lladdr xx: xx: xx: xx: xx: xx
        मीडिया: स्वतः स्थिति: निष्क्रिय
        समर्थित मीडिया: स्वरोजगार 
en1: झंडे = 8863 mtu 1500
        inet6 xxxx% en1 प्रीफ़िक्सलीन 64 स्कोपिड 0x6
        inet 192.168.0.110 netmask 0xffffff00 प्रसारण 192.168.0.255
        ईथर xx: xx: xx: xx: xx: xx
        मीडिया: स्वतः स्थिति: सक्रिय
        समर्थित मीडिया: स्वरोजगार

ईथरनेट केबल अनप्लग है:

lo0: झंडे = 8049 mtu 16384
        inet6 :: 1 प्रीफ़िक्सल 128
        inet6 xxxx :: 1% lo0 प्रीफ़िक्सलीन 64 स्कोपिड 0x1
        inet 127.0.0.1 नेटमास्क 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 1000baseT 1000baseT 1000baseT 1000baseT 
fw0: झंडे = 8863 mtu 4078
        lladdr xx: xx: xx: xx: xx: xx
        मीडिया: स्वतः स्थिति: निष्क्रिय
        समर्थित मीडिया: स्वरोजगार 
en1: झंडे = 8863 mtu 1500
        inet6 xxxx% en1 प्रीफ़िक्सलीन 64 स्कोपिड 0x6
        inet 192.168.0.110 netmask 0xffffff00 प्रसारण 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

कुछ चीजें। मैक हमेशा नेटवर्क कनेक्शन का उपयोग करेगा जो आपके "नेटवर्क कनेक्शन" प्रोफ़ाइल में सूचीबद्ध है। उदाहरण के लिए, यदि ईथरनेट वायरलैस के ऊपर है, तो ईथरनेट लेगा।

मुझे यकीन नहीं है कि एसएसएच इतना काम कैसे करता है, लेकिन मेरे अनुभव से। यदि एक कनेक्शन विफल या डिस्कनेक्ट हो जाता है, तो SSH दूसरे कनेक्शन का उपयोग करेगा।

यदि आप वास्तव में यह देखना चाहते हैं कि क्या कनेक्शन सक्रिय हैं, तो आपको बैंडविड्थ मॉनिटर उपयोगिता का उपयोग करना चाहिए। एक महान एक iStat ( http://www.islayer.com/apps/istatmenus/ ) है।


1
मैंने गलती से बहुत तेजी से पढ़ा, हाँ ... मैंने जो कहा वह सेवा आदेश था। आपको अपने सभी कनेक्शनों के बीच क्या चल रहा है, यह देखने के लिए आपको वास्तव में बैंडविड्थ मॉनिटर पर एक नज़र डालनी चाहिए।
स्टीवन लू

ssh वह था जो मैं नेटवर्क का परीक्षण करने के लिए उपयोग कर रहा था, लेकिन वास्तव में कोई भी TCP (लगातार) सत्र करेगा।
ईथर

0

मैंने ईथरनेट और वाईफाई के लिए समान बनाने के लिए सलाह का उपयोग किया, जैसा कि सुझाव दिया गया है, सेवा आदेश सेट करें और बस नेटवर्क उपयोगिता> जानकारी का उपयोग करें en0 और en1 पर।

मैंने एक TimeMachine बैकअप शुरू किया और नेटवर्क उपयोगिता के तहत> जानकारी> en0 ईथरनेट मैं देख सकता था कि हजारों पैकेट ईथरनेट कनेक्शन के माध्यम से आगे बढ़ रहे थे, जबकि नेटवर्क उपयोगिता> जानकारी> en1 वाईफाई कुछ भी नहीं चल रहा था।

मुझे सही दिशा में इशारा करने के लिए धन्यवाद। जब TimeMachine बैकअप पूरा हो जाता है, तो मैं वापस आईपी पते को अलग कर दूंगा और देखूंगा कि क्या मैक स्वचालित रूप से अभी भी ईथरनेट के माध्यम से सब कुछ स्थानांतरित करता है।

मूल प्रश्न था "मैं यह कैसे बता सकता हूं कि मेरा कंप्यूटर किस नेटवर्क इंटरफेस का उपयोग कर रहा है?" नेटवर्क उपयोगिता ने मेरे लिए काम किया।

मैकबुक प्रो 17 "मिड 2010, माउंटेन लायन

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.