Esto se refiere a Linux, pero si alguien conoce un método general * nix, sería bueno.
Arranqué un sistema ayer con un cable de ethernet enchufado. "NetworkManager" no está instalado, así que una vez que comenzó, busqué el nombre de la interfaz de ethernet ifconfig
para iniciar un cliente DHCP manualmente, pero no mostró nada más que lo
.
La NIC se enumeró a través de lspci
, y se cargó el controlador de kernel apropiado. El sistema normalmente usa wifi, y podría recordar el nombre de la interfaz para eso wlan0
. Cuando lo intenté ifconfig wlan0 up
, wlan0
apareció. Pero los únicos nombres de interfaz de Ethernet que podía recordar eran eth[N]
y em[N]
ninguno de los cuales funcionó.
Este documento se refiere a "nombres de interfaz predecibles" pero no hace un buen trabajo al explicar lo que podrían ser en términos simples. Se refiere a un fragmento de código fuente que implica que el nombre en este caso podría deducirse del bus PCI y los números de ranura, lo que parece una molestia innecesariamente complicada.
Otra búsqueda me llevó a creer que esto podría determinarse systemd
en conjunto con udev
, pero hay casi 100 archivos /usr/lib/udev/rules.d
y pasar una hora tratando de determinar dónde (y si ) hay un archivo de configuración systemd para esto también parece ridículo.
También sería bueno saber con certeza que están disponibles, no solo cómo podrían nombrarse si lo están, para que pueda descartar problemas de hardware, etc. ¿No existe una manera simple de encontrar los nombres de las interfaces de red disponibles? en linux?
ip link
pero luego acepta una respuesta que sugiereip link show
qué hace exactamente lo mismo. ¿Por qué?ip route
: escribí esta pregunta al día siguiente después de que se resolvió el problema (vea mi propia respuesta); No tengo la costumbre de usarip
y no aprecio las páginas de manual excesivamente espartanas, así que probablemente me di por vencido después de un intento y comencé a pasar/sys
, ya que sabía que el kmod estaba cargado, etc. y esto era más sencillo a mi. Lo eliminaré completamente de la pregunta.Respuestas:
El método más simple que conozco para enumerar todas sus interfaces es
EDITAR
Si está en un sistema donde eso se ha vuelto obsoleto, puede usar
fuente
ip
tiene un paralelo, ya que supuestamente ifconfig está "obsoleto" a favor de ese (IMO) comando más obtuso y menos amigable para el usuario.man ifconfig
: "¡NOTA, este programa está obsoleto! Para reemplazo, verifique ip ..." Eso puede ser específico de Linux. Esperemos que tengan que conservarlo para la compatibilidad con algo anterior.ip
. Vea el artículo de ifconfig wikipedia: en.wikipedia.org/wiki/Ifconfig .El kernel los enumera por nombre
/sys
, tanto por separado en (por ejemplo) el árbol de dispositivos PCI, aunque encontrarlos allí si no sabe dónde comenzar no es simple, y juntos a través de enlaces simbólicos/sys/class/net
. P.ej:Otro ejemplo:
Si no está seguro de cuál es cuál, puede ponerlos a todos con:
O:
Y luego mira las pistas (bastante claras) enumeradas por
ifconfig
(sin argumentos). El código fuente de systemd vinculado desde el documento de Freedesktop.org también se refiere a:Aunque en uno de los casos anteriores (
p6s1
) no hay prefijo.fuente
eth
. Creo queen
es para LAN inalámbrica.eth
es una cosa del kernel de Linux; systemd implementa a través de los nombres de interfaz predecibles de udev Freedesktop.org : los del núcleo no son predecibles en el mismo sentido, que es la causa de toda la confusión. La cita anterior está explícitamente cortada y pegada desde aquí . Hay más que eso, ya que no tengo ninguna máquina systemd que useen
para ethernet; lo más cercano es queem
otros son completamente diferentes. Puede leer el enlace Freedesk.org en la pregunta usted mismo para obtener más explicaciones.eno1
.Siempre lo hago
cat /proc/net/dev
, es simple y fácil de memorizarfuente
ifconfig
= Solarisipconfig
= Windowsip
= LinuxEso lo sé, pero ciertamente estoy abierto a adiciones y correcciones.
fuente
man ifconfig
en un sistema Linux.