Cómo administrar las conexiones de red de Linux desde la línea de comandos

Contenidos

los nmcli El comando le posibilita aprovechar el poder de Linux NetworkManager de forma directa desde la línea de comandos, lo que lo hace perfecto para servidores sin entorno de escritorio y administración remota de shell SSH.

los nmcli El comando no es nuevo, se lanzó en 2010. Junto con el comando ip, reemplaza al venerable, pero obsoleto, ifconfig. Los viejos hábitos tardan en morir, y muchos administradores de sistemas aún usan ifconfig. Ellos ya conocen cómo usarlo, no hay curva de aprendizaje y solo necesitan hacer el trabajo. Entonces, ¿por qué aprender otra herramienta más?

Bueno, eventualmente ifconfig será eliminado por las distribuciones, por lo que es un cambio que se avecina, nos guste o no. Pero nmcli tiene algunos trucos ingeniosos que hacen que valga la pena descubrir lo que puede ofrecer.

Como todos los comandos de la CLI, nmcli acepta parámetros de línea de comando. Los parámetros se agrupan en tres categorías.

Pero tenga en cuenta que no siempre necesita los tres conjuntos de parámetros para cada comando. los nmcli las secciones son:

  • Ayudar: Proporciona breves textos de ayuda sobre el ncmcli comandos
  • General: Recupera el estado y la configuración de NetworkManager
  • Redes: Consulta, habilita o deshabilita las conexiones de red
  • Radio: Consulta, habilita o deshabilita las conexiones de red Wi-Fi
  • Monitor: Supervisa NetworkManager y los cambios de estado de las conexiones de red
  • Conexión: Manipula de forma directa las interfaces de red, lo que incluye habilitarlas y deshabilitarlas, agregar nuevas conexiones y quitar las conexiones existentes
  • Dispositivo: Modifica los parámetros del dispositivo de red y conecta o desconecta un dispositivo de una conexión existente
  • Secreto: Registros nmcli como un Agente secreto de NetworkManager. Debido a que nmcli hace esto automáticamente, esto se utiliza muy raramente.

Primeros pasos con nmcli

Asegurémonos de que NetworkManager esté instalado, ejecutándose y podamos conectarnos a él con nmcli. Usaremos el status acción de la general sección.

nmcli general status

En realidad, el estado es la acción predeterminada para general, por lo que podríamos haber dejado esa palabra fuera del comando. Pero hemos verificado que nmcli —Y, por eso, NetworkManager— está instalado y operativo. Averigüemos un poco más sobre esta computadora.

Podemos enumerar todos los perfiles de conexión de red en memoria y en disco usando la acción show de la sección de conexión:

nmcli connection show

La salida es más ancha que la ventana de la terminal. Nuestros resultados fueron:

NAME               UUID                                 TYPE     DEVICE 
Wired connection 1 d2864443-9cee-31ec-ab2e-55e9ebddd53e ethernet enp0s3 
ethernet-enp0s8    9aad8efa-3427-4a5c-bef5-270340cd33d0 ethernet enp0s8 
ethernet-enp0s9    5bc49cef-bc3d-4832-9073-460b408932b6 ethernet enp0s9

La máquina de prueba utilizada para este post está ejecutando una versión previa al lanzamiento de Ubuntu 21.10. Tiene tres adaptadores de red instalados, llamados enp0s3, enp0s8, y enp0s9.

Entendiendo la fontanería

Una conexión de red posibilita que su computadora se comunique a través de una red con otro dispositivo. Internamente, nmcli contiene toda la información relativa a una conexión de red en un objeto de datos al que llama conexión.

Un nmcli conexión encapsula toda la información relacionada con esa conexión, incluida Capa de enlace de datos y Información de direccionamiento IP. Tu puedes pensar en nmcli‘s como los detalles de configuración para las conexiones de red del mundo real.

Para llegar al mundo exterior, una conexión debe usar un dispositivo de interfaz de red, como una tarjeta de red. Una conexión está vinculada a un dispositivo. Cuando un dispositivo está activo y puede recibir o transmitir datos, se dice que la conexión es active o up. El estado inactivo respectivo se llama, como podíamos esperar, inactive o down.

