Configurar la red en CentOS 8 con el comando nmcli (20 ejemplos)

nmcli es una herramienta de línea de comandos que puede utilizarse para controlar NetworkManager. Esta herramienta te ayudará a mostrar el estado de los dispositivos de red, crear, editar, activar/desactivar, eliminar conexiones de red y también solucionar problemas de red en tu sistema Linux. Es muy útil para servidores y máquinas sin cabeza para controlar las conexiones de todo el sistema.

En este tutorial, te mostraremos cómo utilizar el comando nmcli para controlar las conexiones de red con ejemplos.

Requisitos previos

  • Un servidor que ejecute CentOS 8.
  • Una contraseña de root configurada en tu servidor.

1. Comprobar el estado de NetworkManager

Para comprobar si el Gestor de Red se está ejecutando o no, utiliza el siguiente comando:

nmcli -t -f RUNNING general

Deberías ver la siguiente salida:

running

Para obtener un estado general, ejecuta el siguiente comando:

nmcli general

Deberías ver la siguiente salida:

STATE      CONNECTIVITY  WIFI-HW  WIFI     WWAN-HW  WWAN    
connected  full          enabled  enabled  enabled  enabled 

2. Comprobar todos los dispositivos disponibles

Puedes mostrar todos los dispositivos disponibles en tu sistema, ejecuta el siguiente comando:

nmcli dev status

Deberías ver la siguiente salida:

DEVICE  TYPE      STATE      CONNECTION  
eth0    ethernet  connected  System eth0 
eth1    ethernet  connected  System eth1 
lo      loopback  unmanaged  --      

3. Comprobar la conexión activa

Para listar todas las conexiones activas en tu sistema, ejecuta el siguiente comando:

nmcli con show

Deberías obtener la siguiente salida:

NAME         UUID                                  TYPE      DEVICE 
System eth0  5fb06bd0-0bb0-7ffb-45f1-d6edd65f3e03  ethernet  eth0   
System eth1  9c92fad9-6ecb-3e6c-eb4d-8a47c6f50c04  ethernet  eth1

4. Mostrar información sobre la conexión ethernet

Puedes mostrar la información breve sobre la conexión ethernet utilizando el siguiente comando:

nmcli con show "System eth0"

Deberías obtener la siguiente salida:

connection.id:                          System eth0
connection.uuid:                        5fb06bd0-0bb0-7ffb-45f1-d6edd65f3e03
connection.stable-id:                   --
connection.type:                        802-3-ethernet
connection.interface-name:              eth0
connection.autoconnect:                 yes
connection.autoconnect-priority:        0
connection.autoconnect-retries:         -1 (default)
connection.multi-connect:               0 (default)
connection.auth-retries:                -1
connection.timestamp:                   1588217245
connection.read-only:                   no
connection.permissions:                 --
connection.zone:                        --
connection.master:                      --
connection.slave-type:                  --
connection.autoconnect-slaves:          -1 (default)
connection.secondaries:                 --
connection.gateway-ping-timeout:        0
connection.metered:                     unknown
cat /etc/sysconfig/network-scripts/ifcfg-eth1 | grep BOOTPROTO
BOOTPROTO=dhcp

5. Cambiar la directiva «Conectar automáticamente»

Por defecto, todas las conexiones ethernet se conectan automáticamente. Puedes desactivarla con la siguiente orden:

nmcli con mod "System eth1" connection.autoconnect no

Puedes verificar los cambios con el siguiente comando:

cat /etc/sysconfig/network-scripts/ifcfg-eth1 | grep ONBOOT

Deberías ver la siguiente salida:

ONBOOT=no

6. Cambiar la directiva BOOTPROTO de la conexión de red

Puedes cambiar la directiva BOOTPROTO de la conexión de red de estática a DHCP con el siguiente comando:

nmcli con mod "System eth1" ipv4.method auto

Ahora puedes verificar los cambios con el siguiente comando:

cat /etc/sysconfig/network-scripts/ifcfg-eth1 | grep BOOTPROTO

Deberías ver la siguiente salida:

BOOTPROTO=dhcp

Para cambiar la directiva BOOTPROTO de la conexión ethernet de estática a DHCP con el siguiente comando

