Use o Network-Manager para conectar-se a um ponto de acesso WiFi na linha de comando

25

Gostaria de me conectar a um ponto de acesso sem fio na linha de comando. Idealmente, eu só precisaria do nome do AP. Mas o endereço de hardware também funcionaria.

Eu sei que posso usar nmcli para se conectar a uma conexão de rede gerenciada, mas no meu caso, o ponto de acesso pode não estar configurado para o Network Manager (Veja a diferença entre a saída de nm-tool e nmcli con ).

Exemplo de saída de nmcli :

Auto pwln       3a3d62b1-bbdf-4f76-b4d2-c211fd5cfb03   802-11-wireless [...]  
Wired Network   aa586921-accf-4932-98c4-c873c310f08e   802-3-ethernet [...]  
Cisco-UDP Uni   7f94847b-04dc-40b7-9955-5246fb77cc65   vpn [...]  
T-mobile (D1)   867f345a-cbbf-4bd4-b883-a5e5ae0932f0   gsm  [...]

Exemplo de saída de nm-tool :

State: connected
- Device: eth1  [Auto pwln] ----------------------------------------------------
[...]
  Wireless Access Points (* = current AP)
    *pwln: Infra, [...], Freq 2472 MHz, Rate 54 Mb/s, Strength 80 WPA WPA2
    WLAN:  Infra, [...], Freq 2422 MHz, Rate 54 Mb/s, Strength 20 WPA WPA2

[...]

Como eu me conecto a um ponto de acesso que pode ou não ser conhecido pelo NM?

Extra: Descobrir se a conexão precisa de uma frase secreta e enviá-la na linha de comando também seria ótimo (isto é, seria bom se o administrador da rede não abrisse nenhum diálogo ou erro de chaveiro). o gui)

    
por Stefano Palazzo 19.10.2010 / 20:21

4 respostas

6

Você pode usar cnetworkmanager para isso.

Editar:

Após algumas investigações, fica claro que é impossível executar dois "provedores de configuração de usuário" (um aplicativo escutando em um determinado endereço dbus) ao mesmo tempo, e o cnetworkmanager precisa agir como tal "provedor de configuração" (em menos até que a conexão esteja configurada).

Agora, o que você pode fazer é adicionar as informações para a conexão ao gconf sob a chave /system/networking/connections (você pode fazer isso a partir da linha de comando ou de um script) e usar dbus ou uma ferramenta de linha de comando como cnetworkmanager ou nmcli para se conectar a ele. Talvez você também tenha que adicionar a chave ao chaveiro do usuário primeiro (para evitar popups de senha).

Mas é claro que isso não funcionará em uma área de trabalho que use outro cliente NM do que o nm-applet (por exemplo, o KDE). Você teria que descobrir como fornecer uma configuração para eles também ...

Editar 2:

Parece possível através de org.freedesktop.NetworkManagerUserSettings no sistema DBus, mas isso é tudo mal documentado IMO ...

Você pode querer ler sobre as configurações e sobre o Especificação da interface DBus .

E aqui está um exemplo relevante (talvez você deseja configurar uma conexão de usuário em vez de uma conexão de sistema)

    
por JanC 20.10.2010 / 20:57
11

Você pode fazer isso diretamente usando nmcli , mesmo que a conexão ainda não esteja configurada no Network Manager:

nmcli dev wifi con "myssid" password "myssidpassword"

Se você não quiser ter a senha sem fio armazenada em seu histórico em versões recentes (talvez mais recentes do que as mencionadas abaixo), você pode adicionar --ask para que a nmcli solicite a falta de informações necessárias.

nmcli --ask device wifi connnect "myssid"

Este recurso foi adicionado no Network Manager 0.9.6, então isso só funciona no Ubuntu 12.10 ou posterior.

Você também pode obter uma lista de pontos de acesso disponíveis com:

nmcli dev wifi list
    
por Robie Basak 10.04.2014 / 15:01
2

Você pode usar iwconfig (wifitools) para criptografia wep, ou wpa_supplicant para wpa e wep, você também usa wicd-curses se você está procurando algo mais fácil, boa sorte =)

    
por chilicuil 19.10.2010 / 20:46
1

Você pode verificar o iwconfig e o iwlist:

  • O iwconfig manipula os parâmetros sem fio básicos
  • iwlist permite iniciar varredura e listar freqüências, taxas de bits, chaves de criptografia ...

Existem muitas opções. Confira as Ferramentas sem fio para Linux para saber mais.

    
por Fernando Briano 19.10.2010 / 21:22