Ubuntu Wi-Fi

Nem todo computador fica perto do roteador com um cabo. Nesta aula você conecta o Ubuntu a uma rede Wi-Fi de três jeitos: pelo menu do GNOME (com o mouse), pelo nmcli (comandos) e pelo nmtui (menus dentro do terminal). No fim, vê como o Ubuntu Server se conecta ao Wi-Fi com o Netplan.

Você vai aprender
  • O que são SSID, senha da rede e "conexão salva".
  • Conectar pelo menu do GNOME e pelas Configurações.
  • Listar redes e conectar com nmcli, inclusive em rede oculta.
  • O que acontece com a senha errada, e como esquecer uma rede.
  • Usar o nmtui e configurar Wi-Fi no servidor com Netplan.
As telas e saídas desta aula são reais

Tudo foi feito num Ubuntu 26.04 de verdade (o "modo de teste" do pendrive, numa máquina virtual), com placas Wi-Fi virtuais que se comportam como as de um notebook. Por isso, o prompt das sessões é ubuntu@ubuntu (o usuário do modo de teste) e a placa se chama wlan0. No seu notebook, ela costuma se chamar wlp2s0 ou parecido. Os detalhes estão em Como o laboratório foi feito.

Se ainda não leu Configurar a Rede, vale começar por lá: ela explica quem gerencia a rede no desktop (o NetworkManager) e no servidor (o Netplan). Se o Wi-Fi nem aparece no seu computador, a aula certa é Wi-Fi que Não Funciona.


Antes de conectar: quatro ideias

TermoO que éNo exemplo
SSIDO nome da rede, o que aparece na lista. Vem de Service Set Identifier.CasaDaAna
BSSIDO endereço físico (MAC) do roteador que transmite a rede. Uma casa com dois roteadores tem um SSID e dois BSSIDs.02:00:00:00:01:00
Senha (chave)A senha do Wi-Fi. Redes WPA2 e WPA3 usam uma senha de 8 a 63 caracteres, também chamada de PSK (pre-shared key, "chave combinada antes").senhadaana123
Conexão salva (perfil)O que o NetworkManager guarda depois que você conecta: nome, senha e configurações. É por causa dela que o notebook reconecta sozinho quando você volta para casa.Conexão CasaDaAna

Quem faz tudo isso no Ubuntu Desktop é o NetworkManager. O menu do GNOME, as Configurações, o nmcli e o nmtui são só jeitos diferentes de dar ordens a ele. Por isso, uma rede conectada pelo menu aparece no nmcli, e vice-versa.


Pelo menu do GNOME

É o jeito do dia a dia. O menu do sistema fica no canto superior direito da tela (os ícones de rede, som e energia). Também abre com Super+S.

  1. Abra o menu do sistema e clique na seta ao lado de Sem fio (Wi-Fi). A lista de redes próximas aparece:

    Menu do sistema do GNOME com a seção Wi-Fi aberta, listando as redes CasaDaAna e Vizinho_2G, com cadeado, e a opção Todas as redes
    Captura real. O cadeado indica rede com senha. "Todas as redes" abre as Configurações.
  2. Clique no nome da rede. Se ela tem senha, o GNOME pergunta:

    Janela Autenticação necessária: Senhas ou chaves criptografadas são necessárias para acessar a rede sem fio CasaDaAna, com o campo Senha e os botões Cancelar e Conectar
    Captura real. O ícone de olho no campo mostra a senha enquanto você digita.
  3. Digite a senha e clique em Conectar. Em alguns segundos, o bloco passa a mostrar o nome da rede, e o ícone de Wi-Fi aparece na barra superior:

    Menu do sistema com o bloco Sem fio (Wi-Fi) mostrando CasaDaAna embaixo, e o ícone de Wi-Fi na barra superior
    Captura real: conectado à CasaDaAna.

E se a senha estiver errada?

O GNOME não mostra uma mensagem de erro: ele simplesmente abre a mesma janela de novo, já com a senha que você digitou. Se a janela "Autenticação necessária" volta logo depois de você clicar em Conectar, a senha está errada. Apague o campo, digite com calma (atenção às maiúsculas) e tente outra vez.

O motivo fica registrado no log do NetworkManager (veja journalctl). Saída real, filtrada com grep:

$ journalctl -u NetworkManager -b | grep "psk mismatch" | head -1
out 16 19:51:35 ubuntu NetworkManager[2048]: <info>  [1792180295.8517] device (wlan0): Activation: (wifi) psk mismatch reported by supplicant, asking for new key

psk mismatch … asking for new key = "a senha não confere… pedindo uma nova chave".


Pelas Configurações: redes salvas e rede oculta

Em Configurações → Wi-Fi (ou "Todas as redes", no menu) você tem mais opções:

