GNU/Linux >> Tutoriales Linux >  >> Linux

Administre las conexiones de red desde la línea de comandos de Linux con nmcli

El comando nmcli le permite aprovechar el poder de la herramienta NetworkManager directamente desde la línea de comandos de Linux. Es una parte integral del paquete NetworkManager que utiliza una interfaz de programador de aplicaciones (API) para acceder a la funcionalidad de NetworkManager.

nmcli se lanzó en 2010 y reemplaza otros modos de configuración de interfaces y conexiones de red, como ifconfig. Debido a que es una herramienta de interfaz de línea de comandos (CLI) diseñada para usarse en scripts y ventanas de terminal, es ideal para los administradores de sistemas que trabajan en sistemas sin una interfaz gráfica de usuario (GUI).

sintaxis de ncmli

El comando nmcli acepta opciones que modifican el comportamiento de nmcli, secciones que le dicen a nmcli cuál de sus capacidades desea usar y acciones que dile lo que quieres que haga:

$ nmcli <options> <section> <action>

Más sobre administradores de sistemas

  • Habilitar el blog de administrador del sistema
  • La empresa automatizada:una guía para administrar TI con automatización
  • Libro electrónico:Automatización de Ansible para administradores de sistemas
  • Historias del campo:una guía del administrador de sistemas para la automatización de TI
  • eBook:Una guía de Kubernetes para SRE y administradores de sistemas
  • Últimos artículos de administrador de sistemas

Hay ocho secciones, cada una relacionada con un conjunto específico de acciones de red:

  • Ayuda proporciona ayuda sobre los comandos y el uso de ncmcli.
  • Generales recupera el estado y la configuración global de NetworkManager.
  • Redes proporciona comandos para consultar el estado de una conexión de red y habilitar o deshabilitar conexiones.
  • Radio proporciona comandos para consultar el estado de una conexión de red WiFi y habilitar o deshabilitar conexiones.
  • Supervisión proporciona comandos para monitorear la actividad de NetworkManager y observar los cambios de estado de las conexiones de red.
  • Conexión proporciona comandos para activar y desactivar las interfaces de red, agregar nuevas conexiones y eliminar conexiones existentes.
  • Dispositivo se usa principalmente para modificar parámetros asociados con un dispositivo (por ejemplo, el nombre de la interfaz) o para conectar un dispositivo usando una conexión existente.
  • Secreto registra nmcli como un agente secreto de NetworkManager que escucha mensajes secretos. Esto rara vez se requiere porque nmcli lo hace automáticamente cuando se conecta a las redes.

Ejemplos simples

Como primera verificación, verifique 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

El reconocimiento suele ser la primera parte de la administración de un sistema. Para enumerar todos los perfiles de conexión de red en memoria y en disco:

$ 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 el show acción de la connection sección.

La máquina de prueba utilizada para este ejemplo ejecuta Ubuntu 20.04. Tiene tres adaptadores de red instalados:enp0s3 , enp0s8 y enp0s9 .

Gestión de conexiones

Es importante entender la nomenclatura de nmcli. Una conexión de red es algo que contiene toda la información sobre una conexión. Puede considerarlo como una configuración de red. . Una conexión encapsula toda la información relacionada con una conexión, incluida la capa de enlace de datos y la información de direccionamiento IP. Esa es la capa 2 y la capa 3 en el modelo de redes OSI.

Cuando está configurando redes en Linux, generalmente está configurando conexiones que eventualmente se vincularán a dispositivos de red, que son las interfaces de red instaladas en una computadora. Cuando un dispositivo utiliza una conexión, se dice que la conexión está activa. o arriba . Lo contrario de activo es inactivo o abajo .

Agregar conexiones de red

El comando ncmli le permite crear rápidamente conexiones de red y especificar elementos de su configuración al mismo tiempo. Para agregar una nueva conexión mediante la conexión por cable 2, enp0s8 , necesitas usar sudo :

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

El type opción solicita una conexión Ethernet, y el ifname (nombre de interfaz) especifica el dispositivo de interfaz de red que desea que utilice la conexión.

Mira lo que pasó:

$ 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  --  

Tu nueva conexión, ethernet-enp0s8 , fue creado. Se asignó su identificador único universal (UUID) y el tipo de conexión es Ethernet. Hágalo activo con el up comando seguido del nombre de la conexión (o el UUID):

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

Revisa tus conexiones activas una vez más:

$ 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

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

Ajuste de conexiones

El comando ncmli facilita el ajuste de los parámetros de las conexiones existentes. Tal vez desee cambiar una interfaz de red del Protocolo de configuración dinámica de host (DHCP) a una dirección IP estática.

