nmcli: Gerenciando Redes pela Linha de Comando

nmcli: Gerenciando Redes pela Linha de Comando

O Que Voce Vai Aprender

  • Como verificar o status da rede com nmcli
  • Como conectar ao Wi-Fi e definir um IP estatico inteiramente pela linha de comando
  • A diferenca entre uma connection (perfil) e um device (hardware), para que suas configuracoes nunca desaparecam silenciosamente

Resumo Rapido

  • Inspecionar estado -> nmcli device status / nmcli connection show
  • Alterar configuracoes -> nmcli connection modify <nome> <chave> <valor>
  • Aplicar alteracoes -> nmcli connection up <nome>
  • As alteracoes sao persistidas em um perfil (sobrevivem a reinicializacoes)

Pre-requisitos (ambiente alvo)

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

O Que e nmcli?

Conclusao: nmcli e o cliente oficial de linha de comando do NetworkManager. Ele cria, edita e persiste configuracoes de conexao sem GUI.

nmcli (NetworkManager Command Line Interface) e o comando oficial para controlar o NetworkManager, o daemon de gerenciamento de rede padrao na maioria das distribuicoes. Quase tudo que voce pode fazer no painel de rede da GUI pode ser feito com nmcli.

nmcli organiza seu trabalho em torno de "objetos." Estes cinco sao os que voce mais usara:

Objeto Abreviacao Funcao
connection c Perfil de conexao (a unidade onde as configuracoes sao salvas)
device d Dispositivo de rede fisico / 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 unico. nmcli connection show pode ser escrito como nmcli c s. Este artigo escreve por extenso para clareza.

Como connection e device diferem?

Conclusao: Um device e hardware de rede real; uma connection e um perfil de configuracoes aplicado a ele. A persistencia fica no lado da connection.

Este e o conceito mais importante no nmcli.

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

Voce pode manter varios perfis (casa, escritorio) para um unico dispositivo e alternar entre eles com up.

Atribuir um IP diretamente com ip addr add e perdido na reinicializacao. Para persistir, voce deve editar o perfil de conexao. Esta e a causa classica de "eu configurei mas a configuracao desapareceu."

Como verifico o status da rede?

Conclusao: 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 conexao ou dispositivo especifico, 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?

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

Wi-Fi e um processo de duas etapas: varredura e conexao.

# 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 conexao com o mesmo nome e criado automaticamente e reconecta nas inicializacoes seguintes.

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

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

Como defino um IP estatico?

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

Esta e a operacao que voce mais usara em trabalho com servidores. Aqui esta o fluxo para mudar de DHCP para IP estatico.

# 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 multiplos servidores DNS, coloque entre aspas uma lista separada por espacos: "8.8.8.8 1.1.1.1"
  • modify nao aplica nada por si so. Apenas up aplica as alteracoes.

Para voltar ao DHCP (automatico), 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 conexoes?

Conclusao: 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 configuracoes em si. Nao 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 solucoes

Conclusao: Divida os problemas em "dispositivo nao gerenciado," "alteracoes nao aplicadas" e "nao consegue conectar" para chegar a causa mais rapido.

Dispositivo aparece como unmanaged

Se nmcli device status reporta unmanaged, aquele dispositivo esta fora do controle do NetworkManager. Outro sistema como /etc/netplan/ ou /etc/network/interfaces provavelmente esta 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"

Nao sei a chave da configuracao

Ha muitas propriedades configuraveis. Liste os valores atuais para encontrar a chave que voce precisa.

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

Antes de uma alteracao 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 voce se desconecte remotamente.

Resumo / Proximas Leituras

nmcli e a ferramenta padrao para gerenciar redes em sistemas com NetworkManager de forma persistente e sem GUI. Uma vez que voce entenda a divisao entre device (hardware) e connection (perfil), voce pode lidar com verificacao de status, Wi-Fi e IPs estaticos com uma abordagem consistente.