Configurações, painel Wi-Fi: chave Wi-Fi ligada, Redes salvas, Conectar a uma rede oculta, Ligar ponto de acesso Wi-Fi, e a lista Redes visíveis com CasaDaAna conectado e Vizinho_2G
Captura real do painel Wi-Fi das Configurações.
ItemPara que serve
Chave Wi-FiLiga e desliga o rádio Wi-Fi.
Redes salvasLista as redes que o computador lembra. É ali que você esquece uma rede.
Conectar a uma rede oculta…Para redes que não aparecem na lista (você digita o nome e a senha).
Ligar ponto de acesso Wi-Fi…Transforma o computador num roteador para outros aparelhos.
Ícone de código QRMostra a senha da rede atual num QR code, para o celular ler.
EngrenagemDetalhes da conexão: IP, DNS, "conectar automaticamente", IP fixo (veja Configurar a Rede).

Pelo terminal: nmcli

nmcli é o NetworkManager command line interface. Ele é útil quando você está num terminal, por SSH, ou quer repetir a mesma configuração em várias máquinas.

1. O Wi-Fi está ligado?

$ nmcli radio
WIFI-HW     WIFI        WWAN-HW  WWAN
habilitado  habilitado  missing  habilitado
ColunaSignificado
WIFI-HWO rádio Wi-Fi existe e não está travado por hardware (chave física, tecla Fn).
WIFIO Wi-Fi está ligado no sistema. desabilitado = desligado pelo menu ou pelo nmcli radio wifi off.
WWAN-HW, WWANModem de celular (4G). missing = não há modem (veja Celular e Modem 4G).

2. Qual é a placa Wi-Fi?

O nmcli device status lista as placas (a tabela completa está no passo 5). Para achar só a do Wi-Fi, filtre com grep (saída real, antes de conectar):

$ nmcli device status | grep wlan0
wlan0          wifi      desconectado            --     « a placa Wi-Fi, ainda sem rede
p2p-dev-wlan0  wifi-p2p  desconectado            --     « Wi-Fi Direct da mesma placa: ignore

No seu computador, troque wlan0 por wifi no grep, porque o nome da placa muda de máquina para máquina. O nome que aparece na primeira coluna é o que você usa nos comandos. Se não aparecer nenhuma linha, vá para Wi-Fi que Não Funciona.

3. Listar as redes

nmcli
O programa.
device
Vamos falar das placas.
wifi
…da parte Wi-Fi delas.
list
Liste as redes que a placa enxerga.
$ nmcli device wifi list
IN-USE  BSSID              SSID        MODE   CHAN  RATE       SIGNAL  BARS  SECURITY
        02:00:00:00:01:01  Vizinho_2G  Infra  6     54 Mbit/s  100     ▂▄▆█  WPA2
        02:00:00:00:01:02  --          Infra  6     0 Mbit/s   100     ▂▄▆█  WPA2   « rede oculta: sem nome
        02:00:00:00:01:00  CasaDaAna   Infra  6     0 Mbit/s   100     ▂▄▆█  WPA2
ColunaSignificado
IN-USEUm * marca a rede em que você está conectado agora.
BSSIDO endereço do roteador. Os 02:00:00:… do laboratório são de placas virtuais.
SSIDO nome da rede. -- significa rede oculta: o roteador transmite, mas não diz o nome.
CHANCanal. De 1 a 13 é a faixa de 2,4 GHz; de 36 em diante, 5 GHz.
RATEVelocidade máxima anunciada. (O 0 Mbit/s é coisa das placas virtuais.)
SIGNAL e BARSForça do sinal, de 0 a 100, e em barrinhas. No laboratório tudo fica perto de 100, porque o "ar" é simulado.
SECURITYTipo de proteção. Vazio = rede aberta, sem senha.

A lista vem da última procura que a placa fez. Se você acabou de ligar o roteador e a rede não aparece, peça uma procura nova com nmcli device wifi rescan (não imprime nada) e liste de novo, ou use nmcli device wifi list --rescan yes.

4. Conectar

nmcli device wifi connect
"Conecte a placa Wi-Fi a uma rede".
CasaDaAna
O SSID, igualzinho à lista (maiúsculas contam). Se tiver espaço, use aspas: "Casa da Ana".
--ask
Pergunte a senha na hora. Assim ela não fica gravada no histórico do terminal.
$ nmcli device wifi connect CasaDaAna --ask
Senhas ou chaves de criptografia são necessárias para acessar a rede sem fio “CasaDaAna”.
Senha (802-11-wireless-security.psk): •••••••••••••          « você digita; aparecem bolinhas
Dispositivo “wlan0” ativado com sucesso com “a7bcb616-f360-4700-b591-3fca36dc8142”.
$ echo $?
0

A última linha diz que a placa wlan0 foi ativada com uma conexão nova, identificada por um código (o UUID). A partir daqui a rede fica salva: das próximas vezes o Ubuntu conecta sozinho, sem perguntar a senha.

Existe a forma curta, com a senha no próprio comando:

$ nmcli device wifi connect CasaDaAna password senhadaana123

