Administrar conexiones de red en Linux usando la utilidad de consola nmcli

Aproveche al m谩ximo la herramienta de administraci贸n de red NetworkManager desde la l铆nea de comandos de Linux con la utilidad nmcli.







La utilidad nmcli llama directamente a la API para acceder a las funciones de NetworkManager.



Apareci贸 en 2010 y para muchos se ha convertido en una forma alternativa de configurar interfaces y conexiones de red. Aunque alguien todav铆a est谩 usando ifconfig . Dado que nmcli es una herramienta de interfaz de l铆nea de comandos (CLI) dise帽ada para su uso en ventanas de terminal y scripts, es ideal para administradores de sistemas que no tienen GUI.



Sintaxis del comando Ncmli



En general, la sintaxis se ve as铆:



$ nmcli <options> <section> <action>


  • Las opciones son par谩metros que definen las sutilezas de nmcli,
  • secci贸n: define qu茅 caracter铆sticas de la utilidad se utilizar谩n,
  • acci贸n: le permite especificar lo que realmente se debe hacer.


Hay 8 secciones en total, cada una de las cuales est谩 asociada con un conjunto de comandos (acciones):



  • La ayuda proporciona informaci贸n sobre los comandos ncmcli y su uso.
  • General devuelve el estado y la configuraci贸n global de NetworkManager.
  • Las redes incluyen comandos para consultar el estado de una conexi贸n de red y habilitar / deshabilitar conexiones.
  • La radio incluye comandos para consultar el estado de la conexi贸n WiFi y habilitar / deshabilitar conexiones.
  • Monitor incluye comandos para monitorear la actividad de NetworkManager y monitorear los cambios en el estado de las conexiones de red.
  • Connection incluye comandos para administrar interfaces de red, para agregar nuevas conexiones y eliminar las existentes.
  • El dispositivo se utiliza principalmente para cambiar par谩metros relacionados con el dispositivo (como el nombre de la interfaz) o para conectar dispositivos utilizando una conexi贸n existente.
  • Secret registra a nmcli como el "agente secreto" NetworkManager, que escucha mensajes secretos. Esta secci贸n rara vez se usa, porque nmcli funciona de esta manera cuando se conecta a redes de forma predeterminada.


Ejemplos sencillos



Antes de comenzar, aseg煤rese de que NetworkManager se est茅 ejecutando y que nmcli pueda comunicarse con 茅l:



$ nmcli general
STATE      CONNECTIVITY  WIFI-HW  WIFI     WWAN-HW  WWAN    
connected  full          enabled  enabled  enabled  enabled


A menudo, el trabajo comienza mirando todos los perfiles de conexi贸n de red:



$ nmcli connection show
NAME                UUID                                  TYPE      DEVICE
Wired connection 1  ac3241e4-b424-35d6-aaa7-07498561688d  ethernet  enp0s3
Wired connection 2  2279d917-fa02-390c-8603-3083ec5a1d3e  ethernet  enp0s8
Wired connection 3  52d89737-de92-35ec-b082-8cf2e5ac36e6  ethernet  enp0s9


Este comando usa la acci贸n show para la secci贸n Conexi贸n.



La m谩quina de prueba est谩 ejecutando Ubuntu 20.04. En este caso, encontramos tres conexiones cableadas: enp0s3, enp0s8 y enp0s9.



Gesti贸n de conexiones



Es importante entender que en nmcli, por el t茅rmino Conexi贸n, nos referimos a una entidad que contiene toda la informaci贸n sobre la conexi贸n. En otras palabras, es la configuraci贸n de la red. Connection encapsula toda la informaci贸n relacionada con la conexi贸n, incluida la capa de enlace y la informaci贸n de direcciones IP. Estos son la Capa 2 y la Capa 3 en el modelo de red OSI.



Cuando configura una red en Linux, generalmente configura conexiones que finalmente estar谩n vinculadas a dispositivos de red, que a su vez son las interfaces de red instaladas en la computadora. Cuando un dispositivo usa una conexi贸n, se considera activo o activo. Si la conexi贸n no est谩 en uso, entonces est谩 inactiva o interrumpida.



Agregar conexiones de red



La utilidad ncmli le permite agregar r谩pidamente y configurar conexiones de inmediato. Por ejemplo, para agregar la conexi贸n por cable 2 (con enp0s8), debe ejecutar el siguiente comando como superusuario:



$ sudo nmcli connection add type ethernet ifname enp0s8
Connection 'ethernet-enp0s8' (09d26960-25a0-440f-8b20-c684d7adc2f5) successfully added.


En la opci贸n tipo indicamos que esta ser谩 una conexi贸n Ethernet, y en la opci贸n ifname (nombre de la interfaz) indicamos la interfaz de red que queremos utilizar.



