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 comencé fui a buscar el nombre de la interfaz de ethernet con ifconfig
para iniciar un cliente DHCP manualmente, pero no mostró nada más que lo
.
El NIC se enumeró a través de lspci
, y se cargó el controlador del kernel apropiado. El sistema normalmente usa wifi, y pude recordar que el nombre de la interfaz era wlan0
. Cuando 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 estar determinado por systemd
junto con udev
, pero hay casi 100 archivos en /usr/lib/udev/rules.d
y pasar una hora tratando de determinar dónde (y if) 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 llamarse if que son, así que puedo descartar problemas de hardware, etc. ¿No hay una manera simple de encontrar los nombres de las interfaces de red disponibles en Linux?
El método más simple que conozco para enumerar todas sus interfaces es
ifconfig -a
EDITAR
Si está en un sistema donde se ha vuelto obsoleto, puede usar
ip link show
El kernel los enumera por nombre en /sys
, ambos 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 en /sys/class/net
. P.ej.:
> ls /sys/class/net
em1 lo wlp6so
Otro ejemplo:
> ls /sys/class/net
lo p6s1 wlan0
Si no está seguro de cuál es cuál, puede ponerlos a todos con:
ifconfig [name] up
O:
ip link set [name] up
Y luego mire 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:
Two character prefixes based on the type of interface:
* en -- ethernet
* sl -- serial line IP (slip)
* wl -- wlan
* ww -- wwan
Aunque en uno de los casos anteriores (p6s1
) no hay prefijo.
Siempre hago cat /proc/net/dev
es simple y fácil de memorizar
ifconfig
= Solarisipconfig
= Windowsip
= Linux
Eso lo sé, pero ciertamente estoy abierto a adiciones y correcciones.