Ela funciona e é útil em scripts, mas a senha fica no histórico (history) e aparece para quem estiver olhando a tela. No dia a dia, prefira --ask.

5. Conferir

$ nmcli device status
DEVICE         TYPE      STATE                   CONNECTION
enp0s3         ethernet  conectado               netplan-enp0s3   « a placa de cabo da máquina virtual
wlan0          wifi      conectado               CasaDaAna        « conectado, usando a conexão CasaDaAna
lo             loopback  connected (externally)  lo
p2p-dev-wlan0  wifi-p2p  desconectado            --
veth-lab       ethernet  não gerenciável         --               « peça do laboratório
hwsim0         unknown   não gerenciável         --               « peça do laboratório
$ ip -br a show wlan0
wlan0            UP             192.168.50.144/24 fe80::2ec1:de1a:39ef:5afd/64   « o roteador entregou um IP

Procure a linha com TYPE igual a wifi: conectado e o nome da rede em CONNECTION. No seu computador aparecem só as suas placas: veth-lab e hwsim0 existem apenas no laboratório. Com IP na placa, teste a internet com ping -c 3 ubuntu.com (veja ip, ping, ss).

O que o nmcli devolve

Em scripts, o código de saída (echo $?) diz o que houve. Estes foram os códigos reais do laboratório:

CódigoQuando aparece
0Deu certo.
3Tempo esgotado: por exemplo, a senha estava errada e ninguém digitou outra.
4A ativação falhou (rede fora de alcance, por exemplo).
7Sem permissão (o caso do SSH, mais abaixo).
10Não encontrou o que você pediu: rede, conexão ou placa com esse nome.

Senha errada no nmcli

Com --ask, o nmcli faz como o GNOME: pergunta de novo. Saída real, com uma senha errada:

$ nmcli device wifi connect CasaDaAna --ask
Senhas ou chaves de criptografia são necessárias para acessar a rede sem fio “CasaDaAna”.
Senha (802-11-wireless-security.psk): ••••••••••••
Senhas ou chaves de criptografia são necessárias para acessar a rede sem fio “CasaDaAna”.
Senha (802-11-wireless-security.psk):            « pediu de novo: a primeira estava errada

Digite a senha certa, ou aperte Ctrl+C para desistir. Se ninguém responder, depois de 90 segundos aparece Erro: Tempo limite de 90 seg expirou. e o código 3.

Com a senha escrita no comando (password), não há como perguntar de novo. Saída real:

$ nmcli device wifi connect CasaDaAna password senhaerrada1
Senhas ou chaves de criptografia são necessárias para acessar a rede sem fio “CasaDaAna”.
Aviso: senha para “802-11-wireless-security.psk” não fornecida em “passwd-file” e nmcli não pode solicitar sem a opção “--ask”.
Erro: Tempo limite de 90 seg expirou.
$ echo $?
3

Traduzindo: "a senha não serviu, e sem --ask eu não posso pedir outra". No desktop, enquanto o nmcli espera, a janela "Autenticação necessária" do GNOME também aparece na tela, porque o NetworkManager pede a senha a todos os programas que sabem perguntá-la.

A tentativa errada fica salva

Mesmo quando a senha está errada, o NetworkManager cria a conexão salva. Depois, ao tentar de novo, ele usa a senha errada guardada. Se isso acontecer, esqueça a rede e conecte outra vez.


Rede oculta

Uma rede oculta não anuncia o nome. Ela aparece como -- no nmcli e nem aparece no menu do GNOME. Para entrar, você precisa saber o nome exato. Sem avisar que ela é oculta, o nmcli procura o nome na lista e não acha (saída real):

$ nmcli device wifi connect Escritorio password senhadoescritorio
Erro: nenhuma rede com SSID “Escritorio” foi encontrada.
$ echo $?
10
nmcli device wifi connect
Conectar.
Escritorio
O nome exato da rede oculta.
password senhadoescritorio
A senha (ou troque por --ask).
hidden yes
"Esta rede é oculta": procure-a chamando pelo nome.
$ nmcli device wifi connect Escritorio password senhadoescritorio hidden yes
Dispositivo “wlan0” ativado com sucesso com “e4676b9e-576f-4719-8a50-5dc79415c068”.
$ nmcli -f 802-11-wireless.ssid,802-11-wireless.hidden connection show Escritorio
802-11-wireless.ssid:                   Escritorio
802-11-wireless.hidden:                 sim            « a conexão salva lembra que a rede é oculta

Pelo mouse, o caminho é Configurações → Wi-Fi → Conectar a uma rede oculta….

Ocultar a rede não a protege

Quem usa programas de análise de Wi-Fi descobre o nome de uma rede oculta em minutos. O que protege a rede é uma senha forte com WPA2 ou WPA3.


Conexões salvas

Toda rede em que você entra vira uma conexão salva. Para listar:

