Ubuntu Configurar a Rede
Ver a rede você já sabe (ip, ping, ss). Agora é hora de mudar: colocar um IP fixo, trocar o DNS e dar nome à máquina. (Conectar ao Wi-Fi tem aula própria: Wi-Fi.) O Ubuntu Desktop usa o NetworkManager (comando nmcli); o Ubuntu Server usa o Netplan (arquivos YAML).
- Quem manda na rede no desktop e no servidor, e por que isso importa.
- Ver o estado da rede e as conexões salvas com
nmcli. - Colocar IP fixo e DNS próprio, pelo
nmclie pelo Netplan. - Mudar o nome da máquina e criar apelidos de nomes no
/etc/hosts.
Uma configuração errada derruba a conexão, e você fica sem acesso. Em servidores, use sempre sudo netplan try (explicado abaixo), que desfaz a mudança sozinho se você não confirmar. Se possível, tenha acesso ao console da máquina.
Quem configura a rede?
No Ubuntu, o kernel faz a rede funcionar, mas quem decide como ela é configurada é um programa gerente. Existem dois, e cada edição do Ubuntu usa um por padrão:
| Ubuntu Desktop | Ubuntu Server | |
|---|---|---|
| Gerente | NetworkManager | systemd-networkd |
| Como você configura | Menu do sistema, Configurações ou nmcli | Arquivos YAML em /etc/netplan/ |
| Bom para | Wi-Fi que muda de lugar, VPN, notebook | IP fixo que nunca muda |
O Netplan fica no meio dos dois: ele lê os arquivos YAML e entrega a configuração ao gerente certo. No desktop, o NetworkManager também guarda as redes que você conecta em arquivos do Netplan, com nomes como 90-NM-….yaml.
$ ls -l /etc/netplan/ total 8 -rw------- 1 root root 648 Jul 5 15:20 50-cloud-init.yaml -rw------- 1 root root 717 Jul 5 15:20 90-NM-e9603303-9d5f-42c1-a5ed-31bf9965a33c.yaml « uma rede salva pelo NetworkManager
No desktop, configure pela interface gráfica ou pelo nmcli, e não edite os arquivos 90-NM-* à mão. No servidor, edite o YAML e aplique com netplan.
nmcli: o NetworkManager pelo terminal
nmcli significa NetworkManager command line interface. Ele organiza tudo em objetos: general (estado geral), device (as placas) e connection (as configurações salvas, como "Wi-Fi de casa").
Estado geral e placas
$ nmcli general status STATE CONNECTIVITY WIFI-HW WIFI WWAN-HW WWAN METERED conectado completa habilitado habilitado faltando habilitado não (adivinhado) « "completa" = tem internet $ nmcli device status DEVICE TYPE STATE CONNECTION wlp2s0 wifi conectado Casa-5GHz « o Wi-Fi está usando a conexão "Casa-5GHz" lo loopback conectado (externamente) lo enp3s0 ethernet não disponível -- « sem cabo
| Coluna | Significado |
|---|---|
CONNECTIVITY | completa: chega à internet. limitada: só à rede local. portal: precisa fazer login numa página (Wi-Fi de hotel). |
DEVICE | A placa (o mesmo nome do ip a). |
CONNECTION | A configuração salva que está ativa naquela placa. |
Wi-Fi e conexões salvas
Listar redes Wi-Fi, conectar, senha errada, rede oculta, esquecer uma rede e o nmtui estão na aula Wi-Fi, com telas e saídas reais. Para esta aula, basta saber que cada rede em que você conecta vira uma conexão salva, com um nome, e que é nela que você muda IP e DNS:
$ nmcli connection show NAME UUID TYPE DEVICE Casa-5GHz e9603303-9d5f-42c1-a5ed-31bf9965a33c wifi wlp2s0 « ativa lo 89a03774-6e3e-4e06-a1f3-4eed9659d0f2 loopback lo Conexão cabeada 1 10f398dd-ff22-3029-85cd-c9c246b92b58 ethernet -- « salva, não ativa Escritório 470f1065-25c9-4860-8031-e54cfde5739e wifi --
Para ligar ou desligar uma conexão salva:
$ nmcli connection down "Casa-5GHz" $ nmcli connection up "Casa-5GHz"
Se o Wi-Fi nem aparece, veja Wi-Fi que Não Funciona; para usar a internet do celular, Celular e Modem 4G.
IP fixo no desktop com nmcli
Por padrão, o roteador entrega o IP por DHCP, e ele pode mudar. Um IP fixo é útil quando outros aparelhos precisam achar o computador sempre no mesmo endereço, como um servidor de arquivos em casa.
Use um IP do mesmo "bairro" do roteador, fora da faixa que o DHCP distribui. Se o roteador entrega de .100 a .200, um bom fixo é 192.168.0.50. A faixa aparece na página de configuração do roteador.
- nmcli connection modify "Casa-5GHz"
- Altera a conexão salva com esse nome.
- ipv4.method manual
- Desliga o DHCP: os valores serão definidos à mão.
- ipv4.addresses 192.168.0.50/24
- O IP fixo e a máscara.
- ipv4.gateway 192.168.0.1
- O roteador.
- ipv4.dns "1.1.1.1 8.8.8.8"
- Os servidores DNS, separados por espaço.
$ nmcli connection modify "Casa-5GHz" ipv4.method manual ipv4.addresses 192.168.0.50/24 ipv4.gateway 192.168.0.1 ipv4.dns "1.1.1.1 8.8.8.8" $ nmcli connection up "Casa-5GHz" « reaplica a conexão para valer a mudança $ ip -br a show wlp2s0 wlp2s0 UP 192.168.0.50/24 fe80::5a1c:3b2d:8e4f:9a10/64 « o IP novo
O modify só grava a configuração. Ela passa a valer quando a conexão é ativada de novo, com connection up.
Voltar para automático (DHCP)
$ nmcli connection modify "Casa-5GHz" ipv4.method auto ipv4.addresses "" ipv4.gateway "" ipv4.dns "" $ nmcli connection up "Casa-5GHz"
Só trocar o DNS, mantendo o DHCP
Muitas vezes você quer o IP automático, mas um DNS diferente do roteador. Use ipv4.ignore-auto-dns yes para o DNS do roteador ser ignorado:
$ nmcli connection modify "Casa-5GHz" ipv4.dns "1.1.1.1 8.8.8.8" ipv4.ignore-auto-dns yes
$ nmcli connection up "Casa-5GHz"
$ resolvectl status wlp2s0 | grep "DNS Servers"
DNS Servers: 1.1.1.1 8.8.8.8
Formas diferentes de configurar a rede no desktop
| Forma | Como | Melhor quando… |
|---|---|---|
| Menu do sistema | Canto superior direito → Wi-Fi | Só quer conectar a uma rede |
| Configurações | Configurações → Wi-Fi (ou Rede) → engrenagem → aba IPv4 | IP fixo ou DNS, com o mouse |
nmtui | Uma tela de menus dentro do terminal | Está num terminal (até no TTY) e não quer decorar opções |
nmcli | Comandos completos | Scripts, acesso por SSH, repetir a mesma configuração |
Netplan: a rede no servidor
No Ubuntu Server, a rede é descrita num arquivo YAML dentro de /etc/netplan/. YAML é um formato de texto em que a indentação (os espaços no começo da linha) define o que está dentro do quê.
O arquivo padrão: DHCP
Depois da instalação, o arquivo costuma pedir DHCP para a placa de cabo:
network:
version: 2
ethernets:
enp3s0:
dhcp4: true
IP fixo
Para fixar o IP, troque o dhcp4: true pelos valores. Cada nível é recuado com 2 espaços; nunca use Tab:
network:
version: 2
ethernets:
enp3s0:
dhcp4: false
addresses:
- 192.168.0.50/24
routes:
- to: default
via: 192.168.0.1
nameservers:
addresses: [1.1.1.1, 8.8.8.8]
| Chave | Significado |
|---|---|
ethernets: enp3s0: | Vamos configurar a placa de cabo enp3s0 (confira o nome com ip -br a). |
dhcp4: false | Sem IP automático no IPv4. |
addresses: | Lista de IPs da placa, com a máscara. |
routes: - to: default via: | O gateway: para qualquer destino, saia por 192.168.0.1. |
nameservers: addresses: | Os servidores DNS. |
gateway4
A chave gateway4: 192.168.0.1 é antiga e o Netplan avisa que ela está obsoleta. Use o bloco routes, como acima.
Aplicar com segurança: netplan try
-
Faça uma cópia do arquivo antes de editar:
$ sudo cp /etc/netplan/50-cloud-init.yaml ~/50-cloud-init.yaml.bak
-
Edite com o nano e salve (Ctrl+O, Enter, Ctrl+X):
$ sudo nano /etc/netplan/50-cloud-init.yaml
-
Teste com
netplan try. Ele aplica a configuração e espera 120 segundos. Se você perder o acesso e não conseguir confirmar, ele volta sozinho para a configuração anterior:$ sudo netplan try Do you want to keep these settings? Press ENTER before the timeout to accept the new configuration Changes will revert in 118 seconds « aperte Enter se a rede continuar ok Configuration accepted.
-
Confira o resultado:
$ ip -br a show enp3s0 enp3s0 UP 192.168.0.50/24 fe80::3ea9:f4ff:fe12:abcd/64 $ ip r | grep default default via 192.168.0.1 dev enp3s0 proto static « "static": veio da configuração fixa
Fora do try, existe o sudo netplan apply, que aplica na hora e sem volta automática. Use-o quando estiver no console da máquina.
Permissões do arquivo
Os arquivos do Netplan podem conter senhas de Wi-Fi, por isso devem ser lidos só pelo root. Se as permissões estiverem abertas, o Netplan avisa. Corrija com:
$ sudo chmod 600 /etc/netplan/*.yaml
Nome da máquina e /etc/hosts
Ver e mudar o nome: hostnamectl
$ hostnamectl
Static hostname: notebook « o nome da máquina
Icon name: computer-laptop
Chassis: laptop 💻
Operating System: Ubuntu 26.04.1 LTS
Kernel: Linux 7.0.0-38-generic
Architecture: x86-64
$ sudo hostnamectl set-hostname estudio
$ hostname
estudio
O prompt só mostra o nome novo quando você abre outro terminal. Atualize também a linha 127.0.1.1 do /etc/hosts com o nome novo, para evitar avisos do sudo.
Apelidos de nomes: /etc/hosts
O arquivo /etc/hosts é uma agenda local que vale antes do DNS. Ele é útil para dar nome a máquinas da sua rede sem configurar um servidor DNS:
127.0.0.1 localhost 127.0.1.1 notebook 192.168.0.50 servidor 192.168.0.31 impressora
$ sudo nano /etc/hosts $ ping -c 1 servidor PING servidor (192.168.0.50) 56(84) bytes of data. « o nome virou o IP do /etc/hosts 64 bytes from servidor (192.168.0.50): icmp_seq=1 ttl=64 time=2.41 ms
Depois disso, ssh ana@servidor funciona sem decorar o IP (veja SSH).
Quando não funciona
$ nmcli connection up "casa-5ghz" Erro: conexão desconhecida “casa-5ghz”.
O que aconteceu: o nome da conexão tem de ser exatamente igual, com maiúsculas e minúsculas.
Como resolver: copie o nome de nmcli connection show. Use aspas quando houver espaço, como em "Conexão cabeada 1".
O que aconteceu: senha errada, ou uma conexão salva antiga com a senha anterior.
Como resolver: veja Senha errada e Esquecer uma rede na aula Wi-Fi.
O que aconteceu: geralmente é erro de indentação no YAML, nome errado da placa (eth0 em vez de enp3s0) ou gateway fora da rede do IP.
Como confirmar: rode sudo netplan generate; ele aponta a linha e a coluna do erro de sintaxe sem aplicar nada. Confira o nome da placa com ip -br a.
Como resolver: pelo console, volte o backup (sudo cp ~/50-cloud-init.yaml.bak /etc/netplan/50-cloud-init.yaml) e rode sudo netplan apply. Da próxima vez, use netplan try.
O que aconteceu: você fixou um IP que o roteador também entregou por DHCP para outro aparelho. A conexão fica caindo e voltando nos dois.
Como resolver: escolha um IP fora da faixa do DHCP do roteador, ou reserve o IP para o MAC do computador na configuração do roteador.
Referência
nmcli
| Comando | Faz |
|---|---|
nmcli general status | Estado geral e conectividade |
nmcli device status | Placas e conexão ativa em cada uma |
nmcli device show PLACA | IP, gateway e DNS de uma placa |
nmcli device wifi … | Wi-Fi: veja a aula Wi-Fi |
nmcli connection show | Conexões salvas |
nmcli connection up|down NOME | Ativa ou desativa |
nmcli connection modify NOME chave valor | Altera (IP, DNS, gateway…) |
nmcli connection delete NOME | Apaga a conexão salva |
nmcli radio wifi on|off | Liga ou desliga o Wi-Fi |
nmtui | Menus no terminal |
netplan
| Comando | Faz |
|---|---|
sudo netplan generate | Valida os arquivos sem aplicar |
sudo netplan try | Aplica com volta automática em 120 s |
sudo netplan apply | Aplica na hora |
sudo netplan get | Mostra a configuração final combinada |
netplan status | Estado das placas segundo o Netplan |
Exercícios
1. Conexões salvas
Complete para listar as conexões salvas:
2. Testar sem medo
Complete para aplicar o Netplan com volta automática se algo der errado:
3. IP manual
Complete para desligar o DHCP da conexão "Casa-5GHz":
4. Você mudou o DNS com nmcli connection modify, mas nada mudou. O que faltou?
5. Num arquivo do Netplan, qual é o erro mais comum que derruba a rede?
Resumo
- Desktop: NetworkManager (
nmcli,nmtui, Configurações). Servidor: Netplan (YAML em/etc/netplan/). connection modify+connection upmuda IP e DNS. O Wi-Fi tem aula própria: Wi-Fi.- No Netplan: 2 espaços de indentação, nunca Tab; gateway no bloco
routes; aplique comsudo netplan try. hostnamectl set-hostnamemuda o nome;/etc/hostscria apelidos que valem antes do DNS.