Nombre del adaptador de loopback en Linux
-
06-07-2019 - |
Pregunta
¿Es seguro asumir que el adaptador de red de bucle invertido en un sistema Linux siempre se llamará 'lo'? ¿Es solo una convención de nomenclatura a la que no se debe cumplir, o debe ser siempre el caso?
Solución
No conozco ningún sistema Linux que tenga una interfaz de bucle de retorno que no sea lo
. Me gustaría confiar en esta convención de nombres, si escribo un script específico del sistema, pero no cuando escribo un programa portátil. Por ejemplo, loopback en OSX es lo0
.
Una forma confiable en C es llamar a un SIOCGIFCONF
ioctl
en un socket, iterar sobre las interfaces, llamar a SIOCGIFFLAGS
ioctl
en cada una, y verifique qué interfaces tienen un conjunto de indicadores IFF_LOOPBACK
(consulte /usr/include/linux/if.h
).
SIOCGIFCONF
también le dará nombres de interfaz.
Otros consejos
En mi experiencia, es un nombre común, aunque no siempre debes confiar en que sea así. ¿Tal vez enumerar las interfaces y buscar una con una dirección de 127.0.0.1 sería el camino a seguir?
Es una convención bastante antigua, de hecho, no he visto una caja / distribución de Linux que aún no lo haya llamado 'lo'.
Sin embargo, los nombres de dispositivos en los sistemas * nix son tan diversos que puede suponerse que cambiarán. Utilice los estándares si desea portabilidad (en este caso, 127.0.0.1).
Se puede cambiar el nombre de las interfaces a cualquier cosa que desee, pero cualquier persona que cambie el nombre de la interfaz de bucle invertido es extremadamente tonta y merece tener un sistema que no funcione :)
Sí, puedes enumerar las interfaces y obtener sus nombres. Pero tal vez sea tan fácil simplemente asumir que va a ser " lo " ;.
Utilizar 127.0.0.1 es probablemente la manera segura de hacerlo.
RFC3330 define 127.0.0.0/8
para que siempre sea la subred de bucle invertido.
El uso de localhost
, sin embargo, se define en Windows en c: \ windows \ system32 \ drivers \ etc \ hosts
y Linux en / etc / hosts es puramente convencional. Además, el nombre
lo
es el nombre típico dado a la interfaz localhost en Linux.
Si debe estar absolutamente seguro, use 127.0.0.1
.