$ nmcli connection show
NAME            UUID                                  TYPE      DEVICE
netplan-enp0s3  1eef7e45-3b9d-3043-bee3-fc5925c90273  ethernet  enp0s3
Escritorio      e4676b9e-576f-4719-8a50-5dc79415c068  wifi      wlan0    « em uso agora
lo              d984114d-7891-4bae-8c47-bc84a8ca51a1  loopback  lo
CasaDaAna       a7bcb616-f360-4700-b591-3fca36dc8142  wifi      --       « salva, mas não está em uso

DEVICE com -- quer dizer "salva, mas não está ativa agora". Para ver só as ativas: nmcli connection show --active.

Trocar de rede: down e up

$ nmcli connection down Escritorio
Conexão “Escritorio” desativada com sucesso (caminho D-Bus ativo: /org/freedesktop/NetworkManager/ActiveConnection/16)
$ nmcli connection up CasaDaAna
Conexão ativada com sucesso (caminho D-Bus ativo: /org/freedesktop/NetworkManager/ActiveConnection/17)

O "caminho D-Bus" é um endereço interno do NetworkManager; pode ignorar. O que importa é o "com sucesso".

Quando foi usada e se conecta sozinha

Com -f (fields, "campos") você escolhe as colunas:

$ nmcli -f NAME,AUTOCONNECT,AUTOCONNECT-PRIORITY,TIMESTAMP-REAL connection show
NAME            AUTOCONNECT  AUTOCONNECT-PRIORITY  TIMESTAMP-REAL
netplan-enp0s3  sim          0                     sex 16 out 2026 19:53:49
CasaDaAna       sim          0                     sex 16 out 2026 19:58:51
lo              sim          0                     sex 16 out 2026 19:36:03

AUTOCONNECT sim: conecta sozinha quando a rede estiver ao alcance. Se duas redes salvas estão ao alcance, ganha a de maior AUTOCONNECT-PRIORITY. Para preferir a de casa:

$ nmcli connection modify CasaDaAna connection.autoconnect-priority 10

O modify não imprime nada quando dá certo. Para uma rede salva nunca conectar sozinha, use connection.autoconnect no no lugar da prioridade.

Esquecer uma rede

"Esquecer" é apagar a conexão salva, com senha e tudo:

$ nmcli connection delete Escritorio
A conexão “Escritorio” (e4676b9e-576f-4719-8a50-5dc79415c068) foi excluída com sucesso.

Pelo mouse: Configurações → Wi-Fi → Redes salvas, e o botão de remover ao lado da rede. Esquecer é o remédio para "a senha do roteador mudou e o notebook não conecta mais".

Ver a senha de uma rede salva

Esqueceu a senha do Wi-Fi de casa? O computador lembra. A opção -s (show secrets) mostra os segredos, e -g (get) imprime só o valor pedido:

$ nmcli -s -g 802-11-wireless-security.psk connection show CasaDaAna
senhadaana123

Também dá para usar o ícone de QR code nas Configurações, ou nmcli device wifi show-password, que mostra a senha da rede atual e um QR code no terminal.

Onde a conexão fica guardada

No Ubuntu, o NetworkManager guarda as conexões em arquivos do Netplan, em /etc/netplan/, com nomes que começam com 90-NM- seguido do UUID. Só o root pode ler, porque a senha está ali, em texto. Conteúdo real:

network:
  version: 2
  wifis:
    NM-17ac2344-989c-4f2f-8e10-2994578e5cb5:
      renderer: NetworkManager
      match:
        name: "wlan0"
      dhcp4: true
      dhcp6: true
      access-points:
        "CasaDaAna":
          auth:
            key-management: "psk"
            password: "senhadaana123"
          networkmanager:
            uuid: "17ac2344-989c-4f2f-8e10-2994578e5cb5"
            name: "CasaDaAna"
            passthrough:
              wifi-security.auth-alg: "open"
              ipv6.addr-gen-mode: "default"
              ipv6.ip6-privacy: "-1"
              proxy._: ""
      networkmanager:
        uuid: "17ac2344-989c-4f2f-8e10-2994578e5cb5"
        name: "CasaDaAna"

Não edite esses arquivos à mão: use o nmcli ou as Configurações. Mas repare na estrutura wifis: → access-points: → nome da rede → senha. É a mesma que você vai escrever no Ubuntu Server.

Desligar e ligar o Wi-Fi

$ nmcli radio wifi off
$ nmcli device status
DEVICE         TYPE      STATE                   CONNECTION
enp0s3         ethernet  conectado               netplan-enp0s3
lo             loopback  connected (externally)  lo
wlan0          wifi      não disponível          --        « rádio desligado
p2p-dev-wlan0  wifi-p2p  não disponível          --
veth-lab       ethernet  não gerenciável         --
hwsim0         unknown   não gerenciável         --
$ nmcli radio wifi on

É o mesmo que a chave Wi-Fi das Configurações. Repare no estado não disponível: a placa existe, mas o rádio está desligado.


nmtui: menus no terminal

