Tabla de Contenidos

nmcli

nmcli es una potente utilidad de línea de comandos para Linux que permite controlar el demonio NetworkManager. Es ideal para servidores sin interfaz gráfica o para scripts automatizados, ya que permite crear, ver, editar, activar, desactivar y eliminar conexiones de red de forma rápida y eficiente.

nmcli admite el completado con tabulación, lo que facilita la introducción de comandos y nombres de conexión.

Dispositivos de red

Para mostrar los dispositivos de red:

nmcli device status

Nos indicará cuál está conectado.

Detalles

nmcli device show <NOMBRE_DISPOSITIVO>

Ejemplo de salida:

GENERAL.DEVICE:                         wlp2s0
GENERAL.TYPE:                           wifi
GENERAL.HWADDR:                         E1:E2:58:7B:DF:8A
GENERAL.MTU:                            1500
GENERAL.STATE:                          100 (conectado)
GENERAL.CONNECTION:                     Penny_5G
GENERAL.CON-PATH:                       /org/freedesktop/NetworkManager/ActiveConnection/9
IP4.ADDRESS[1]:                         192.168.0.8/24
IP4.GATEWAY:                            192.168.0.1
IP4.ROUTE[1]:                           dst = 192.168.0.0/24, nh = 0.0.0.0, mt = 600
IP4.ROUTE[2]:                           dst = 0.0.0.0/0, nh = 192.168.0.1, mt = 600
IP4.DNS[1]:                             192.168.0.110
IP6.ADDRESS[1]:                         fe81::cac5:6dfb:62fe:5746/64
IP6.GATEWAY:                            --
IP6.ROUTE[1]:                           dst = fe80::/64, nh = ::, mt = 1024
IP6.DNS[1]:                             fe80::1

Conexiones de red

Mostrar conexiones de red

nmcli connection show

El comando anterior mostrará una tabla con el nombre de la conexión, UUID, tipo y dispositivo.

Mostrar detalles de una conexión

nmcli connection show <NOMBRE_CONEXION>

Veremos una salida similar:

connection.id:                          Penny_5G
connection.uuid:                        a818bb49-5277-4130-b9a9-3f0b290984fd
connection.stable-id:                   --
connection.type:                        802-11-wireless
connection.interface-name:              wlp2s0
connection.autoconnect:                 sí
connection.autoconnect-priority:        0
connection.autoconnect-retries:         -1 (default)
connection.multi-connect:               0 (default)
connection.auth-retries:                -1
connection.timestamp:                   1783180598
(...)
802-11-wireless.ssid:                   Penny_5G
802-11-wireless.mode:                   infrastructure
802-11-wireless.band:                   --
802-11-wireless.seen-bssids:            12:6B:9A:3B:68:15,5B:6B:9A:3B:68:17
(...)
ipv4.dns:                               192.168.0.110
ipv4.dns-search:                        --
ipv4.dns-options:                       --
ipv4.dns-priority:                      0
ipv4.addresses:                         192.168.0.8/24
ipv4.gateway:                           192.168.0.1
(...)

Activar una conexión

nmcli connection up <NOMBRE_CONEXION>

Desactivar una conexión

nmcli connection down <NOMBRE_CONEXION>

Editar conexiones

Configurar una IP estática

nmcli connection modify <NOMBRE_CONEXION> ipv4.method manual
nmcli connection modify <NOMBRE_CONEXION> ipv4.address 192.168.0.100/24
nmcli connection modify <NOMBRE_CONEXION> ipv4.gateway 192.168.0.1
nmcli connection modify <NOMBRE_CONEXION> ipv4.dns 8.8.8.8

Para que se apliquen las modificaciones, tenemos que reiniciar la conexión:

nmcli connection down <NOMBRE_CONEXION>
nmcli connection up <NOMBRE_CONEXION>

Eliminar una conexión

nmcli connection delete <NOMBRE_CONEXION>

Cambiar nombre

nmcli connection modify <NOMBRE_ACTUAL> connection.id <NOMBRE_NUEVO>

Configurar servidor DNS

nmcli connection modify <NOMBRE_CONEXION> ipv4.dns "1.1.1.1,94.140.14.14"

Para que se apliquen las modificaciones, tenemos que reiniciar la conexión:

nmcli connection down <NOMBRE_CONEXION>
nmcli connection up <NOMBRE_CONEXION>

Si queremos que no se haga caso de la configuración DNS que venga por DHCP (cuando configuramos un router para que entregue la configuración de red por DHCP, por ejemplo):

nmcli connection modify <NOMBRE_CONEXION> ipv4.ignore-auto-dns yes

Crear conexión WireGuard

A partir de un fichero de configuración de WireGuard:

nmcli connection import type wireguard file fichero-wireguard.conf

Si no queremos que esa red VPN se conecte automáticamente:

nmcli connection modify <NOMBRE_CONEXION> connection.autoconnect no