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, --waitset 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.