nmcli con mod "System eth1" ipv4.method manual ipv4.address 192.168.0.10/24 ipv4.gateway 192.168.0.1

7. Desactivar la dirección IPv6 con nmcli

Por defecto, tanto la conexión IPv6 como la IPv4 están activadas en CentOS 8. Puedes desactivar la conexión IPv6 con el siguiente comando:

nmcli con mod "System eth1" ipv6.method ignore

8. Añadir un servidor DNS a una conexión existente

Para añadir un nuevo servidor DNS a una conexión existente, utiliza el siguiente comando:

nmcli con mod "System eth1" ipv4.dns 8.8.4.4

Puedes verificar los cambios con el siguiente comando:

cat /etc/sysconfig/network-scripts/ifcfg-eth1 | grep DNS

Salida:

DNS1=8.8.4.4

También puedes añadir un nuevo servidor DNS utilizando la opción +ipv4.dns:

nmcli con mod "System eth1" +ipv4.dns 4.4.4.4

9. Eliminar el servidor DNS de la conexión existente

Para eliminar el servidor DNS único de la conexión, ejecuta el siguiente comando:

nmcli con mod "System eth1" -ipv4.dns 8.8.4.4

Para eliminar los múltiples servidores DNS de la conexión, ejecuta el siguiente comando:

nmcli con mod "System eth1" -ipv4.dns 8.8.4.4,8.8.2.2

10. Añadir/editar la conexión de forma interactiva

También puedes crear una nueva conexión o editar una conexión existente utilizando un editor interactivo.

Por ejemplo, para editar una conexión existente, ejecuta el siguiente comando:

nmcli con edit "System eth1"

Deberías ver la siguiente salida:

===| nmcli interactive connection editor |===

Editing existing '802-3-ethernet' connection: 'System eth1'

Type 'help' or '?' for available commands.
Type 'print' to show all the connection properties.
Type 'describe [.]' 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> 

Ahora, para mostrar una dirección IP existente, ejecuta el siguiente comando

nmcli> print ipv4.address

Salida:

ipv4.addresses: 192.168.0.10/32

Para establecer una nueva dirección IP, ejecuta el siguiente comando:

nmcli> set ipv4.address 192.168.0.11

Puedes verificar y guardar la conexión con el siguiente comando:

nmcli> verify

Salida:

Verify connection: OK
nmcli> save

Salida:

Connection 'System eth1' (9c92fad9-6ecb-3e6c-eb4d-8a47c6f50c04) successfully updated.

Ahora puedes verificar la conexión guardada con el siguiente comando:

cat /etc/sysconfig/network-scripts/ifcfg-eth1 | grep IPADDR

Deberías ver la siguiente salida:

IPADDR=192.168.0.10
IPADDR1=192.168.0.11

11. Monitorizar la actividad de la conexión

También puedes monitorizar la actividad de NetworkManager mediante nmcli, como los cambios en el estado de la conexión, los perfiles, los dispositivos, etc.

Después de modificar la conexión ethernet, ejecuta el siguiente comando para monitorizarla:

nmcli con monitor "System eth1"

12. Crear una nueva conexión con IP estática

También puedes crear una nueva conexión ethernet estática con nmcli. Por ejemplo, crea una nueva conexión ethernet llamada eth2, IP 192.168.0.12/24, puerta de enlace 192.168.0.1, «onboot=yes» ejecutando el siguiente comando:

nmcli con add con-name eth2 type ethernet ifname eth2 ipv4.method manual ipv4.address 192.168.0.15/24 ipv4.gateway 192.168.0.1

Deberías ver la siguiente salida:

Connection 'eth2' (cefb3f7d-424c-42f8-b4e8-ed54e7dcb880) successfully added.

Ahora, verifica la conexión con el siguiente comando:

nmcli con

Salida:

NAME         UUID                                  TYPE      DEVICE 
System eth0  5fb06bd0-0bb0-7ffb-45f1-d6edd65f3e03  ethernet  eth0   
System eth1  9c92fad9-6ecb-3e6c-eb4d-8a47c6f50c04  ethernet  eth1   
eth2         cefb3f7d-424c-42f8-b4e8-ed54e7dcb880  ethernet  eth2 

