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 umdevice(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.)
nmclivem junto com o NetworkManager. Confirme que está rodando comsystemctl status NetworkManager- Não aplicável a servidores gerenciados apenas por
systemd-networkdounetplan
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,enp3s0ouwlan0. 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 statuspara o sistema inteiro,nmcli device statuspara dispositivos enmcli connection showpara 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 comnmcli 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, definaipv4.addresses/ipv4.gateway/ipv4.dns, depois aplique comconnection 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" modifynão aplica nada por si só. Apenasupaplica 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,downdesativa econnection deleteremove 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.