Como posso saber qual interface de rede meu computador está usando?

22

Em um MBP (OS X 10.6.2) eu tenho as configurações de Ethernet com fio e sem fio configuradas para usar o mesmo IP estático em meu roteador (por exemplo, conforme descrito em link ). Eu também tenho a ordem de serviço configurada para que a conexão com fio esteja acima do aeroporto (por exemplo, conforme descrito em O Mac OS X desliga automaticamente o aeroporto se o cabo ethernet estiver conectado ).

Isto parece "funcionar": uma conexão ssh aberta para um local remoto permanece ativa enquanto eu conecto e desconecto o cabo ethernet. No entanto, como a placa do aeroporto permanece ativa (e conectada ao roteador), independentemente de a conexão com fio estar presente, como posso saber se a interface com fio é realmente a conexão "ativa" quando está disponível? Como o endereço IP é o mesmo para ambos, isso é garantia de que a interface sem fio não pode ser usada? Existe alguma outra maneira de saber se essa interface está em uso?

PS. Eu vou postar uma resposta (parcial) assim que eu postar isso, pois o ato de escrever isso e checar todos os meus fatos me leva a algumas percepções. (A parte mais interessante e não respondida está em negrito acima.)

    
por Ether 01.01.2010 / 01:50

5 respostas

7

Aqui está um dump de ifconfig -a em cada situação (vou destacar as diferenças depois):

O cabo Ethernet está conectado:

lo0: flags=8049 mtu 16384
        inet6 ::1 prefixlen 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
        ether xx:xx:xx:xx:xx:xx
        media: autoselect (100baseTX ) status: active
        supported media: none autoselect 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: autoselect  status: inactive
        supported media: autoselect 
en1: flags=8863 mtu 1500
        inet6 xxxx%en1 prefixlen 64 scopeid 0x6
        inet 192.168.0.110 netmask 0xffffff00 broadcast 192.168.0.255
        ether xx:xx:xx:xx:xx:xx
        media: autoselect status: active
        supported media: autoselect

O cabo Ethernet está desconectado:

lo0: flags=8049 mtu 16384
        inet6 ::1 prefixlen 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
        ether xx:xx:xx:xx:xx:xx
        media: autoselect status: inactive
        supported media: none autoselect 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: autoselect  status: inactive
        supported media: autoselect 
en1: flags=8863 mtu 1500
        inet6 xxxx%en1 prefixlen 64 scopeid 0x6
        inet 192.168.0.110 netmask 0xffffff00 broadcast 192.168.0.255
        ether xx:xx:xx:xx:xx:xx
        media: autoselect status: active
        supported media: autoselect

diff plugged unplugged mostra que a conexão com fio se torna ativa quando está disponível:

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
    
por 01.01.2010 / 01:56
24

A referência definitiva para perguntas como 'Qual interface será usada para alcançar o host w.x.y.z'? para qualquer momento ou situação é para se referir à tabela de roteamento.

[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 

Eu tenho en0 e en1 ativados e en0 é o primeiro em ordem de serviço. Desconectando minha ethernet, não fazendo outras alterações, o mesmo 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 
    
por 22.04.2013 / 22:57
11

Eu uso isso:

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
    
por 03.08.2013 / 20:49
6

Algumas coisas. O Mac sempre usará as conexões de rede listadas no seu perfil "Conexões de Rede". Por exemplo, se a Ethernet estiver na parte superior do Wireless, a Ethernet assumirá o controle.

Não tenho certeza de como o SSH funciona muito, mas da minha experiência. Se uma conexão falhar ou desconectar, o SSH usará a outra conexão.

Se você realmente quiser ver se as conexões estão ativas, você deve usar um utilitário de monitor de largura de banda. Um dos melhores é o iStat ( link ).

    
por 01.01.2010 / 06:56
0

Usei o conselho para tornar os endereços IP iguais para Ethernet e WiFi, defina a ordem de serviço conforme sugerido e usei apenas Network Utility > Info em en0 e en1.

Eu iniciei um backup do TimeMachine e, em Network Utility > Info > en0 Ethernet Eu pude ver que milhares de pacotes estavam se movendo através da conexão ethernet, enquanto Network Utility > Info > en1 WiFi nada estava se movendo.

Obrigado por me apontar na direção certa. Quando o backup do TimeMachine estiver completo, voltarei a separar os endereços IP e ver se o Mac ainda move automaticamente tudo pela Ethernet.

A pergunta original era "Como posso saber qual interface de rede meu computador está usando?" Utilitário de rede funcionou para mim.

Macbook Pro 17 "Meados de 2010, Leão da montanha

    
por 22.04.2013 / 19:30