Agregar conexiones de red

Con nmcli puede crear una conexión de red y determinar algunas de sus opciones de configuración con un solo comando. En esta computadora de prueba, no hay conexión en enp0s8 , el nombre de nuestra conexión por cable (ethernet) número 2. Agregaremos una conexión a enp0s8. Debido a que estamos realizando cambios en el sistema, necesitará utilizar sudo:

sudo nmcli connection add type ethernet ifname enp0s8

Este comando utiliza el add acción de la connection sección. Usamos el type opción para solicitar una conexión ethernet, y la ifname (nombre de la interfaz) para especificar el dispositivo de interfaz de red que queremos que utilice esta conexión.

Veamos qué pasó:

nmcli connection show

NAME               UUID                                 TYPE     DEVICE 
Wired connection 1 d2864443-9cee-31ec-ab2e-55e9ebddd53e ethernet enp0s3 
ethernet-enp0s8    9aad8efa-3427-4a5c-bef5-270340cd33d0 ethernet enp0s8 
ethernet-enp0s9    5bc49cef-bc3d-4832-9073-460b408932b6 ethernet enp0s9 
ethernet-enp0s8-1  b874aa09-3a25-4f52-b20b-1b95d9741be9 ethernet --

Nuestra nueva conexión ethernet-enp0s8-1 , Ha sido creado. Se ha asignado su identificador único universal (UUID) y el tipo de conexión es Ethernet. Ahora podemos activarlo con el up mando. los up El comando debe ir seguido del nombre de la conexión o su UUID:

nmcli connection up ethernet-enp0s8-1

Revisemos nuestras conexiones activas una vez más:

nmcli connection show --active

NAME               UUID                                 TYPE     DEVICE 
Wired connection 1 d2864443-9cee-31ec-ab2e-55e9ebddd53e ethernet enp0s3 
ethernet-enp0s8-1  b874aa09-3a25-4f52-b20b-1b95d9741be9 ethernet enp0s8 
ethernet-enp0s9    5bc49cef-bc3d-4832-9073-460b408932b6 ethernet enp0s9

Nuestra nueva conexión ethernet-enp0s8-1, ahora está activo y vinculado a la enp0s8 dispositivo de interfaz de red.

Ajuste de conexiones

Desde luego, ncmli además le posibilita cambiar los parámetros de las conexiones existentes. Supongamos que queremos cambiar una interfaz de red del Protocolo de configuración dinámica de host (DHCP) a usar una dirección IP estática. Para que coincida con nuestra red, necesitamos una dirección IP fija de 192.168.1.40 para nuestra nueva conexión.

Para lograrlo, debe emitir dos comandos. Uno para configurar la dirección IP y otro para configurar el método de conexión para obtener una dirección IP en manual:

nmcli connection modify ethernet-enp0s8-1 ipv4.address 192.168.1.40/24
nmcli connection modify ethernet-enp0s8-1 ipv4.method manual

El «/ 24» que proporcionamos con la dirección IP es la máscara de subred en itinerario entre recesos (CIDR). En este contexto, «/ 24» significa «255.255.255.0».

Los cambios no surtirán efecto hasta que se «rebote» la conexión. Dicho de otra forma, desactivado y vuelto a conectar. El primer comando deshabilita la conexión y el segundo la vuelve a activar.

nmcli connection down ethernet-enp0s8-1
nmcli connection up ethernet-enp0s8-1

Si desea revertir el cambio y pasar de una dirección IP estática a una dirección IP DHCP, utilice el auto opción en lugar de manual.

nmcli connection modify ethernet-enp0s8-1 ipv4.method auto

Administración de dispositivos

los nmcli device La sección contiene acciones (comandos) que le posibilitan administrar las interfaces de red instaladas en su computadora. Para ver el estado de todas las interfaces de red en su computadora, use:

nmcli device status

Mostrando detalles del dispositivo