Esto es lo que sucede despu茅s de ejecutar el comando:



$ nmcli connection show
NAME                UUID                                  TYPE      DEVICE
Wired connection 1  ac3241e4-b424-35d6-aaa7-07498561688d  ethernet  enp0s3
Wired connection 2  2279d917-fa02-390c-8603-3083ec5a1d3e  ethernet  enp0s8
Wired connection 3  52d89737-de92-35ec-b082-8cf2e5ac36e6  ethernet  enp0s9
ethernet-enp0s8     09d26960-25a0-440f-8b20-c684d7adc2f5  ethernet  --  


Se ha creado una nueva conexi贸n, ethernet-enp0s8. Se le asign贸 un UUID, el tipo de conexi贸n era Ethernet. Vamos a mencionarlo con el comando up:



$ nmcli connection up ethernet-enp0s8
Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/4)


Vuelva a consultar la lista de conexiones activas:



$ nmcli connection show --active
NAME                UUID                                  TYPE      DEVICE
Wired connection 1  ac3241e4-b424-35d6-aaa7-07498561688d  ethernet  enp0s3
ethernet-enp0s8     09d26960-25a0-440f-8b20-c684d7adc2f5  ethernet  enp0s8
Wired connection 3  52d89737-de92-35ec-b082-8cf2e5ac36e6  ethernet  enp0s9


Se agreg贸 una nueva conexi贸n ethernet-enp0s8, est谩 activa y usa la interfaz de red enp0s8.



Configurar conexiones



La utilidad ncmli facilita el cambio de los par谩metros de las conexiones existentes. Por ejemplo, debe cambiar la direcci贸n IP din谩mica (DHCP) a est谩tica.



Digamos que necesitamos establecer la direcci贸n IP en 192.168.4.26. Para esto usamos dos comandos. El primero establecer谩 directamente la direcci贸n IP y el segundo cambiar谩 el m茅todo para configurar la direcci贸n IP a manual:



$ nmcli connection modify ethernet-enp0s8 ipv4.address 192.168.4.26/24
$ nmcli connection modify ethernet-enp0s8 ipv4.method manual


No olvide configurar tambi茅n la m谩scara de subred. Para nuestra conexi贸n de prueba, esto es 255.255.255.0, o s / 24 para Classless Routing (CIDR).



Para que los cambios surtan efecto, debe desactivar y luego activar la conexi贸n nuevamente:



$ nmcli connection down ethernet-enp0s8
Connection 'ethernet-enp0s8' successfully deactivated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/4)
$ nmcli connection up ethernet-enp0s8
Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveC


Si necesita instalar DHCP en su lugar, use auto en lugar de manual:



$ nmcli connection modify ethernet-enp0s8 ipv4.method auto


Trabajando con dispositivos



Para ello usamos la secci贸n Dispositivo.



Comprobaci贸n del estado del dispositivo



$ nmcli device status
DEVICE  TYPE      STATE      CONNECTION        
enp0s3  ethernet  connected  Wired connection 1
enp0s8  ethernet  connected  ethernet-enp0s8    
enp0s9  ethernet  connected  Wired connection 3
lo      loopback  unmanaged  --  


Solicitando informaci贸n del dispositivo



Para hacer esto, use la acci贸n mostrar de la secci贸n Dispositivo (debe especificar el nombre del dispositivo). La utilidad muestra mucha informaci贸n, a menudo en varias p谩ginas.

Echemos un vistazo a la interfaz enp0s8 que usa nuestra nueva conexi贸n. Asegur茅monos de que use exactamente la misma direcci贸n IP que configuramos anteriormente:



$ nmcli device show enp0s8
GENERAL.DEVICE:                         enp0s8
GENERAL.TYPE:                           ethernet
GENERAL.HWADDR:                         08:00:27:81:16:20
GENERAL.MTU:                            1500
GENERAL.STATE:                          100 (connected)
GENERAL.CONNECTION:                     ethernet-enp0s8
GENERAL.CON-PATH:                       /org/freedesktop/NetworkManager/ActiveConnection/6
WIRED-PROPERTIES.CARRIER:               on
IP4.ADDRESS[1]:                         192.168.4.26/24
IP4.GATEWAY:                            --
IP4.ROUTE[1]:                           dst = 192.168.4.0/24, nh = 0.0.0.0, mt = 103
IP6.ADDRESS[1]:                         fe80::6d70:90de:cb83:4491/64
IP6.GATEWAY:                            --
IP6.ROUTE[1]:                           dst = fe80::/64, nh = ::, mt = 103
IP6.ROUTE[2]:                           dst = ff00::/8, nh = ::, mt = 256, table=255


