====== nmcli ======
**nmcli** es una potente utilidad de línea de comandos para Linux que permite controlar el demonio [[networkmanager|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
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
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
==== Desactivar una conexión ====
nmcli connection down
===== Editar conexiones =====
==== Configurar una IP estática ====
nmcli connection modify ipv4.method manual
nmcli connection modify ipv4.address 192.168.0.100/24
nmcli connection modify ipv4.gateway 192.168.0.1
nmcli connection modify ipv4.dns 8.8.8.8
Para que se apliquen las modificaciones, tenemos que reiniciar la conexión:
nmcli connection down
nmcli connection up
==== Eliminar una conexión ====
nmcli connection delete
==== Cambiar nombre ====
nmcli connection modify connection.id
==== Configurar servidor DNS ====
nmcli connection modify 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
nmcli connection up
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 ipv4.ignore-auto-dns yes
==== Crear conexión WireGuard ====
A partir de un fichero de configuración de [[wireguard|WireGuard]]:
nmcli connection import type wireguard file fichero-wireguard.conf
Si no queremos que esa red VPN se conecte automáticamente:
nmcli connection modify connection.autoconnect no