Eu tenho eth0 e wlan0 de acordo com ifconfig e eu posso ping google.com
. Como posso descobrir (com um usuário normal, não root) qual interface está ativa , como em qual interface o ping (ou o que seja, o ping não é obrigatório) usa?
NOTA: usando o Ubuntu 11.04 ou Fedora 14
Respostas:
Você pode usar
route
para encontrar sua rota padrão:A
Iface
coluna na linha com destinodefault
informa qual interface é usada.fonte
route
não poderá ser usado. @Torgeir tem a resposta certa.192.168.1.0...
é a rota que será usada. É claro que, neste caso, refere-se ao mesmo Iface, mas isso é apenas porque você tem uma interface em sua máquina.Minha versão, que é basicamente baseada nisso e no seguinte :
E isso, experimentalmente , para o macOS:
fonte
route |awk '/^default/{print $NF}'
Nos sistemas GNU / Linux:
fonte
host
for um argumento de entrada para o script. Como a rota (e, portanto, a interface) pode ser diferente para diferentes ips.A corrida
ifconfig
fornecerá as informações necessárias.A interface ativa terá um
inet addr
e mostrará um registro dos dados transmitidos, assim:Você também pode usar o
ip addr
comando e quaisquer interfaces inativas será designado como tendo:NO-CARRIER
.fonte
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:
route
comando, mas isso não seria necessariamente infalível devido ao roteamento. A rota padrão não precisa ser a única a chegar à Internet, por mais frequente que seja.Um forro:
ip route get 8.8.8.8 | sed -n 's/.*dev \([^\ ]*\) table.*/\1/p'
fonte
Obtenha a interface de rede padrão normalmente usada para rotear para a Internet "restante", ao contrário de DMZ, rede privada, host de VM etc., que geralmente são roteados explicitamente.
fonte
ip -4 route ls |awk '/^default/{print $5}'
O comando
ip route ls
fornecerá uma lista de rotas ativas e suas fontes:fonte
Use o comando:
fonte
use o abaixo:
fonte
Se sua máquina possui várias interfaces (o que eu assumo), não há uma única interface que será usada para conectar-se à Internet.
Dependendo do destino ao qual você está se conectando, seu sistema consultará a tabela ip (a mostrada quando você
route
comanda) para encontrar a próxima esperança / roteador; quando encontrar um, usará a interface associada a ele.Dito isto, consulte a resposta do @ torgeir, pois faz exatamente isso:
fonte