nmtui (NetworkManager text user interface) mostra menus dentro do terminal. É ótimo quando você não lembra os comandos, e funciona até sem interface gráfica (num TTY, aberto com Ctrl+Alt+F3). Basta digitar:

$ nmtui
Terminal com o nmtui aberto: NetworkManager TUI, Por favor selecione uma opção: Editar uma conexão, Ativar uma conexão, Definir nome de máquina do sistema, Radio, Cancelar, OK
Captura real do menu principal do nmtui.
TeclaFaz
↑ ↓Sobe e desce na lista.
TabPula para o próximo campo ou botão.
EnterEscolhe o item ou aperta o botão.
EscVolta (ou sai).

Em Ativar uma conexão aparecem as redes. O * marca as que estão em uso, e as barrinhas mostram o sinal:

nmtui na tela Ativar uma conexão: Cabeada com netplan-enp0s3 ativa; Sem fio (Wi-Fi) com CasaDaAna ativa e Vizinho_2G; Loopback lo; botões Desativar e Voltar
Captura real. Com uma rede ativa selecionada, o botão vira <Desativar>; numa inativa, <Ativar>.

Escolha uma rede com senha e aperte Enter: o nmtui pergunta a senha numa janelinha.

nmtui com a janela Autenticação requerida pela rede sem fio: Senhas ou chaves de criptografia são necessárias para acessar a rede sem fio Vizinho_2G, campo Senha e botões Cancelar e OK
Captura real da senha no nmtui.

Detalhe real do laboratório: mesmo quando você aperta <Cancelar> nessa janela, a conexão Vizinho_2G fica salva (sem senha). Se isso incomodar, apague-a com nmcli connection delete Vizinho_2G. Em Editar uma conexão você muda IP, DNS e "conectar automaticamente" com os mesmos menus.


Wi-Fi no Ubuntu Server: Netplan

O Ubuntu Server não tem o NetworkManager. A rede é descrita em arquivos YAML em /etc/netplan/ (veja Configurar a Rede), e quem conversa com o Wi-Fi é o wpa_supplicant, chamado pelo Netplan. Servidor com Wi-Fi é comum em casa: um computador antigo ou um Raspberry Pi longe do roteador.

O arquivo

Crie um arquivo novo, por exemplo /etc/netplan/60-wifi.yaml:

network:
  version: 2
  wifis:
    wlan0:
      renderer: networkd
      dhcp4: true
      access-points:
        "CasaDaAna":
          password: "senhadaana123"
ChaveSignificado
wifis:Placas Wi-Fi (para cabo, a chave é ethernets:).
wlan0:O nome da placa, como aparece em ip -br link. No seu servidor pode ser wlp2s0.
renderer: networkdQuem aplica a configuração. No Ubuntu Server o networkd já é o padrão e esta linha é dispensável. No laboratório, que era um desktop, ela foi necessária para imitar o servidor.
dhcp4: truePegue o IP do roteador automaticamente.
access-points:As redes que a placa pode usar ("pontos de acesso").
"CasaDaAna":O SSID, entre aspas.
password:A senha. Para uma rede oculta, acrescente hidden: true no mesmo nível da senha.

Permissões: só o root lê

O arquivo tem a senha do Wi-Fi. Se outros usuários puderem lê-lo, o Netplan reclama (saída real, em inglês):

$ sudo netplan generate

** (configure:17884): WARNING **: 20:06:24.102: Permissions for /etc/netplan/60-wifi.yaml are too open. Netplan configuration should NOT be accessible by others.
$ sudo chmod 600 /etc/netplan/60-wifi.yaml
$ sudo netplan generate          « agora não reclama de nada

"As permissões estão abertas demais. A configuração do Netplan NÃO deve ser acessível por outros." O chmod 600 deixa só o dono (root) ler e escrever (veja chmod).

Aplicar e conferir

$ sudo netplan apply
$ networkctl
IDX LINK     TYPE               OPERATIONAL SETUP
  1 lo       loopback           carrier     unmanaged
  2 enp0s3   ether              routable    unmanaged
  3 wlan0    wlan               routable    configured      « routable: tem IP e rota; configured: o networkd cuida dela
  5 hwsim0   ieee80211_radiotap off         unmanaged
  7 veth-lab ether              routable    unmanaged

5 links listed.
$ ip -br a show wlan0
wlan0            UP             192.168.50.145/24 metric 600 fe80::ff:fe00:0/64

Num servidor remoto, prefira sudo netplan try (volta sozinho se você perder o acesso), como em Configurar a Rede. O netplan status resume tudo de uma placa (saída real):

$ netplan status wlan0
     Online state: online
    DNS Addresses: 127.0.0.53 (stub)
       DNS Search: lan

●  3: wlan0 wifi/"(null)" UP (networkd: wlan0)
      MAC Address: 02:00:00:00:00:00
        Addresses: 192.168.50.145/24 (dynamic, dhcp)
                   fe80::ff:fe00:0/64 (link)
    DNS Addresses: 192.168.50.1
           Routes: default via 192.168.50.1 from 192.168.50.145 metric 600
