Como conectar à internet com wpa_supplicant

Ao instalar uma distribuição com uma instalação mínima, você precisa se conectar à internet pela linha de comando. Vou mostrar como conectar usando a ferramenta mais simples, sem todos aqueles programas desnecessários, como NetworkManager, Connman e outras coisas inchadas. Afinal, estamos usando uma instalação mínima; não queremos pacotes de que não precisamos.

Você precisará destes pacotes:

  • wpa_supplicant
  • dhcpcd

Em algumas distribuições eles já vêm instalados por padrão. Mas, caso você não os tenha, instale com os comandos abaixo:

No Arch Linux:

$ sudo pacman -S wpa_supplicant dhcpcd

No Ubuntu:

$ sudo apt install wpa_supplicant dhcpcdp

No Void Linux:

$ sudo xbps-install -S wpa_supplicant dhcpcd

Agora você precisa ativar a interface wireless para se conectar. Para ver qual é sua interface, execute:

$ ip link show

Esse comando provavelmente mostrará duas ou mais interfaces de rede: a loopback e a wireless. A interface de que você precisa deve ser algo como wlp6s0, wlp2s0 ou parecido. Para ativar a interface, execute:

$ sudo ip link set up <interface>

Se você não sabe a qual rede se conectar, pode procurar todas as redes Wi-Fi próximas ao computador com este comando:

$ sudo iw dev <interface> scan | grep SSID

Para se conectar a um Wi-Fi normal (redes WPA-PSK), você precisa gerar o arquivo de configuração com wpa_passphrase.

# wpa_passhprase <SSID> <PASSWORD> >> /etc/wpa_supplicant/wpa_supplicant-<device_name>.conf

Seu arquivo deve ficar assim:

network={
    ssid="SSID"
    #psk="PASSWORD"
    psk=<some_numbers>
}

Se você não quiser que suas senhas de Wi-Fi fiquem armazenadas em texto puro (embora apenas root consiga ver), apague a linha comentada.

Ative o wpa_supplicant para conectar à rede com o seguinte comando:

# wpa_supplicant -B -Dwext -i<interface> -c/etc/wpa_supplicant/wpa_supplicant-<interface>.conf 1>/etc/wpa_supplicant/wpa.log 2>&1 &

Esse comando fará o wpa_supplicant rodar em background e redirecionará a saída (stdout) e stderr para o arquivo wpa.log. Então, se você não conseguir conectar, leia o conteúdo desse arquivo para saber o que está errado.

Agora você precisa iniciar o cliente DHCP para ativar a internet.

$ dhcpcd

Sua internet está configurada e pronta para uso!

Conectar a uma rede com autenticação

Se a rede à qual você está tentando se conectar precisa de autenticação (você precisa conectar com login e senha), apenas os passos acima não funcionarão.

Edite seu arquivo /etc/wpa_supplicant/wpa_supplicant-<device_name>.conf e deixe-o desta forma:

network={
    ssid="SSID"
    eap=LEAP
    identity="<YourLogin>"
    password="<YourPassword>"
}

Conectar automaticamente na inicialização

Talvez você queira sempre conectar automaticamente quando estiver perto do Wi-Fi. Para isso, você precisa dizer ao seu sistema para ativar o DHCP por padrão. Você pode fazer isso com seu sistema de init:

Obs: Se você não sabe o que é isso, provavelmente está usando systemd, que está presente em quase todas as distribuições Linux, como Ubuntu, Mint e derivadas.

Se você está usando systemd como sistema de init:

$ sudo systemctl enable dhcpcd.service

Se você está usando Runit como sistema de init:

# ln -s /etc/sv/dhcpcd /var/service/

Você pode ter quantas redes quiser no arquivo. Quando chegar perto de uma delas, ele conectará automaticamente.