Suponga que necesita una dirección IP fija de 192.168.4.26 para su nueva conexión. Para lograr eso, necesita 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 ipv4.address 192.168.4.26/24
$ nmcli connection modify ethernet-enp0s8 ipv4.method manual

Recuerde especificar la máscara de subred. En esta red de prueba, es 255.255.255.0 , o /24 en enrutamiento entre dominios sin clase (CIDR).

Para que sus cambios surtan efecto, debe rebotar la conexión deteniéndola y volviendo a activarla. El primer comando interrumpe la conexión y el segundo la vuelve a activar:

$ 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/ActiveConnection/6)

Si desea configurar la conexión para usar DHCP, use auto en lugar de manual :

$ nmcli connection modify ethernet-enp0s8 ipv4.method auto

Administración de dispositivos

Los comandos en el device La sección del comando nmcli le permite administrar las interfaces de red instaladas en su computadora.

Comprobación del estado del dispositivo

Para comprobar rápidamente el estado de todas las interfaces de red:

$ 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  --  

Mostrando detalles del dispositivo

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

Eche un vistazo a enp0s8 , el dispositivo que utiliza su nueva conexión. Verifique que la dirección IP en uso sea la dirección que solicitó 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

La respuesta es bastante detallada. Entre otras cosas, muestra:

  • El nombre de la interfaz de red , que en este caso es enp0s8 , que le asigna udev.
  • El tipo de conexión de red , que en este caso es una conexión Ethernet física.
  • La dirección de control de acceso a medios (MAC) del dispositivo , que identifica el dispositivo en la red.
  • La unidad de transmisión máxima, que es el tamaño de la unidad de datos de protocolo más grande que se puede transmitir en una sola transacción. Cualquier cosa más grande que esto se divide en varios paquetes.
  • Este dispositivo está conectado actualmente .
  • El nombre de la conexión el uso de este dispositivo es ethernet-enp0s8 .
  • La dirección IP de la conexión utilizando este dispositivo. Según lo solicitado, se establece en 192.168.4.26/24 .

La otra información se relaciona con la configuración predeterminada de enrutamiento y puerta de enlace que se aplicó a esta conexión, de acuerdo con la red a la que está conectado.

editor interactivo de nmcli

Aunque es una herramienta de línea de comandos, nmcli incluye un editor interactivo elemental. El edit action abrirá el editor interactivo en la conexión que especifique:

$ nmcli connection edit ethernet-enp0s8

Muestra una pequeña cantidad de texto de ayuda, luego el símbolo del sistema nmcli:

===| 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 escribe print y pulsa Intro , nmcli enumerará todas las propiedades asociadas con la conexión. Hay muchas propiedades. Puede desplazarse hacia arriba y hacia abajo por la lista:

===============================================================================
                 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:                 --

Vuelva a cambiar su conexión para usar DHCP. Escribe goto ipv4 y pulsa Intro :

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>

La propiedad que desea cambiar es method . Escriba set method auto y pulsa Intro :

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

Si desea que la conexión elimine la dirección IP estática, presione Intro . Para mantenerlo, escriba no y pulsa Intro . Puedes quedártelo si crees que podrías volver a usarlo en el futuro. Incluso con una dirección IP estática almacenada, si method está configurado en auto , utilizará DHCP.

Escribe save para guardar los cambios:

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

Escribe quit para salir del editor interactivo nmcli. Si no desea salir, escriba back para volver al nivel principal y seguir usando el editor.

Hay mucho más en nmcli

Explore el editor interactivo y vea cuántas configuraciones hay y cuántas propiedades tiene cada configuración. El editor interactivo es una buena herramienta, pero para frases ingeniosas o para usar nmcli en secuencias de comandos, necesitará la versión normal de línea de comandos.

Ahora que tiene los conceptos básicos a mano, consulte la página de manual de nmcli para ver qué más puede ofrecer.


Linux
  1. Cómo instalar software desde la línea de comandos de Linux

  2. Trabajando con tuberías en la línea de comando de Linux

  3. Informes de E/S desde la línea de comandos de Linux

  4. Pass:administre sus contraseñas desde la línea de comandos de Linux

  5. Migración de un servidor Linux desde la línea de comandos

Administre su calendario desde la terminal de Linux con el comando konsolekalendar

Programe hardware desde la línea de comandos de Linux

Resuelve un rompecabezas en la línea de comandos de Linux con nudoku

Sugerencias para enumerar archivos con ls en la línea de comandos de Linux

Domina la línea de comandos de Linux

Cómo comprobar las estadísticas de red de Linux desde la línea de comandos