Como abrir uma interface wi-fi a partir de uma linha de comando?

25

Eu não consigo descobrir como trazer corretamente o cartão wi-fi no meu laptop. Quando eu ligo e edito

$ sudo iwconfig wlan0 txpower auto
$ sudo iwlist wlan0 scan
wlan0     Interface doesn't support scanning : Network is down

relata que a rede está inativa. Tentando fazê-lo falhar também:

$ sudo ifup wlan0
wlan0     no private ioctls.

Failed to bring up wlan0.

Aparentemente estou perdendo um comando básico de baixo nível iw... .

Quando emito dhclient na interface:

$ sudo dhclient -v wlan0
Internet Systems Consortium DHCP Client 4.2.2
Copyright 2004-2011 Internet Systems Consortium.
All rights reserved.
For info, please visit https://www.isc.org/software/dhcp/

^C$

e interrompê-lo, ele traz o dispositivo de alguma forma e, em seguida, a digitalização etc. funciona. Eu gostaria de evitar esse passo obviamente supérfluo.

    
por Petr Pudlák 15.09.2013 / 18:25

3 respostas

23

De fato, tente sudo ifconfig wlan0 up . Para elaborar a resposta de Martin:

Os comandos

ifup e ifdown fazem parte do pacote ifupdown , que agora é considerada uma interface legada para configuração de rede , em comparação com as mais recentes, como network manager .

Após o ifup ifupdown ler as configurações de /etc/network/interfaces ; ele executa os scripts pre-up , post-up e post-down de /etc/network , que incluem a inicialização /etc/wpasupplicant/ifupdown.sh que processa opções de configuração wpa-* adicionais para wpa wifi, em /etc/network/interfaces (consulte zcat /usr/share/doc/wpasupplicant/README.Debian.gz para documentação). Para o WEP wireless-tools package desempenha um papel semelhante ao wpa-supplicant . iwconfig é de wireless-tools também.

ifconfig ao mesmo tempo é uma ferramenta de nível inferior , que é usada por ifupdown e permite mais flexibilidade. Por exemplo, existem 6 modos de funcionamento do adaptador wifi e IIRC ifupdown abrange apenas o modo gerenciado (+ modo de roaming, que formalmente não é o modo?). Com iwconfig e ifconfig você pode ativar monitore o modo da sua placa wireless, enquanto com ifupdown você não poderá fazer isso diretamente.

    
por 15.09.2013 / 22:38
10

Experimente ifconfig wlan0 up em vez de ifup .

    
por 15.09.2013 / 18:59
3

Veja o que eu uso para me conectar a um ponto de acesso WEP, diariamente:

#!/bin/bash

DEV=$(iw dev | awk '/Interface/ {interf=$2} END {print interf}')
PIDFILE=/var/run/dhcpcd-$DEV.pid


if [[ -f $PIDFILE ]] && kill -0 $(cat /var/run/dhcpcd-$DEV.pid)
then
    dhcpcd -k $DEV
fi

ifconfig $DEV down
sleep 1
iwconfig $DEV mode managed
iwconfig $DEV  key blabfoobar
ifconfig $DEV up
iwconfig $DEV essid 'Unindicted Co-conspirator'
iwconfig $DEV ap 00:0D:51:EB:E5:1E

sleep 5
dhcpcd --noipv6rs --noarp $DEV

Você terá que colocar o ESSID e o MAC para o ponto de acesso desejado.

É um pouco mais difícil para a criptografia WPA. Você precisa ter um arquivo wpa_supplicant.conf com uma entrada apropriada. Assim:

# Simple case: WPA-PSK, PSK as an ASCII passphrase, allow all valid ciphers
network={
    ssid="FaveCoffeeHouse"
    psk="cafe241800"
    priority=1
}

Depois de ter esse arquivo conf, você pode executar este script:

#!/bin/bash

DEV=$(iw dev | awk '/Interface/ {print $2}')

ifconfig $DEV down
iwconfig $DEV mode managed
ifconfig $DEV up
iwconfig $DEV essid 'FaveCoffeeHouse'
iwconfig $DEV ap 00:21:1e:3d:2a:80

echo now run: wpa_supplicant -Dnl80211 -i$DEV -c./wpa_supplicant.conf 

Atualização, 2014-12-03:

Arch linux sendo o que é, meu script connect-to-WEP é muito diferente. Eu pensei em adicioná-lo a essa resposta para mantê-lo atualizado.

#!/bin/bash

DEV=wlp12s0

if [[ -f /run/dhcpcd-$DEV.pid ]]
then
        kill -QUIT $(cat /run/dhcpcd-$DEV.pid)
fi

ifconfig $DEV down
iw dev $DEV set type managed
ifconfig $DEV up
sleep 2

iw dev wlp12s0 connect -w 'Akond of Swat' 2462 00:7c:41:eb:e5:1e key 0:befedade

sleep 15

dhcpcd -4 --nohook 10-wpa_supplicant --noarp --noipv6rs $DEV

Eu tive que mudar para usar iw muito de repente. Algo sobre o kernel Arch LTS, ou os drivers WiFi (meu laptop tem uma placa Intel WiFi usando o driver "iwl4965") mudou há pouco tempo. Você terá que alterar a frequência ("2462") e o endereço MAC do ponto de acesso para que isso funcione.

    
por 15.09.2013 / 23:53