NetworkManager es un demonio dinámico de control y configuración de red que intenta mantener las conexiones de red activas y en funcionamiento. nmcli es una herramienta de línea de comandos que se utiliza para interactuar con NetworkManager. Esta publicación proporcionará una guía completa sobre el uso de nmcli para gestionar conexiones de red en Linux.

Instalación

nmcli generalmente se instala de forma predeterminada en la mayoría de las distribuciones de Linux que utilizan NetworkManager. Sin embargo, si no está instalado, puedes instalarlo usando el gestor de paquetes de tu distribución:

  • Debian/Ubuntu: sudo apt install network-manager
  • Fedora/CentOS/RHEL: sudo dnf install NetworkManager o sudo yum install NetworkManager
  • Arch Linux: sudo pacman -S networkmanager

Uso Básico

Mostrar Conexiones de Red

Para listar todas las conexiones de red disponibles:

nmcli connection show

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

Mostrar Dispositivos de Red

Para listar todos los dispositivos de red:

nmcli device show

Esto mostrará información sobre cada dispositivo de red, incluyendo su estado, tipo y dirección hardware.

Activar una Conexión

Para activar una conexión (por ejemplo, MiWiFi):

nmcli connection up MiWiFi

Desactivar una Conexión

Para desactivar una conexión (por ejemplo, MiWiFi):

nmcli connection down MiWiFi

Editar Conexiones

Puedes modificar las conexiones existentes usando nmcli. Por ejemplo, para editar la contraseña de Wi-Fi para una conexión llamada MiWiFi:

nmcli connection modify MiWiFi wifi-sec.psk "tu_nueva_contraseña"

Luego, necesitas desactivar y activar la conexión para que los cambios surtan efecto:

nmcli connection down MiWiFi
nmcli connection up MiWiFi

Crear una Nueva Conexión Wi-Fi

Para crear una nueva conexión Wi-Fi, necesitarás el SSID y la contraseña:

nmcli device wifi connect "TuWiFiSSID" password "TuWiFiContraseña" name "MiNuevaWiFi"

Reemplaza "TuWiFiSSID", "TuWiFiContraseña" y "MiNuevaWiFi" con el SSID, la contraseña y el nombre de conexión deseados de tu red Wi-Fi, respectivamente.

Crear una Nueva Conexión Ethernet

Para las conexiones Ethernet, normalmente no necesitas especificar una contraseña. Puedes crear una nueva conexión Ethernet con un nombre de conexión específico:

nmcli connection add type ethernet con-name MiEthernet ifname eth0

Reemplaza MiEthernet con el nombre de conexión deseado y eth0 con el nombre de la interfaz si es diferente.

Establecer una Dirección IP Estática

Para configurar una dirección IP estática para una conexión (por ejemplo, MiEthernet):

nmcli connection modify MiEthernet ipv4.method manual
nmcli connection modify MiEthernet ipv4.address 192.168.1.100/24
nmcli connection modify MiEthernet ipv4.gateway 192.168.1.1
nmcli connection modify MiEthernet ipv4.dns 8.8.8.8

Reemplaza la dirección IP, la puerta de enlace y el servidor DNS con los valores deseados. Nuevamente, necesitarás desactivar y activar la conexión para que los cambios surtan efecto.

nmcli connection down MiEthernet
nmcli connection up MiEthernet

Eliminar una Conexión

Para eliminar una conexión (por ejemplo, MiViejoWiFi):

nmcli connection delete MiViejoWiFi

Consejos y Trucos Útiles

  • Completado con Tab: nmcli admite el completado con tabulación, lo que facilita la introducción de comandos y nombres de conexión.
  • Ayuda: Usa nmcli --help o nmcli <comando> --help para obtener información detallada sobre los comandos y opciones.
  • Perfiles: NetworkManager guarda perfiles de conexión, por lo que puedes cambiar fácilmente entre diferentes configuraciones de red.
  • Solución de problemas: Si encuentras problemas, verifica los registros de NetworkManager (generalmente en /var/log/syslog o /var/log/messages) para ver los mensajes de error.

Conclusión

nmcli es una herramienta potente y versátil para gestionar conexiones de red en Linux. Al dominar los comandos descritos en esta guía, puedes configurar y solucionar problemas de tu configuración de red fácilmente desde la línea de comandos. Esto es especialmente útil para servidores sin interfaz gráfica o cuando prefieres una interfaz de línea de comandos.