nmcli: Gerenciando Redes pela Linha de Comando

nmcli: Gerenciando Redes pela Linha de Comando

O Que Você Vai Aprender

  • Como verificar o status da rede com nmcli
  • Como conectar ao Wi-Fi e definir um IP estático inteiramente pela linha de comando
  • A diferença entre uma connection (perfil) e um device (hardware), para que suas configurações nunca desapareçam silenciosamente

Resumo Rápido

  • Inspecionar estado -> nmcli device status / nmcli connection show
  • Alterar configurações -> nmcli connection modify <nome> <chave> <valor>
  • Aplicar alterações -> nmcli connection up <nome>
  • As alterações são persistidas em um perfil (sobrevivem a reinicializações)

Pré-requisitos (ambiente alvo)

  • Um sistema Linux executando NetworkManager (Ubuntu Desktop, RHEL, CentOS, Fedora, AlmaLinux, etc.)
  • nmcli vem junto com o NetworkManager. Confirme que está rodando com systemctl status NetworkManager
  • Não aplicável a servidores gerenciados apenas por systemd-networkd ou netplan

O Que é nmcli?

Conclusão: nmcli é o cliente oficial de linha de comando do NetworkManager. Ele cria, edita e persiste configurações de conexão sem GUI.

nmcli (NetworkManager Command Line Interface) é o comando oficial para controlar o NetworkManager, o daemon de gerenciamento de rede padrão na maioria das distribuições. Quase tudo que você pode fazer no painel de rede da GUI pode ser feito com nmcli.

nmcli organiza seu trabalho em torno de "objetos." Estes cinco são os que você mais usará:

Objeto Abreviação Função
connection c Perfil de conexão (a unidade onde as configurações são salvas)
device d Dispositivo de rede físico / virtual
general g Estado geral do NetworkManager
radio r Wi-Fi / WWAN radio ligado/desligado
networking n Alternar toda a rede ligado/desligado

Nomes de objetos podem ser abreviados desde que o prefixo seja único. nmcli connection show pode ser escrito como nmcli c s. Este artigo escreve por extenso para clareza.

Como connection e device diferem?

Conclusão: Um device é hardware de rede real; uma connection é um perfil de configurações aplicado a ele. A persistência fica no lado da connection.

Este é o conceito mais importante no nmcli.

  • device: Uma interface real como eth0, enp3s0 ou wlan0. Reflete o estado atual (conectado ou não, IP atual).
  • connection (perfil): Um arquivo de configurações salvas que diz "configure este dispositivo assim." Fica em /etc/NetworkManager/system-connections/ e sobrevive a reinicializações.

Você pode manter vários perfis (casa, escritório) para um único dispositivo e alternar entre eles com up.

Atribuir um IP diretamente com ip addr add é perdido na reinicialização. Para persistir, você deve editar o perfil de conexão. Esta é a causa clássica de "eu configurei mas a configuração desapareceu."

Como verifico o status da rede?

Conclusão: Use nmcli general status para o sistema inteiro, nmcli device status para dispositivos e nmcli connection show para perfis.

Comece entendendo o estado atual. Executar nmcli sem argumentos imprime detalhes completos para cada dispositivo.

# Estado geral do NetworkManager
nmcli general status

# Lista de dispositivos (estado e perfil ativo)
nmcli device status

# Lista de perfis de conexao
nmcli connection show
DEVICE  TYPE      STATE      CONNECTION
enp3s0  ethernet  connected  Wired connection 1
wlan0   wifi      connected  MyHome-WiFi
lo      loopback  unmanaged  --

Para inspecionar uma conexão ou dispositivo específico, adicione o nome.

# Mostrar todas as configuracoes de um perfil
nmcli connection show "Wired connection 1"

# Detalhes do dispositivo (IP, DNS, rotas, etc.)
nmcli device show enp3s0

Use -f para limitar os campos exibidos. nmcli -f DEVICE,STATE device status facilita o parsing em scripts.

Como conecto ao Wi-Fi?

Conclusão: Liste SSIDs com nmcli device wifi list, depois conecte com nmcli device wifi connect <SSID> password <senha>.

Wi-Fi é um processo de duas etapas: varredura e conexão.