(dhcp)
                   192.168.50.0/24 from 192.168.50.145 metric 600 (link)
                   192.168.50.1 from 192.168.50.145 metric 600 (dhcp, link)
                   fe80::/64 metric 256

4 inactive interfaces hidden. Use "--all" to show all.

Por trás, o Netplan criou um serviço só para o Wi-Fi dessa placa, o netplan-wpa-wlan0. É no log dele que aparecem os problemas de senha:

$ systemctl status netplan-wpa-wlan0.service --no-pager
● netplan-wpa-wlan0.service - WPA supplicant for netplan wlan0
     Loaded: loaded (/run/systemd/generator.late/netplan-wpa-wlan0.service; generated)
     Active: active (running) since Fri 2026-10-16 20:06:26 UTC; 10s ago
 Invocation: a9e481f7050947d09a7732a916926029
   Main PID: 18304 (wpa_supplicant)
      Tasks: 1 (limit: 3350)
     Memory: 2.2M (peak: 2.5M)
        CPU: 83ms
     CGroup: /system.slice/netplan-wpa-wlan0.service
             └─18304 /sbin/wpa_supplicant -c /run/netplan/wpa-wlan0.conf -iwlan0 -Dnl80211,wext

out 16 20:06:26 ubuntu systemd[1]: Started netplan-wpa-wlan0.service - WPA supplicant for netplan wlan0.
out 16 20:06:26 ubuntu wpa_supplicant[18304]: Successfully initialized wpa_supplicant
out 16 20:06:30 ubuntu wpa_supplicant[18304]: wlan0: SME: Trying to authenticate with 02:00:00:00:01:00 (SSID='CasaDaAna' freq=2437 MHz)
out 16 20:06:30 ubuntu wpa_supplicant[18304]: wlan0: Trying to associate with 02:00:00:00:01:00 (SSID='CasaDaAna' freq=2437 MHz)
out 16 20:06:30 ubuntu wpa_supplicant[18304]: wlan0: Associated with 02:00:00:00:01:00
out 16 20:06:30 ubuntu wpa_supplicant[18304]: wlan0: CTRL-EVENT-SUBNET-STATUS-UPDATE status=0
out 16 20:06:30 ubuntu wpa_supplicant[18304]: wlan0: WPA: Key negotiation completed with 02:00:00:00:01:00 [PTK=CCMP GTK=CCMP]
out 16 20:06:30 ubuntu wpa_supplicant[18304]: wlan0: CTRL-EVENT-CONNECTED - Connection to 02:00:00:00:01:00 completed [id=0 id_str=]   « conectou

Lendo de cima para baixo: tentou autenticar, associou ao roteador, negociou as chaves (Key negotiation completed) e conectou (CTRL-EVENT-CONNECTED). O servidor precisa do pacote wpasupplicant; se o serviço reclamar que o programa não existe, instale-o (por cabo ou pelo celular, veja Celular e Modem 4G).

Senha errada no servidor

Não há janela perguntando nada: a placa fica sem IP. Saída real, com a senha trocada no arquivo:

$ networkctl
IDX LINK     TYPE               OPERATIONAL SETUP
  1 lo       loopback           carrier     unmanaged
  2 enp0s3   ether              routable    unmanaged
  3 wlan0    wlan               no-carrier  configuring     « sem conexão, tentando
  5 hwsim0   ieee80211_radiotap off         unmanaged
  7 veth-lab ether              routable    unmanaged

5 links listed.
$ journalctl -u netplan-wpa-wlan0 -n 8
out 16 20:07:03 ubuntu wpa_supplicant[19335]: wlan0: SME: Trying to authenticate with 02:00:00:00:01:00 (SSID='CasaDaAna' freq=2437 MHz)
out 16 20:07:03 ubuntu wpa_supplicant[19335]: wlan0: Trying to associate with 02:00:00:00:01:00 (SSID='CasaDaAna' freq=2437 MHz)
out 16 20:07:03 ubuntu wpa_supplicant[19335]: wlan0: Associated with 02:00:00:00:01:00
out 16 20:07:03 ubuntu wpa_supplicant[19335]: wlan0: CTRL-EVENT-SUBNET-STATUS-UPDATE status=0
out 16 20:07:07 ubuntu wpa_supplicant[19335]: wlan0: CTRL-EVENT-DISCONNECTED bssid=02:00:00:00:01:00 reason=15
out 16 20:07:07 ubuntu wpa_supplicant[19335]: wlan0: WPA: 4-Way Handshake failed - pre-shared key may be incorrect   « a senha
out 16 20:07:07 ubuntu wpa_supplicant[19335]: wlan0: CTRL-EVENT-SSID-TEMP-DISABLED id=0 ssid="CasaDaAna" auth_failures=1 duration=10 reason=WRONG_KEY
out 16 20:07:07 ubuntu wpa_supplicant[19335]: wlan0: Added BSSID 02:00:00:00:01:00 into ignore list, ignoring for 10 seconds