Hay mucha informaci贸n. Destaquemos lo principal:



  • Nombre de la interfaz de red: enp0s8.
  • Tipo de conexi贸n : conexi贸n Ethernet por cable.
  • Vemos la direcci贸n MAC del dispositivo.
  • Unidad de transmisi贸n m谩xima especificada (MTU) : el tama帽o m谩ximo de la unidad de datos 煤tiles de un paquete que puede ser transmitido por el protocolo sin fragmentaci贸n.
  • El dispositivo est谩 conectado actualmente .
  • El nombre de la conexi贸n que utiliza el dispositivo es ethernet-enp0s8.
  • El dispositivo usa la misma direcci贸n IP que configuramos anteriormente: 192.168.4.26/24.


Otra informaci贸n se relaciona con la configuraci贸n predeterminada de enrutamiento y puerta de enlace para la conexi贸n. Son espec铆ficos de la red.



Editor interactivo de nmcli



Nmcli tambi茅n tiene un editor interactivo simple en el que alguien puede sentirse m谩s c贸modo trabajando. Para ejecutarlo, por ejemplo, para la conexi贸n ethernet-enp0s8, use la acci贸n de edici贸n:



$ nmcli connection edit ethernet-enp0s8


Tambi茅n tiene un poco de ayuda, que, sin embargo, es de menor tama帽o que la versi贸n de consola:



===| nmcli interactive connection editor |===
Editing existing '802-3-ethernet' connection: 'ethernet-enp0s8'
Type 'help' or '?' for available commands.
Type 'print' to show all the connection properties.
Type 'describe [<setting>.<prop>]' for detailed property description.
You may edit the following settings: connection, 802-3-ethernet (ethernet), 802-1x, dcb, sriov, ethtool, match, ipv4, ipv6, tc, proxy
nmcli>


Si ingresa el comando de impresi贸n y presiona Enter, nmcli mostrar谩 todas las propiedades de conexi贸n:



===============================================================================
                 Connection profile details (ethernet-enp0s8)
===============================================================================
connection.id:                          ethernet-enp0s8
connection.uuid:                        09d26960-25a0-440f-8b20-c684d7adc2f5
connection.stable-id:                   --
connection.type:                        802-3-ethernet
connection.interface-name:              enp0s8
connection.autoconnect:                 yes
connection.autoconnect-priority:        0
connection.autoconnect-retries:         -1 (default)
connection.multi-connect:               0 (default)
connection.auth-retries:                -1
connection.timestamp:                   1593967212
connection.read-only:                   no
connection.permissions:                 --
connection.zone:                        --
connection.master:                      --
connection.slave-type:                  --
connection.autoconnect-slaves:          -1 (default)
connection.secondaries:                 --


Por ejemplo, para establecer la propiedad DHCP para una conexi贸n, escriba goto ipv4 y presione Enter :



nmcli> goto ipv4
You may edit the following properties: method, dns, dns-search, 
dns-options, dns-priority, addresses, gateway, routes, route-metric, 
route-table, routing-rules, ignore-auto-routes, ignore-auto-dns, 
dhcp-client-id, dhcp-iaid, dhcp-timeout, dhcp-send-hostname, 
dhcp-hostname, dhcp-fqdn, dhcp-hostname-flags, never-default, may-fail, 
dad-timeout
nmcli ipv4>


Luego escriba set method auto y presione Enter :



nmcli ipv4> set method auto
Do you also want to clear 'ipv4.addresses'? [yes]:


Si desea borrar la IP est谩tica, presione Entrar . De lo contrario, ingrese no y presione Enter. Puede conservarlo si cree que lo necesitar谩 en el futuro. Pero incluso con una direcci贸n IP est谩tica almacenada, se utilizar谩 DHCP si el m茅todo est谩 configurado en autom谩tico.



Utilice el comando guardar para guardar sus cambios:



nmcli ipv4> save
Connection 'ethernet-enp0s8' (09d26960-25a0-440f-8b20-c684d7adc2f5) successfully updated.
nmcli ipv4>


Ingrese quit para salir del editor interactivo nmcli. Si cambia de opini贸n acerca de irse, use el comando Atr谩s.



Y eso no es todo



Abra el editor interactivo nmcli y vea cu谩ntas configuraciones hay y cu谩ntas propiedades tiene cada configuraci贸n. El editor interactivo es una gran herramienta, pero si desea utilizar nmcli en una sola l铆nea o en scripts, necesitar谩 la versi贸n de l铆nea de comandos normal.



Ahora que tiene lo b谩sico, consulte la p谩gina de manual de nmcli para ver de qu茅 otra manera puede ayudarlo.






Publicidad



Los servidores 茅picos son servidores virtuales Windows o Linux con potentes procesadores AMD EPYC y unidades Intel NVMe muy r谩pidas. 隆Date prisa para ordenar!






All Articles