Índice- Introducción a nmcli
- Guía básica de sintaxis de comandos nmcli
-
- Verificar si NetworkManager está ejecutándose
-
- Enumerar todos los dispositivos disponibles
-
- Listar todas las conexiones disponibles
-
- Mostrar toda la configuración de una interfaz
-
- Comprobar el estado de dispositivos de red física
-
- Cambiar el nombre de host con nmcli
-
- Crear una nueva conexión Ethernet con IP estática
-
- Crear una nueva conexión Ethernet con DHCP
-
- Crear y configurar un enlace (bond) con dos interfaces esclavas
-
- Crear y configurar un puente de red
-
- Crear y configurar un grupo de red
-
- Recargar conexiones con nmcli
-
- Agregar/editar conexiones de forma interactiva
-
- Cambiar de DHCP a IP estática en una conexión Ethernet
-
- Cambiar de IP estática a DHCP en una conexión Ethernet
-
- Modificar la directiva ONBOOT con nmcli
-
- Cambiar la directiva DEFROUTE
-
- Deshabilitar IPv6 en una conexión Ethernet
-
- Modificar la directiva "conexión automática"
-
- Agregar o modificar DNS en una conexión existente
-
- Asignar uno o varios servidores DNS a una conexión
-
- Eliminar uno o varios servidores DNS de una conexión
-
- Mostrar campos específicos de una conexión
-
- Monitorear actividad de conexiones y dispositivos
-
- Activar una conexión
-
- Desactivar una conexión
-
- Eliminar una conexión
Introducción a nmcli
- nmcli es una herramienta de línea de comandos para controlar NetworkManager y reportar el estado de la red.
- Puede reemplazar a nm-applet u otros clientes gráficos. Con nmcli se pueden crear, mostrar, editar, eliminar, activar y desactivar conexiones de red, así como controlar y mostrar el estado de los dispositivos de red.
- Las conexiones se almacenan en archivos de configuración
- El servicio NetworkManager debe estar en ejecución para poder gestionar estos archivos
Guía básica de sintaxis de comandos nmcli
| Comando | Propósito |
|---|---|
**nmcli dev status** |
Mostrar el estado del gestor de red para todas las interfaces de red |
**nmcli con show** |
Listar todas las conexiones |
**nmcli con show \*nombre\*** |
Mostrar la configuración actual de una conexión específica |
**nmcli con add con-name \*nombre\* ..** |
Agregar una nueva conexión con el nombre especificado |
**nmcli con mod \*nombre\* ..** |
Modificar una conexión existente |
**nmcli con reload** |
Indicar a NetworkManager que vuelva a leer los archivos de configuración |
**nmcli con up \*nombre\*** |
Activar la conexión especificada |
**nmcli dev dis \*dispositivo\*** |
Desactivar y desconectar la conexión actual del dispositivo de red |
**nmcli con del \*nombre\*** |
Eliminar una conexión y su archivo de configuración |
1. Verificar si NetworkManager está ejecutándose
Puede usar el siguiente comando para comprobar si NetworkManager está en ejecución:
[root@server01 ~]# nmcli -t -f RUNNING general
running
Obtener información general:
[root@server01 ~]# nmcli general
STATE CONNECTIVITY WIFI-HW WIFI WWAN-HW WWAN
connected full enabled enabled enabled enabled
[root@server01 ~]#
2. Enumerar todos los dispositivos disponibles
Ver y listar todos los dispositivos disponibles en el sistema Linux:
[root@server01 ~]# nmcli dev status
DEVICE TYPE STATE CONNECTION
br0 bridge connected Bridge br0
virbr0 bridge connected virbr0
bond0 bond connected bond0
eth1 ethernet connected System eth1
eth2 ethernet connected System eth2
vnet0 tun connected vnet0
ens3f0 ethernet disconnected --
ens3f1 ethernet disconnected --
lo loopback unmanaged --
[root@server01 ~]#
3. Listar todas las conexiones disponibles
Listar todas las conexiones disponibles:
[root@server01 ~]# nmcli con show
NAME UUID TYPE DEVICE
Bridge br0 d2d68553-f97e-7549-7a26-b34a26f29318 bridge br0
virbr0 19ec752e-976f-4c23-b236-deb684b9db07 bridge virbr0
bond0 ad33d8b0-1f7b-cab9-9447-ba07f855b143 bond bond0
System eth1 31fc52de-447b-46f6-33cf-1d4dbbcddef5 ethernet eth1
System eth2 12e7087a-5ced-5405-d350-7726d3570bae ethernet eth2
vnet0 149dcea1-7c1f-439b-b4eb-b2f0ca31f0b4 tun vnet0
ens3f0 98e575e9-2fcc-428f-bc02-1663f81402b9 ethernet --
ens3f1 daa451f8-b227-4d91-95e4-48c8e46d002d ethernet --
[root@server01 ~]#
4. Mostrar toda la configuración de una interfaz
Ver todos los valores de configuración de una interfaz (valores predeterminados y personalizados):
[root@server01 ~]# nmcli con show "System eth1"
connection.id: System eth1
connection.uuid: 31fc52de-447b-46f6-33cf-1d4dbbcddef5
connection.stable-id: --
connection.type: 802-3-ethernet
connection.interface-name: eth1
connection.autoconnect: yes
connection.autoconnect-priority: 0
connection.autoconnect-retries: -1 (default)
connection.multi-connect: 0 (default)
connection.auth-retries: -1
connection.timestamp: 1606981056
connection.read-only: no
connection.permissions: --
connection.zone: --
connection.master: bond0
connection.slave-type: bond
connection.autoconnect-slaves: -1 (default)
connection.secondaries: --
connection.gateway-ping-timeout: 0
connection.metered: unknown
connection.lldp: default
connection.mdns: -1 (default)
connection.llmnr: -1 (default)
5. Comprobar el estado de dispositivos de red física
Ahora el estado de todos los dispositivos de red conectados:
[root@server01 ~]# nmcli dev status
DEVICE TYPE STATE CONNECTION
br0 bridge connected Bridge br0
virbr0 bridge connected virbr0
bond0 bond connected bond0
eth1 ethernet connected System eth1
eth2 ethernet connected System eth2
vnet0 tun connected vnet0
ens3f0 ethernet disconnected --
ens3f1 ethernet disconnected --
lo loopback unmanaged --
[root@server01 ~]#
6. Cambiar el nombre de host con nmcli
Idealmente, debería usar el comando hostnamectl para cambiar el nombre de host, pero también puede usar el siguiente comando para actualizarlo con nmcli:
Obtener el nombre de host actual:
[root@server01 ~]# nmcli general hostname
servidor01.ejemplo.local
Ahora actualizar el nombre de host:
# nmcli general hostname servidor-nuevo.lab.com
Verificar el cambio:
# nmcli general hostname
servidor-nuevo.lab.com
# hostname
servidor-nuevo.lab.com
7. Crear una nueva conexión Ethernet con IP estática
En este ejemplo, usamos nmcli para configurar estáticamente la interfaz eth1 con la dirección IPv4 y máscara de red 192.168.5.100/24, así como la puerta de enlace predeterminada 192.168.5.1. La conexión se configurará para conectarse automáticamente al inicio y guardará la configuración en el archivo /etc/sysconfig/network-scripts/ifcfg-eth1.
# nmcli con add con-name eth1 type ethernet ifname eth1 ipv4.method manual ipv4.address 192.168.5.100/24 ipv4.gateway 192.168.5.1
La conexión 'eth1' (460b16aa-e755-403e-b0ec-5e1560dcc441) se ha agregado correctamente.
8. Crear una nueva conexión Ethernet con DHCP
El siguiante comando agregará una nueva conexión para la interfaz eth1 que usará DHCP para obtener la información de red IPv4 y se conectará automáticamente al inicio. La configuración se guardará en /etc/sysconfig/network-scripts/ifcfg-eth1 ya que el nombre de la conexión es "eth1".
# nmcli con add con-name eth1 type ethernet ifname eth1 ipv4.method auto
La conexión 'eth1' (d75cb87f-cd15-40a2-9c33-138e69a06a1f) se ha agregado correctamente.
Podemos verificar lo mismo en el archivo de configuración de la interfaz mapeada:
# egrep BOOTPROTO /etc/sysconfig/network-scripts/ifcfg-eth1
BOOTPROTO=dhcp
9. Crear y configurar un enlace (bond) con dos interfaces esclavas
Puede usar nmcli para crear una conexión de enlace con múltiples interfaces esclavas.
Hay seis tipos de modos de enlace: 802.3ad / balance-alb / balance-tlb / broadcast / active-backup / balance-rr / balance-xor
Eliminar cualquier archivo de configuración existente para las interfaces esclavas:
# nmcli con del "eth1"
# nmcli con del "eth2"
Agregar la interfaz principal de enlace con nmcli. Este comando agrega la conexión de enlace principle, nombra la interfaz de enlace como mi_bond0 y usa el modo de respaldo activo. He dado algunos valores ficticios a MII, UPDELAY y DOWNDELAY. Si desea agregar una interfaz principal, puede usar " primary=<nombre_interfaz>"
# nmcli con add type bond ifname mi_bond0 bond.options "mode=active-backup,downdelay=5,miimon=100,updelay=10"
La conexión 'bond-mi_bond0' (a5c76dbe-550b-4abf-8dc0-88184ade369e) se ha agregado correctamente.
De manera similar, para balance round-robin, puede usar bond.options como " downdelay=5,miimon=100,mode=balance-rr,updelay=10"
A continuación, agregue la primera interfaz esclava a mi_bond0 usando nmcli. Este comando enlaza la primera interfaz esclava a la interfaz eth1:
# nmcli con add type ethernet ifname eth1 master mi_bond0
La conexión 'bond-slave-eth1' (54dc4282-b90b-4469-9cbf-82bce042de85) se ha agregado correctamente.
Este comando enlaza la segunda interfaz esclava a la interfaz eth2:
# nmcli con add type ethernet ifname eth2 master mi_bond0
La conexión 'bond-slave-eth2' (41a5b4a6-8e6b-4df9-bff2-b67c5328311a) se ha agregado correctamente.
Listar las conexiones activas. Por lo tanto, hemos establecido la interfaz de enlace y sus interfaces esclavas:
[root@server01 ~]# nmcli con show
NAME UUID TYPE DEVICE
Bridge br0 d2d68553-f97e-7549-7a26-b34a26f29318 bridge br0
virbr0 19ec752e-976f-4c23-b236-deb684b9db07 bridge virbr0
bond0 ad33d8b0-1f7b-cab9-9447-ba07f855b143 bond bond0
System eth1 31fc52de-447b-46f6-33cf-1d4dbbcddef5 ethernet eth1
System eth2 12e7087a-5ced-5405-d350-7726d3570bae ethernet eth2
vnet0 149dcea1-7c1f-439b-b4eb-b2f0ca31f0b4 tun vnet0
[root@server01 ~]#
Aquí uso nmcli para establecer una dirección IP estática, máscara de red, puerta de enlace, DNS y búsqueda DNS para mi_bond0:
# nmcli con mod bond-mi_bond0 ipv4.method manual ipv4.address 10.10.10.15/24 ipv4.gateway 10.10.10.1 ipv4.dns 8.8.8.8 ipv4.dns-search miempresa.com
Nota:
Para usar una IP DHCP, use ipv4.method auto y no proporcione ningún detalle relacionado con la dirección IP en el comando anterior.
Verifique su archivo de configuración de mi_bond0:
# egrep 'BOOTPROTO|IPADDR|PREFIX|GATEWAY|DNS' /etc/sysconfig/network-scripts/ifcfg-bond-mi_bond0
BOOTPROTO=none
IPADDR=10.10.10.15
PREFIX=24
GATEWAY=10.10.10.1
DNS1=8.8.8.8
Recargar/recargar los cambios de configuración de red de mi_bond0:
# nmcli con up bond-mi_bond0
La conexión se ha activado correctamente (el maestro está esperando a los esclavos) (ruta D-Bus activa: /org/freedesktop/NetworkManager/ActiveConnection/11)
Verificar la dirección IP del enlace:
# ip addr show mi_bond0
7: mi_bond0: <BROADCAST,MULTICAST,MASTER,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
link/ether 08:00:27:0d:ca:0c brd ff:ff:ff:ff:ff:ff
inet 10.10.10.15/24 brd 10.10.10.255 scope global noprefixroute mi_bond0
valid_lft forever preferred_lft forever
Verificar la lista de conexiones disponibles:
[root@server01 ~]# nmcli con show --active
NAME UUID TYPE DEVICE
Bridge br0 d2d68553-f97e-7549-7a26-b34a26f29318 bridge br0
virbr0 19ec752e-976f-4c23-b236-deb684b9db07 bridge virbr0
bond0 ad33d8b0-1f7b-cab9-9447-ba07f855b143 bond bond0
System eth1 31fc52de-447b-46f6-33cf-1d4dbbcddef5 ethernet eth1
System eth2 12e7087a-5ced-5405-d350-7726d3570bae ethernet eth2
vnet0 149dcea1-7c1f-439b-b4eb-b2f0ca31f0b4 tun vnet0
[root@server01 ~]#
10. Crear y configurar un puente de red
Para crear un puente de red llamado "mi_puente" con la interfaz eth1 como miembro:
# nmcli con add type bridge ifname mi_puente
La conexión 'bridge-mi_puente' (a5c76dbe-550b-4abf-8dc0-88184ade369e) se ha agregado correctamente.
# nmcli con add type ethernet ifname eth1 master mi_puente
La conexión 'bridge-slave-eth1' (54dc4282-b90b-4469-9cbf-82bce042de85) se ha agregado correctamente.
# nmcli con mod bridge-mi_puente ipv4.method manual ipv4.address 192.168.100.10/24 ipv4.gateway 192.168.100.1
11. Crear y configurar un grupo de red
Para crear un grupo de red llamado "mi_grupo" con las interfaces eth1 y eth2:
# nmcli con add type team ifname mi_team
La conexión 'team-mi_grupo' (a5c76dbe-550b-4abf-8dc0-88184ade369e) se ha agregado correctamente.
# nmcli con add type ethernet ifname eth1 master mi_grupo
La conexión 'team-slave-eth1' (54dc4282-b90b-4469-9cbf-82bce042de85) se ha agregado correctamente.
# nmcli con add type ethernet ifname eth2 master mi_grupo
La conexión 'team-slave-eth2' (41a5b4a6-8e6b-4df9-bff2-b67c5328311a) se ha agregado correctamente.
# nmcli con mod team-mi_grupo ipv4.method manual ipv4.address 192.168.200.10/24 ipv4.gateway 192.168.200.1
12. Recargar conexiones con nmcli
Después de editar manualmente los archivos de configuración, puede usar el siguiente comando para que NetworkManager vuelva a leerlos:
# nmcli con reload
13. Agregar/editar conexiones de forma interactiva
Para agregar una nueva conexión de forma interactiva:
# nmcli con add type ethernet interactive
Para editar una conexión existente de forma interactiva:
# nmcli con edit "nombre_conexion"
14. Cambiar de DHCP a IP estática en una conexión Ethernet
# nmcli con mod "nombre_conexion" ipv4.method manual ipv4.address 192.168.1.100/24 ipv4.gateway 192.168.1.1
15. Cambiar de IP estática a DHCP en una conexión Ethernet
# nmcli con mod "nombre_conexion" ipv4.method auto
16. Modificar la directiva ONBOOT con nmcli
# nmcli con mod "nombre_conexion" connection.autoconnect yes
17. Cambiar la directiva DEFROUTE
Para evitar que esta red se use como ruta predeterminada:
# nmcli con mod "nombre_conexion" ipv4.never-default yes
18. Deshabilitar IPv6 en una conexión Ethernet
# nmcli con mod "nombre_conexion" ipv6.method ignore
19. Modificar la directiva "conexión automática"
# nmcli con mod "nombre_conexion" connection.autoconnect no
20. Agregar o modificar DNS en una conexión existente
Para establecer los servidores DNS:
# nmcli con mod "nombre_conexion" ipv4.dns "8.8.8.8 8.8.4.4"
21. Asignar uno o varios servidores DNS a una conexión
# nmcli con mod "nombre_conexion" +ipv4.dns "1.1.1.1"
# nmcli con mod "nombre_conexion" +ipv4.dns "1.0.0.1"
22. Eliminar uno o varios servidores DNS de una conexión
# nmcli con mod "nombre_conexion" -ipv4.dns "1.1.1.1"
# nmcli con mod "nombre_conexion" -ipv4.dns "1.0.0.1"
23. Mostrar campos específicos de una conexión
# nmcli con show "nombre_conexion" | grep ipv4
24. Monitorear actividad de conexiones y dispositivos
# nmcli monitor
25. Activar una conexión
# nmcli con up "nombre_conexion"
26. Desactivar una conexión
# nmcli con down "nombre_conexion"
27. Eliminar una conexión
# nmcli con del "nombre_conexion"