A linha-chave é 4-Way Handshake failed - pre-shared key may be incorrect: "a troca de chaves falhou, a senha pode estar errada". Logo depois, reason=WRONG_KEY ("chave errada"). Corrija a senha no YAML e rode sudo netplan apply de novo.

Erros de indentação

Em YAML, os espaços do começo da linha dizem o que está dentro do quê. O netplan generate confere o arquivo sem aplicar nada e aponta arquivo:linha:coluna. Duas saídas reais:

$ sudo netplan generate
/etc/netplan/60-wifi.yaml:7:6: Invalid YAML: inconsistent indentation:
     access-points:
     ^
$ echo $?
1

"Indentação inconsistente" na linha 7: o access-points: estava com 5 espaços, e não 6 como o dhcp4: acima dele.

$ sudo netplan generate
/etc/netplan/60-wifi.yaml:8:21: Error in network definition: expected mapping (check indentation)
        "CasaDaAna":
                    ^

Aqui a linha password: estava no mesmo nível de "CasaDaAna":, e não dentro dele. O Netplan esperava uma lista de opções embaixo do nome da rede ("expected mapping") e sugere: "confira a indentação".


Formas diferentes de conectar ao Wi-Fi

FormaOndeQual usar?
Menu do GNOMECanto superior direitoO dia a dia no desktop.
Configurações → Wi-FiJanela de ConfiguraçõesRede oculta, redes salvas, QR code, IP fixo.
nmcliTerminal (também por SSH)Scripts, acesso remoto, repetir a mesma configuração.
nmtuiTerminal ou TTYSem interface gráfica e sem decorar comandos.
Netplan (wifis:)/etc/netplan/*.yamlUbuntu Server.

Quando não funciona

"Insufficient privileges" e "not authorized" por SSH
$ nmcli connection delete CasaDaAna
Erro: Exclusão da conexão falhou: Insufficient privileges
Erro: nem todas as conexões ativas foram excluídas.
$ nmcli device wifi rescan
Erro: org.freedesktop.NetworkManager.wifi.scan request failed: not authorized.

O que aconteceu: estas saídas reais vieram de um acesso por SSH ao desktop. Quem está sentado na frente do computador pode mexer no Wi-Fi sem senha; quem entra pela rede, não. Quem decide isso é o polkit, o "porteiro" das permissões do sistema. "Insufficient privileges" = "permissões insuficientes"; "not authorized" = "não autorizado". O código de saída é 7.

Como resolver: pelo SSH, use sudo: sudo nmcli connection delete CasaDaAna. No terminal da própria máquina, o comando funciona sem sudo.

A janela de senha volta toda hora

O que aconteceu: a senha está errada, ou a conexão salva tem uma senha antiga (o roteador mudou de senha).

Como confirmar: no log do kernel aparece a desconexão "por tempo esgotado na troca de chaves" (saída real, filtrada):

$ sudo dmesg | grep wlan0 | head -7
[  979.141506] wlan0: authenticate with 02:00:00:00:01:00 (local address=02:00:00:00:00:00)
[  979.141521] wlan0: send auth to 02:00:00:00:01:00 (try 1/3)
[  979.142659] wlan0: authenticated
[  979.147198] wlan0: associate with 02:00:00:00:01:00 (try 1/3)
[  979.147850] wlan0: RX AssocResp from 02:00:00:00:01:00 (capab=0x411 status=0 aid=1)
[  979.147933] wlan0: associated
[  983.158661] wlan0: deauthenticated from 02:00:00:00:01:00 (Reason: 15=4WAY_HANDSHAKE_TIMEOUT)   « senha recusada

Como resolver: esqueça a rede (nmcli connection delete NOME) e conecte de novo com --ask, digitando com calma.

"nenhuma rede com SSID … foi encontrada"
$ nmcli device wifi connect CasaDaana password senhadaana123
Erro: nenhuma rede com SSID “CasaDaana” foi encontrada.

O que aconteceu: o nome não bate com nenhuma rede da lista. Aqui, CasaDaana com "a" minúsculo; a rede é CasaDaAna. Também acontece com rede oculta sem hidden yes, ou com a rede fora de alcance.

Como resolver: copie o nome de nmcli device wifi list, use aspas se tiver espaço e, se a rede for oculta, acrescente hidden yes. Se ela não está na lista, chegue mais perto do roteador e rode nmcli device wifi list --rescan yes.

"Não foi possível encontrar a rede Wi-Fi"
$ nmcli connection up Escritorio
Erro: Ativação da conexão falhou: Não foi possível encontrar a rede Wi-Fi
Dica: use “journalctl -xe NM_CONNECTION=83d64d38-0fcb-4add-9e19-497e22310a7e + NM_DEVICE=wlan0” para obter mais detalhes.

O que aconteceu: a conexão salva existe, mas a rede não respondeu a tempo: roteador desligado, longe demais ou reiniciando. No laboratório, isso aconteceu enquanto o "roteador" estava desligado.

Como resolver: confira se outros aparelhos enxergam a rede, espere o roteador terminar de ligar e rode o nmcli connection up de novo. O comando da dica mostra o log só dessa conexão.

Nenhuma rede aparece, ou não existe linha wifi

O que aconteceu: o Wi-Fi está desligado (por software ou por uma tecla/chave), ou a placa não foi reconhecida (falta driver ou firmware).

Como resolver: rode nmcli radio. Se WIFI estiver desabilitado, ligue com nmcli radio wifi on. Se a placa não aparece em nmcli device status, siga a aula Wi-Fi que Não Funciona. Enquanto isso, use a internet do celular pelo cabo USB (Celular e Modem 4G).


Referência

ComandoFaz
nmcli radioMostra se o Wi-Fi está ligado
nmcli radio wifi on|offLiga ou desliga o Wi-Fi
nmcli device statusPlacas e conexão ativa em cada uma
nmcli device wifi listRedes ao alcance (--rescan yes procura de novo)
nmcli device wifi rescanPede uma procura nova
nmcli device wifi connect SSID --askConecta perguntando a senha
nmcli device wifi connect SSID password SENHA hidden yesConecta a uma rede oculta
nmcli device wifi show-passwordMostra a senha e o QR code da rede atual
nmcli connection showConexões salvas (--active: só as ativas)
nmcli connection up|down NOMEAtiva ou desativa uma conexão salva
nmcli connection modify NOME connection.autoconnect-priority 10Dá preferência a uma rede
nmcli connection delete NOMEEsquece a rede
nmcli -s -g 802-11-wireless-security.psk connection show NOMEMostra a senha salva
nmtuiMenus no terminal
sudo netplan generate / try / applyValida, testa e aplica o YAML do servidor
networkctlEstado das placas no servidor (networkd)
journalctl -u netplan-wpa-PLACALog do Wi-Fi no servidor

Exercícios

1. Sem senha no histórico

Complete para conectar à rede e digitar a senha só quando o nmcli perguntar:

nmcli device wifi connect CasaDaAna

2. Rede oculta

Complete para conectar à rede oculta "Escritorio":

nmcli device wifi connect Escritorio password segredo123

3. Esquecer a rede

A senha do roteador mudou. Complete para apagar a conexão salva "CasaDaAna":

nmcli connection CasaDaAna

4. Na saída de nmcli device wifi list, uma linha tem -- na coluna SSID. O que é?

5. Conectado por SSH ao desktop, nmcli connection delete CasaDaAna respondeu "Insufficient privileges". O que fazer?

6. No Netplan do servidor, dentro de qual chave ficam o nome da rede e a senha?


Como o laboratório foi feito

Transparência: a máquina virtual do guia não tem uma placa Wi-Fi de verdade. Para mostrar telas e mensagens reais (e não inventadas), o laboratório foi montado assim:

  • O Ubuntu 26.04 Desktop rodou no modo de teste do pendrive ("Experimentar Ubuntu"), dentro do VirtualBox, com o idioma trocado para português do Brasil.
  • O módulo de testes do kernel mac80211_hwsim criou duas placas Wi-Fi virtuais que conversam por um "ar" simulado: wlan0, a placa "do notebook", e wlan1, o "roteador". O hwsim0 que aparece nas listas é o monitor desse ar simulado.
  • O "roteador" ficou num espaço de rede separado (um network namespace), para o NetworkManager não enxergá-lo. Ele anunciava três redes: CasaDaAna, Vizinho_2G e a oculta Escritorio, e emprestava endereços 192.168.50.x. A ligação dele com a internet é a placa veth-lab, que também aparece nas listas.
  • Tudo nesta aula foi feito na wlan0, com os programas do próprio Ubuntu, sem modificação. A internet chegava de verdade pelo Wi-Fi simulado.
  • Os comandos foram digitados por SSH. Para o SSH ter as mesmas permissões de quem está sentado na frente do computador, o laboratório ganhou uma regra do polkit; antes dela, apareceram as mensagens reais de "Insufficient privileges" mostradas acima.

Por isso, três coisas do laboratório são diferentes do seu computador: as placas se chamam wlan0 (e não wlp2s0), o sinal fica sempre perto de 100, e existem as linhas extras veth-lab e hwsim0.


Resumo

  • O NetworkManager cuida do Wi-Fi no desktop; menu do GNOME, Configurações, nmcli e nmtui mexem nas mesmas conexões salvas.
  • nmcli device wifi list lista; nmcli device wifi connect SSID --ask conecta; hidden yes para rede oculta.
  • Senha errada: a janela (ou a pergunta do --ask) volta. Senha antiga salva: nmcli connection delete e conecte de novo.
  • Por SSH, mudanças no Wi-Fi do desktop precisam de sudo.
  • No servidor: wifis: → placa → access-points: → "SSID": → password:, arquivo com chmod 600, e netplan generate/try/apply.