Isso é em relação ao linux, mas se alguém souber de um método geral * nix, isso seria bom.
Inicializei um sistema ontem com um cabo Ethernet conectado. "NetworkManager" não está instalado; portanto, uma vez iniciado, fui procurar o nome da interface Ethernet ifconfig
para iniciar um cliente DHCP manualmente, mas não mostrou nada além de lo
.
A NIC foi listada via lspci
e o driver do kernel apropriado foi carregado. O sistema normalmente usa wifi, e eu conseguia lembrar o nome da interface wlan0
. Quando tentei ifconfig wlan0 up
, wlan0
apareceu. Mas os únicos nomes de interface Ethernet que eu conseguia lembrar eram eth[N]
e em[N]
- nenhum dos quais funcionava.
Este documento refere-se a "nomes de interface previsíveis", mas não explica bem o que eles podem ser em termos simples. Refere-se a um pedaço de código-fonte que implica que o nome nesse caso pode ser deduzido dos números de barramento e slot do PCI, o que parece ser um incômodo desnecessariamente complicado.
Outras pesquisas ao redor me levaram a acreditar que isso pode ser determinado systemd
em conjunto com udev
, mas há quase 100 arquivos /usr/lib/udev/rules.d
e uma hora tentando determinar onde (e se ) existe um arquivo de configuração systemd para isso também parece ridículo.
Também seria bom saber com certeza que eles estão disponíveis, não apenas como eles podem ser nomeados se eles estão, para que eu possa descartar problemas de hardware, etc. Não há uma maneira simples de encontrar os nomes de interfaces de rede disponíveis no linux?
ip link
mas aceita uma resposta que sugere oip link show
que faz exatamente a mesma coisa. Por quê?ip route
- escrevi essa pergunta no dia seguinte após a solução do problema (veja minha própria resposta); Eu não tenho o hábito de usarip
e não aprecio as páginas de manual excessivamente espartanas, então provavelmente desisti dela depois de uma tentativa e comecei a passar/sys
, pois sabia que o kmod estava carregado etc. e isso era mais direto para mim. Vou remover isso completamente da pergunta.Respostas:
O método mais simples que conheço para listar todas as suas interfaces é
EDITAR
Se você estiver em um sistema em que isso se tornou obsoleto, você pode usar
fonte
ip
há um paralelo, pois supostamente o ifconfig está sendo "obsoleto" em favor desse (IMO) comando mais obtuso e menos amigável.man ifconfig
: "NOTA Este programa está obsoleto! Para substituição, verifique o ip ..." Isso pode ser específico para o linux. Espero que eles tenham que retê-lo para compatibilidade com versões anteriores.ip
. Veja o artigo da Wikipédia ifconfig: en.wikipedia.org/wiki/Ifconfig .O kernel os lista por nome
/sys
, ambos separadamente (por exemplo) na árvore de dispositivos PCI - embora encontrá-los lá se você não sabe por onde começar, não é simples - e juntos por meio de links simbólicos/sys/class/net
. Por exemplo:Outro exemplo:
Se você não tiver certeza de qual é qual, basta colocar todas elas em:
Ou:
E então observe as pistas (razoavelmente claras) listadas por
ifconfig
(sem argumentos). O código-fonte systemd vinculado no documento Freedesktop.org também se refere a:Embora em um dos casos acima (
p6s1
) não haja prefixo.fonte
eth
. Eu acredito queen
é para LAN sem fio.eth
é uma coisa do kernel do linux; O systemd implementa através dos nomes de interface previsíveis do udev Freedesktop.org - os do kernel não são previsíveis no mesmo sentido, que é a causa de toda a confusão. A citação acima é explicitamente cortada e colada a partir daqui . Há mais do que isso, já que não tenho nenhuma máquina systemd usandoen
para ethernet; o mais próximo é queem
outros são completamente diferentes. Você pode ler o link do Freedesk.org na pergunta para obter mais explicações.eno1
.Eu sempre faço
cat /proc/net/dev
é simples e fácil de memorizarfonte
ifconfig
= Solarisipconfig
= Windowsip
= LinuxIsso eu sei, mas certamente estou aberto a adições e correções.
fonte
man ifconfig
um sistema Linux.