Conecte-se ao wifi da linha de comando nos sistemas linux através do iwd (daemon wireless para linux)

1

O iwd é o daemon wireless promissor para o Linux lançado pela Intel e o sucessor do wpasupplicant. O desenvolvimento do iwd ainda está no progresso , mas é empacotado sob alguns distribuição linux Gentoo, Arch-linux, Ubuntu (Cosmic) e Debian (Buster e Sid) ...

A configuração da rede e a conexão são possíveis através do modo interativo usando iwctl , o comando help exibirá a lista dos comandos disponíveis (sem manpage).

Sem usar o modo interativo:

1) Como posso configurar manualmente as credenciais do Wi-Fi?

2) Como posso me conectar ao wi-fi configurado através de iwctl ?

3) Como posso ativar automaticamente a conexão wifi no boot?

    
por GAD3R 24.10.2018 / 13:33

1 resposta

2

1) A partir do modo não interativo, você pode digitalizar e listar os pontos de acesso disponíveis:

iwctl station wlp8s0 scan
iwctl station wlp8s0 get-networks

As credenciais do Wi-Fi são armazenadas em /var/lib/iwd , o nome exato do SSID deve ser usado, o formato:

SSID.psk 

O conteúdo:

[Security]
PreSharedKey=encripted-password
Passphrase=the-plain-txt-password

O arquivo de configuração mínimo deve conter o paswword criptografado de wifi (PreSharedKey)

Para gerar um psk criptografado, você pode usar a ferramenta wpa_passhrase:

wpa_passhrase "My-SSID" passphrase

Há um exemplo usando "Meu SSID" e mysecretpassword :

$ cat My\ SSID.psk
[Security]
PreSharedKey=8e1e64a6ecaf2b5e0aa29816547af300d7f3b0473bbfa56ddb5514ad4683804c

2) Para se conectar a partir do terminal:

iwctl station <INTERFACE> connect "SSID" 

e, g:

iwctl station wlp8s0 connect "My SSID"
dhclient

dhclient pode ser substituído por um comando iproute2 para atribuir um endereço IP a wlp8s0.

3) para ativar automaticamente a conexão Wi-Fi na inicialização, há uma maneira de usar um serviço systemd:

Um script mínimo para se conectar:

$ cat /usr/local/enable-wifi.sh

#!/bin/bash
iwctl station wlan0 connect "My SSID" 
dhclient

Crie um serviço systemd.

$ cat /etc/systemd/system/enable-wifi.service

[Unit]
Before=network.target
Wants=network.target

[Service]
ExecStart=/usr/local/enable-wifi.sh

[Install]
WantedBy=default.target

então:

# chmod 744 /usr/local/enable-wifi.sh
# chmod 664 /etc/systemd/system/enable-wifi.service
# systemctl daemon-reload
# systemctl enable enable-wifi.service

documentação:

wiki do arch-linux: iwd

    
por 24.10.2018 / 13:36