Come posso sapere quale interfaccia di rete sta usando il mio computer?


24

Su un MBP (OS X 10.6.2) ho le configurazioni Ethernet cablate e wireless dell'aeroporto impostate per utilizzare lo stesso IP statico sul mio router (ad es. Come descritto su http://forums.macrumors.com/archive/index .php / t-708685.html ). Ho anche impostato l'ordine di servizio in modo tale che la connessione cablata sia sopra l'aeroporto (ad esempio, come descritto su Mac OS X, disattiva automaticamente l'aeroporto se è collegato il cavo Ethernet ).

Questo sembra "funzionare": una connessione ssh aperta a una posizione remota rimane attiva mentre collego e scollego il cavo Ethernet. Tuttavia, poiché la scheda Airport rimane attiva (e connessa al router) indipendentemente dalla presenza della connessione cablata, come posso sapere se l'interfaccia cablata è in realtà la connessione "attiva" quando è disponibile? Poiché l'indirizzo IP è lo stesso per entrambi, è una garanzia che l'interfaccia wireless non può essere utilizzata? C'è un altro modo per sapere se questa interfaccia è in uso?

PS. Pubblicherò una risposta (parziale) non appena pubblicherò questo, poiché l'atto di scriverlo e controllare tutti i miei fatti mi porta ad alcune intuizioni. (La parte più interessante e senza risposta è in grassetto sopra.)

Risposte:


26

Il riferimento definitivo per domande come "Quale interfaccia verrà utilizzata per raggiungere l'host wxyz?" per ogni dato momento o situazione è fare riferimento alla tabella di routing.

[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 

Ho abilitato sia en0 che en1 ed en0 è il primo in Ordine di servizio. Scollegando la mia Ethernet, senza apportare altre modifiche, lo stesso comando dà:

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

Io lo uso questo:

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

Ecco un dump ifconfig -ain ogni situazione (evidenzierò le differenze in seguito):

Il cavo Ethernet è inserito:

lo0: flags = 8049 mtu 16384
        inet6 :: 1 prefissolen 128
        inet6 xxxx :: 1% lo0 prefixlen 64 scopeid 0x1
        inet 127.0.0.1 netmask 0xff000000
gif0: flags = 8010 mtu 1280
stf0: flags = 0 mtu 1280
en0: flags = 8863 mtu 1500
        inet6 xxxx% en0 prefixlen 64 scopeid 0x4
        inet 192.168.0.110 netmask 0xffffff00 broadcast 192.168.0.255
        etere xx: xx: xx: xx: xx: xx
        media: autoselect (100baseTX) stato: attivo
        supporti supportati: nessuno seleziona automaticamente 10baseT / UTP 10baseT / UTP 10baseT / UTP 10baseT / UTP 100baseTX 100baseTX 100baseTX 100baseTX 1000baseT 1000baseT 1000baseT 
fw0: flags = 8863 mtu 4078
        lladdr xx: xx: xx: xx: xx: xx
        media: stato di selezione automatica: inattivo
        media supportati: selezione automatica 
en1: flags = 8863 mtu 1500
        inet6 xxxx% en1 prefisso 64 scopeid 0x6
        inet 192.168.0.110 netmask 0xffffff00 broadcast 192.168.0.255
        etere xx: xx: xx: xx: xx: xx
        media: stato di selezione automatica: attivo
        media supportati: selezione automatica

Il cavo Ethernet è scollegato:

lo0: flags = 8049 mtu 16384
        inet6 :: 1 prefissolen 128
        inet6 xxxx :: 1% lo0 prefixlen 64 scopeid 0x1
        inet 127.0.0.1 netmask 0xff000000
gif0: flags = 8010 mtu 1280
stf0: flags = 0 mtu 1280
en0: flags = 8863 mtu 1500
        etere xx: xx: xx: xx: xx: xx
        media: stato di selezione automatica: inattivo
        supporti supportati: nessuno seleziona automaticamente 10baseT / UTP 10baseT / UTP 10baseT / UTP 10baseT / UTP 100baseTX 100baseTX 100baseTX 100baseTX 1000baseT 1000baseT 1000baseT 
fw0: flags = 8863 mtu 4078
        lladdr xx: xx: xx: xx: xx: xx
        media: stato di selezione automatica: inattivo
        media supportati: selezione automatica 
en1: flags = 8863 mtu 1500
        inet6 xxxx% en1 prefisso 64 scopeid 0x6
        inet 192.168.0.110 netmask 0xffffff00 broadcast 192.168.0.255
        etere xx: xx: xx: xx: xx: xx
        media: stato di selezione automatica: attivo
        media supportati: selezione automatica

diff plugged unplugged mostra che la connessione cablata diventa attiva quando è disponibile:

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
Addendum: tramite l'estensione "MenuMeters" di terze parti ( ragingmenace.com/software/menumeters ), è possibile vedere quale sia l'interfaccia "attiva" e anche la larghezza di banda utilizzata su tutte le interfacce, il che rende evidente che l'attivo l'interfaccia infatti commuta correttamente (come desiderato) quando la connessione cablata viene inserita e rimossa.
Ether

6

Un paio di cose. Il Mac utilizzerà sempre le connessioni di rete nell'ordine indicato nel profilo "Connessioni di rete". Ad esempio, se Ethernet è al di sopra di Wireless, Ethernet prenderà il controllo.

Non sono sicuro di come SSH funzioni così tanto, ma dalla mia esperienza. Se una connessione fallisce o si disconnette, SSH utilizzerà quindi l'altra connessione.

Se vuoi davvero vedere se le connessioni sono attive, dovresti usare un'utilità di monitoraggio della larghezza di banda. Un grande è iStat ( http://www.islayer.com/apps/istatmenus/ ).


1
Ho letto per caso troppo velocemente, sì ... quello che ho detto è stato un ordine di servizio. Dovresti davvero dare un'occhiata al monitor della larghezza di banda per vedere cosa sta succedendo tra tutte le tue connessioni.
Steven Lu

ssh era quello che stavo usando per testare la rete, ma davvero qualsiasi sessione TCP (persistente) avrebbe fatto.
Ether

0

Ho usato il consiglio per rendere gli indirizzi IP uguali per Ethernet e WiFi, impostare l'ordine di servizio come suggerito e ho appena usato Utilità di rete> Informazioni su en0 e en1.

Ho avviato un backup di TimeMachine e in Utilità di rete> Informazioni> en0 Ethernet ho potuto vedere che migliaia di pacchetti si stavano muovendo attraverso la connessione ethernet, mentre Utilità di rete> Informazioni> en1 WiFi non si muoveva.

Grazie per avermi indicato nella giusta direzione. Quando il backup di TimeMachine è completo, tornerò indietro a indirizzi IP separati e vedrò se Mac sposta ancora tutto automaticamente tramite Ethernet.

La domanda originale era "Come posso sapere quale interfaccia di rete sta usando il mio computer?" L'utilità di rete ha funzionato per me.

Macbook Pro 17 "Mid-2010, Mountain Lion

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.