13. Crear una nueva conexión con DHCP

También puedes crear una nueva conexión DHCP con nmcli. Por ejemplo, crea una nueva conexión ethernet DHCP llamada eth3 con el siguiente comando:

nmcli con add con-name eth3 type ethernet ifname eth3 ipv4.method auto

Deberías ver la siguiente salida:

Connection 'eth3' (ff54dbd6-255d-4935-abc8-73773bef5b55) successfully added.

14. Activar una nueva conexión

Para activar la nueva conexión ethernet eth2, ejecuta el siguiente comando:

nmcli con up eth2

Deberías ver la siguiente salida:

Connection successfully activated

Ahora puedes verificar la conexión activa con el siguiente comando:

nmcli con show --active

Deberías ver la siguiente salida:

Salida:

NAME         UUID                                  TYPE      DEVICE 
System eth0  5fb06bd0-0bb0-7ffb-45f1-d6edd65f3e03  ethernet  eth0   
System eth1  9c92fad9-6ecb-3e6c-eb4d-8a47c6f50c04  ethernet  eth1   
eth2         cefb3f7d-424c-42f8-b4e8-ed54e7dcb880  ethernet  eth2 

15. Desactivar una conexión

Para desactivar la conexión eth2, ejecuta el siguiente comando:

nmcli con down eth2

16. Eliminar una conexión

También puedes eliminar una conexión ethernet concreta con nmcli.

Por ejemplo, para eliminar una conexión eth2, ejecuta el siguiente comando:

nmcli con del eth2

Deberías ver la siguiente salida:

Connection 'eth2' (cefb3f7d-424c-42f8-b4e8-ed54e7dcb880) successfully deleted.

17. Cambiar el nombre de host con nmcli

Para encontrar el nombre de host actual de tu sistema, ejecuta el siguiente comando:

nmcli general hostname

Deberías ver la siguiente salida:

centos8

A continuación, cambia el nombre de host de centos8 a linux con el siguiente comando:

nmcli general hostname linux

A continuación, verifica el nombre de host con el siguiente comando:

nmcli general hostname

Deberías ver la siguiente salida:

linux

18. Cambia la directiva DEFROUTE

La directiva DEFROUTE se utiliza para desactivar y activar la pasarela por defecto de tu conexión ethernet.

Para habilitar la directiva DEFROUTE para eth2 ejecuta el siguiente comando:

nmcli con mod "System eth2" ipv4.never-default yes

19. Reiniciar la conexión ethernet

Puedes reiniciar o recargar tu conexión ethernet con el siguiente comando:

nmcli con reload

20. nmcli help

Para obtener más información sobre el comando nmcli, ejecuta el siguiente comando:

nmcli --help

Deberías ver la siguiente salida:

Usage: nmcli [OPTIONS] OBJECT { COMMAND | help }

OPTIONS
  -a, --ask                                ask for missing parameters
  -c, --colors auto|yes|no                 whether to use colors in output
  -e, --escape yes|no                      escape columns separators in values
  -f, --fields <field,...>|all|common      specify fields to output
  -g, --get-values <field,...>|all|common  shortcut for -m tabular -t -f
  -h, --help                               print this help
  -m, --mode tabular|multiline             output mode
  -o, --overview                           overview mode
  -p, --pretty                             pretty output
  -s, --show-secrets                       allow displaying passwords
  -t, --terse                              terse output
  -v, --version                            show program version
  -w, --wait                      set timeout waiting for finishing operations

OBJECT
  g[eneral]       NetworkManager's general status and operations
  n[etworking]    overall networking control
  r[adio]         NetworkManager radio switches
  c[onnection]    NetworkManager's connections
  d[evice]        devices managed by NetworkManager
  a[gent]         NetworkManager secret agent or polkit agent
  m[onitor]       monitor NetworkManager changes

Conclusión

En la guía anterior, hemos aprendido a utilizar nmcli para gestionar y controlar la conexión ethernet en CentOS 8. Espero que ahora puedas añadir, editar o crear una nueva conexión fácilmente con nmcli. No dudes en preguntarme si tienes alguna duda.

También te podría gustar...