Para examinar los detalles de una interfaz de red, usamos el show acción de la device sección. Si no proporciona un nombre de dispositivo, se recuperan y muestran los detalles de todos los dispositivos. Puede desplazarse hacia arriba y hacia abajo para revisarlos.

Echemos un vistazo a enp0s8, el dispositivo que está usando nuestra nueva conexión. Podemos verificar que la dirección IP en uso es la dirección que solicitamos previamente.

nmcli device show enp0s8

GENERAL.DEVICE:           enp0s8
GENERAL.TYPE:             ethernet
GENERAL.HWADDR:           08:00:27:79:A7:68
GENERAL.MTU:              1500
GENERAL.STATE:            100 (connected)
GENERAL.CONNECTION:       ethernet-enp0s8-1
GENERAL.CON-PATH:         /org/freedesktop/NetworkManager/ActiveConnection/8
WIRED-PROPERTIES.CARRIER: on
IP4.ADDRESS[1]:           192.168.1.40/24
IP4.GATEWAY:              --
IP4.ROUTE[1]:             dst = 192.168.1.0/24, nh = 0.0.0.0, mt = 102
IP6.ADDRESS[1]:           fe80::3241:457d:cd1c:2436/64
IP6.GATEWAY:              --
IP6.ROUTE[1]:             dst = fe80::/64, nh = ::, mt = 102

Una pantalla llena de información es devuelta por nmcli . Algunos de los ítems más útiles son:

  • DISPOSITIVO: El nombre del dispositivo que estamos examinando.
  • ESCRIBE: El tipo de conexión que utiliza este dispositivo.
  • HWADDR: La dirección MAC de la tarjeta de interfaz.
  • ESTADO: Si este dispositivo dispone de una conexión en vivo.
  • DIRECCIÓN IP4[1]: La dirección IP y la máscara de subred de este dispositivo.
  • CONEXIÓN: El nombre de la conexión que utiliza este dispositivo.

El editor interactivo nmcli

Pese a que nmcli es una herramienta de línea de comandos que tiene un editor interactivo elemental. La acción de edición en la sección de conexión abre el editor interactivo en la conexión que pasa en la línea de comando:

nmcli connection edit ethernet-enp0s8-1

Se imprime un texto de ayuda en la pantalla y aparece el símbolo del sistema «nmcli>».

si escribe print y presiona «Enter», nmcli enumera todas las propiedades asociadas con la conexión. Hay muchos de ellos. Puede desplazarse por ellos para revisarlos.

print

Cambiemos nuestra conexión de nuevo para utilizar DHCP. Usaremos la configuración de “ipv4”. Para hacer eso, necesitamos «ir» a la configuración de IPv4.

goto ipv4

La propiedad que queremos cambiar es method. Queremos configurarlo en automático.

set method auto

Verá el siguiente mensaje:

Do you also want to clear 'ipv4.addresses'? [yes]:

Si no borra la dirección IP, la próxima vez que configure esta conexión para utilizar una dirección IP estática, usará la que se configuró previamente. Si la borra, deberá determinar una nueva dirección IP si en algún momento vuelve a cambiar esta conexión para utilizar una dirección IP estática. Escriba «sí» o simplemente presione «Enter» para borrarlo. Escriba «no» y presione «Enter» para mantenerlo.

Necesitamos guardar nuestros cambios:

save

Escriba «salir» para salir del editor interactivo. Si no desea salir, escriba «volver» para volver al nivel principal y continuar usando el editor.

Hay mucho más en el hombre

los nmcli El comando puede hacer mucho más. Dispone de una gran cantidad de alternativas y parámetros de línea de comandos. Tantos en realidad, que es página man se extiende a más de 1200 líneas. Revíselos para ver qué más nmcli puede hacer por usted.

Y, de todos modos, si está administrando conexiones de red de forma remota, no desactive la conexión a la que se ha conectado. Eso nunca es divertido.

Suscribite a nuestro Newsletter

No te enviaremos correo SPAM. Lo odiamos tanto como tú.