# Varrer e listar redes Wi-Fi proximas
nmcli device wifi list

# Conectar com SSID e senha
nmcli device wifi connect "MyHome-WiFi" password "your-password"

Em caso de sucesso, um perfil de conexão com o mesmo nome é criado automaticamente e reconecta nas inicializações seguintes.

# Alternar o radio em si (como modo aviao)
nmcli radio wifi off
nmcli radio wifi on

Para evitar deixar a senha no histórico do shell, execute com --ask e omita password para ser solicitado interativamente. Tenha cuidado com o histórico em servidores compartilhados.

Como defino um IP estático?

Conclusão: Mude para ipv4.method manual, defina ipv4.addresses / ipv4.gateway / ipv4.dns, depois aplique com connection up.

Esta é a operação que você mais usará em trabalho com servidores. Aqui está o fluxo para mudar de DHCP para IP estático.

# Verificar o nome do perfil (suponha "Wired connection 1" abaixo)
nmcli connection show

# Definir IP estatico, gateway e DNS em um unico comando
nmcli connection modify "Wired connection 1" \
  ipv4.method manual \
  ipv4.addresses 192.168.1.100/24 \
  ipv4.gateway 192.168.1.1 \
  ipv4.dns "8.8.8.8 1.1.1.1"

# Aplicar as alteracoes (reativar o perfil)
nmcli connection up "Wired connection 1"
  • Sempre inclua o comprimento do prefixo em ipv4.addresses, por exemplo /24
  • Para múltiplos servidores DNS, coloque entre aspas uma lista separada por espaços: "8.8.8.8 1.1.1.1"
  • modify não aplica nada por si só. Apenas up aplica as alterações.

Para voltar ao DHCP (automático), defina method como auto.

nmcli connection modify "Wired connection 1" ipv4.method auto
nmcli connection up "Wired connection 1"

Para construir um novo perfil do zero, use connection add.

nmcli connection add type ethernet con-name office-static ifname enp3s0 \
  ipv4.method manual ipv4.addresses 10.0.0.50/24 ipv4.gateway 10.0.0.1

Como ativo e desativo conexões?

Conclusão: nmcli connection up <nome> ativa, down desativa e connection delete remove o perfil completamente.

# Ativar (conectar) um perfil
nmcli connection up office-static

# Desativar (desconectar, configuracoes mantidas)
nmcli connection down office-static

# Excluir um perfil completamente
nmcli connection delete office-static

down apenas desconecta mantendo o perfil, enquanto delete remove o arquivo de configurações em si. Não confunda os dois.

# Desconectar um dispositivo inteiro
nmcli device disconnect enp3s0

# Alternar toda a rede desligado/ligado
nmcli networking off
nmcli networking on

Problemas comuns e soluções

Conclusão: Divida os problemas em "dispositivo não gerenciado," "alterações não aplicadas" e "não consegue conectar" para chegar à causa mais rápido.

Dispositivo aparece como unmanaged

Se nmcli device status reporta unmanaged, aquele dispositivo está fora do controle do NetworkManager. Outro sistema como /etc/netplan/ ou /etc/network/interfaces provavelmente está gerenciando.

# Deixar o NetworkManager gerenciar o dispositivo
nmcli device set enp3s0 managed yes

Modificou mas nada mudou

nmcli connection modify apenas reescreve o perfil. Aplicar ao dispositivo ativo requer up.

nmcli connection up "Wired connection 1"

Não sei a chave da configuração

Há muitas propriedades configuráveis. Liste os valores atuais para encontrar a chave que você precisa.

# Mostrar propriedades relacionadas a ipv4 e valores atuais
nmcli connection show "Wired connection 1" | grep ipv4

Antes de uma alteração arriscada, registre os valores atuais com nmcli connection show <nome> para poder reverter. Em servidores, garanta acesso ao console antes de alterar o IP caso você se desconecte remotamente.

Resumo / Próximas Leituras

nmcli é a ferramenta padrão para gerenciar redes em sistemas com NetworkManager de forma persistente e sem GUI. Uma vez que você entenda a divisão entre device (hardware) e connection (perfil), você pode lidar com verificação de status, Wi-Fi e IPs estáticos com uma abordagem consistente.