NetworkManager és un servei de sistema (dimoni) que s’encarrega de gestionar automàticament les connexions de xarxa a Linux.
Detecta i gestiona dispositius de xarxa Ethernet, Wi-Fi, mòbil (3G/4G), VPN, bridges, bonds, VLANs… Quan connectes un cable o t’apropes a una xarxa Wi-Fi coneguda, NetworkManager ho detecta i actua.
Gestiona perfils de connexió Cada xarxa configurada
es guarda com un fitxer .nmconnection a /etc/NetworkManager/system-connections/. Aquests perfils
contenen IP, DNS, gateway, credencials Wi-Fi, etc.
Automatitza DHCP i DNS Quan una connexió s’activa,
NetworkManager llança un client DHCP intern (o delega a dhclient/dhcpcd) i configura /etc/resolv.conf amb els DNS rebuts.
Reacciona a canvis Si desconnectes un cable, apagues el Wi-Fi o canvies de xarxa, NetworkManager ho detecta i reconfigura les rutes i adreces automàticament, sense intervenció manual.
És un servei systemd:
systemctl status NetworkManager # comprova l'estat
systemctl enable NetworkManager # activa a l'arrencada
systemctl restart NetworkManager # reinicia| Ruta | Contingut |
|---|---|
/etc/NetworkManager/system-connections/ |
Perfils de connexió (.nmconnection) |
/etc/NetworkManager/NetworkManager.conf |
Configuració global del servei |
/run/NetworkManager/ |
Estat en temps real |
| Eina | Relació |
|---|---|
netplan |
A Ubuntu, genera configuració per a NetworkManager |
systemd-networkd |
Alternativa a NetworkManager (més minimalista) |
ifupdown |
El tradicional sistema de Debian
(/etc/network/interfaces) |
ip, ss |
Eines de baix nivell; no parlen amb NetworkManager |
En servidors Debian ni tan sols s’instal·la en favor de ifupdown o systemd-networkd, perquè
NetworkManager està pensat principalment per a entorns d’escriptori on
la xarxa canvia sovint. En servidors la xarxa és estàtica i no cal tanta
automatització.
nmcli (NetworkManager Command Line Interface) és l’eina de línia d’ordres per interactuar amb NetworkManager, el servei que gestiona les connexions de xarxa a la majoria de distribucions Linux modernes.
| Àmbit | Exemples |
|---|---|
| Connexions | crear, modificar, esborrar, activar, desactivar |
| Dispositius | veure estat, connectar, desconnectar |
| Wi-Fi | escanejar xarxes, connectar-se |
| VPN | activar/desactivar túnels |
| Monitoratge | veure esdeveniments en temps real |
ls -l /etc/NetworkManager/system-connections/
# Fitxers .nmconnection per cada perfiltotal 8
-rw------- 1 root root 241 2 de març 22:58 'Perfil 1.nmconnection'
-rw------- 1 root root 274 2 de març 21:51 XSF4.nmconnectionsystemctl status NetworkManager● NetworkManager.service - Network Manager
Loaded: loaded (/usr/lib/systemd/system/NetworkManager.service; enabled; preset: enabled)
Active: active (running) since Mon 2026-08-17 09:37:29 CEST; 2h 27min ago
Invocation: 49daf51aeb8445c59d30ab13766aa12c
Docs: man:NetworkManager(8)
Main PID: 1015 (NetworkManager)
Tasks: 4 (limit: 18484)
Memory: 18.5M (peak: 19.2M)
CPU: 1.274s
CGroup: /system.slice/NetworkManager.service
└─1015 /usr/sbin/NetworkManager --no-daemon
d’ag. 17 09:37:32 debian NetworkManager[1015]: <info> [1786952252.8728] device (enp2s0): state change: ip-config -> ip-check (reason 'none', managed-type: 'full')
d’ag. 17 09:37:32 debian NetworkManager[1015]: <info> [1786952252.8752] device (enp2s0): state change: ip-check -> secondaries (reason 'none', managed-type: 'full')
d’ag. 17 09:37:32 debian NetworkManager[1015]: <info> [1786952252.8753] device (enp2s0): state change: secondaries -> activated (reason 'none', managed-type: 'full')
d’ag. 17 09:37:32 debian NetworkManager[1015]: <info> [1786952252.8757] manager: NetworkManager state is now CONNECTED_SITE
d’ag. 17 09:37:32 debian NetworkManager[1015]: <info> [1786952252.8759] device (enp2s0): Activation: successful, device activated.
d’ag. 17 09:37:32 debian NetworkManager[1015]: <info> [1786952252.8765] manager: NetworkManager state is now CONNECTED_GLOBAL
d’ag. 17 09:37:32 debian NetworkManager[1015]: <info> [1786952252.8769] manager: startup complete
d’ag. 17 09:37:34 debian NetworkManager[1015]: <info> [1786952254.7635] agent-manager: agent[71095e79ad443ed4,:1.33/org.gnome.Shell.NetworkAgent/110]: agent registered
d’ag. 17 09:37:44 debian NetworkManager[1015]: <info> [1786952264.0885] agent-manager: agent[b61604e252de9593,:1.82/org.gnome.Shell.NetworkAgent/1000]: agent registered
d’ag. 17 09:50:53 debian NetworkManager[1015]: <info> [1786953053.5077] manager: (vboxnet0): new Ethernet device (/org/freedesktop/NetworkManager/Devices/4)En resum: nmcli és el frontend de terminal per a NetworkManager, equivalent a fer clic a la icona de xarxa de l’escriptori però des de la línia d’ordres, amb accés a totes les opcions avançades.
nmcli connection show
# o abreujat
nmcli con showNAME UUID TYPE DEVICE
Perfil 1 61dc0363-5f64-411c-ab1e-73b3f32a67f0 ethernet enp2s0
lo 78b420db-f49f-488e-8e72-0c3d32c328b2 loopback lo
XSF4 d5d0bf8b-200e-4528-b5a7-ac2a495ae9c5 wifi -- nmcli device show
# o abreujat
nmcli dev showSortida:
GENERAL.DEVICE: enp2s0
GENERAL.TYPE: ethernet
GENERAL.HWADDR: 48:21:0B:37:C4:CB
GENERAL.MTU: 1500
GENERAL.STATE: 100 (connectat)
GENERAL.CONNECTION: Perfil 1
GENERAL.CON-PATH: /org/freedesktop/NetworkManager/ActiveConnection/2
WIRED-PROPERTIES.CARRIER: actiu
IP4.ADDRESS[1]: 192.168.1.43/24
IP4.GATEWAY: 192.168.1.1
IP4.ROUTE[1]: dst = 192.168.1.0/24, nh = 0.0.0.0, mt = 100
IP4.ROUTE[2]: dst = 0.0.0.0/0, nh = 192.168.1.1, mt = 100
IP4.DNS[1]: 80.58.61.250
IP4.DNS[2]: 80.58.61.254
IP4.DOMAIN[1]: Home
IP4.WINS[1]: 192.168.1.1
IP6.GATEWAY: --
GENERAL.DEVICE: lo
GENERAL.TYPE: loopback
GENERAL.HWADDR: 00:00:00:00:00:00
GENERAL.MTU: 65536
GENERAL.STATE: 100 (connected (externally))
GENERAL.CONNECTION: lo
GENERAL.CON-PATH: /org/freedesktop/NetworkManager/ActiveConnection/1
IP4.ADDRESS[1]: 127.0.0.1/8
IP4.GATEWAY: --
IP6.ADDRESS[1]: ::1/128
IP6.GATEWAY: --
GENERAL.DEVICE: wlo1
GENERAL.TYPE: wifi
GENERAL.HWADDR: 56:27:41:93:2C:2B
GENERAL.MTU: 1500
GENERAL.STATE: 20 (no disponible)
GENERAL.CONNECTION: --
GENERAL.CON-PATH: --
IP4.GATEWAY: --
IP6.GATEWAY: --
GENERAL.DEVICE: vboxnet0
GENERAL.TYPE: ethernet
GENERAL.HWADDR: 0A:00:27:00:00:00
GENERAL.MTU: 1500
GENERAL.STATE: 10 (sense gestió)
GENERAL.CONNECTION: --
GENERAL.CON-PATH: --
WIRED-PROPERTIES.CARRIER: inactiu
IP4.GATEWAY: --
IP6.GATEWAY: --# Només una interfície concreta
nmcli dev show enp2s0nmcli device status
# o abreujat
nmcli dev statusExemple de sortida:
DEVICE TYPE STATE CONNECTION
enp2s0 ethernet connectat Perfil 1
lo loopback connected (externally) lo
wlo1 wifi no disponible --
vboxnet0 ethernet sense gestió -- nmcli con show "Perfil 1"
# Filtrar per IP
nmcli con show "Perfil 1" | grep IP4# sense arguments ja mostra un resum de tot
nmclienp2s0: connectat to Perfil 1
"Intel I225-LM"
ethernet (igc), 48:21:0B:37:C4:CB, hw, mtu 1500
ip4 default
inet4 192.168.1.43/24
route4 192.168.1.0/24 metric 100
route4 default via 192.168.1.1 metric 100
lo: connected (externally) to lo
"lo"
loopback (unknown), 00:00:00:00:00:00, sw, mtu 65536
inet4 127.0.0.1/8
inet6 ::1/128
wlo1: no disponible
"Intel 6 AX201"
wifi (iwlwifi), 56:27:41:93:2C:2B, sw disabled, hw, mtu 1500
vboxnet0: sense gestió
"vboxnet0"
ethernet (vboxnet), 0A:00:27:00:00:00, hw, mtu 1500
DNS configuration:
servers: 80.58.61.250 80.58.61.254
domains: Home
interface: enp2s0
Use "nmcli device show" to get complete information about known devices and
"nmcli connection show" to get an overview on active connection profiles.
Consult nmcli(1) and nmcli-examples(7) manual pages for complete usage details.En general:
nmcli con → parla de perfils de
connexió (configuració guardada)nmcli dev → parla de dispositius
físics (estat real de la interfície)L’ordre sudo nmcli con modify "Perfil 1" permet
modificar qualsevol paràmetre d’una connexió de NetworkManager.
# Tipus de configuració (manual o automàtica)
sudo nmcli con modify "Perfil 1" ipv4.method manual ipv4.addresses 192.168.1.100/24 ipv4.gateway 192.168.1.1 ipv4.dns "8.8.8.8,8.8.4.4"
sudo nmcli con modify "Perfil 1" ipv4.method auto
# Adreça IP i màscara
sudo nmcli con modify "Perfil 1" ipv4.addresses "192.168.1.100/24"
# Porta d'enllaç (gateway)
sudo nmcli con modify "Perfil 1" ipv4.gateway "192.168.1.1"
# DNS (un o més, separats per comes)
sudo nmcli con modify "Perfil 1" ipv4.dns "8.8.8.8,8.8.4.4"
# Dominis de cerca DNS
sudo nmcli con modify "Perfil 1" ipv4.dns-search "thos.local"
# Rutes estàtiques
sudo nmcli con modify "Perfil 1" ipv4.routes "10.0.0.0/8 192.168.1.1"sudo nmcli con modify "Perfil 1" ipv6.method ignore # Desactivar IPv6
sudo nmcli con modify "Perfil 1" ipv6.method auto
sudo nmcli con modify "Perfil 1" ipv6.method manual ipv6.addresses fd00::100/64 ipv6.gateway fd00::1 ipv6.dns "2001:4860:4860::8888,2001:4860:4860::8844"# Nom de la connexió
sudo nmcli con modify "Perfil 1" connection.id "nova-connexio"
# Interfície associada
sudo nmcli con modify "Perfil 1" connection.interface-name enp2s0
# Activar/desactivar connexió automàtica en engegar
sudo nmcli con modify "Perfil 1" connection.autoconnect yes
sudo nmcli con modify "Perfil 1" connection.autoconnect no
# Prioritat d'autoconnexió (major número = més prioritat)
sudo nmcli con modify "Perfil 1" connection.autoconnect-priority 10# MAC address personalitzada
sudo nmcli con modify "Perfil 1" ethernet.cloned-mac-address "AA:BB:CC:DD:EE:FF"
# MTU
sudo nmcli con modify "Perfil 1" ethernet.mtu 9000
# Forçar 100 Mb/s full dúplex (sense autonegociació; l'altre extrem ha de tenir el mateix mode)
sudo nmcli con modify "Perfil 1" ethernet.auto-negotiate no ethernet.speed 100 ethernet.duplex full
# Limitar l'anunci a 1 Gb/s full dúplex (amb autonegociació; a 1 Gb/s o més és obligatòria)
sudo nmcli con modify "Perfil 1" ethernet.auto-negotiate yes ethernet.speed 1000 ethernet.duplex full
# Tornar al comportament per defecte
sudo nmcli con modify "Perfil 1" ethernet.auto-negotiate yes ethernet.speed 0 ethernet.duplex ""# Treure DNS configurats
sudo nmcli con modify "Perfil 1" ipv4.dns ""
# Treure rutes estàtiques
sudo nmcli con modify "Perfil 1" ipv4.routes ""Els canvis no s’apliquen fins que es reactiva la connexió:
sudo nmcli con down "Perfil 1" && sudo nmcli con up "Perfil 1"O de forma més ràpida:
sudo nmcli con up "Perfil 1"Per configurar la connexió perquè obtingui l’adreça IP automàticament via DHCP:
sudo nmcli con modify "Perfil 1" ipv4.method auto
sudo nmcli con modify "Perfil 1" ipv4.addresses ""
sudo nmcli con modify "Perfil 1" ipv4.gateway ""
sudo nmcli con modify "Perfil 1" ipv4.dns ""Els camps addresses, gateway i dns s’han de buidar explícitament, perquè si method passa a auto, però hi ha valors
estàtics guardats, NetworkManager pot combinar-los o generar
conflictes.
I després reactiva la connexió:
sudo nmcli con up "Perfil 1"Per verificar que ha agafat adreça del DHCP:
nmcli con show "Perfil 1" | grep IP4
# o
ip a show enp2s0