Como conectar e desconectar uma rede manualmente no terminal?

93

Como o gerente de rede está me incomodando tanto, quero substituí-lo (possivelmente wicd ou NM de ppa: volanin ).

Eu não sei como conectar e desconectar a rede através do terminal sem usar o gerenciador de rede.

Eu gostaria de um modo de linha de comando para gerenciar a rede.

    
por user7048 07.12.2010 / 21:59

4 respostas

116

Isso se aplica ao 12.04+, já que esses são os que eu pude testar, mas também podem ser usados em versões mais antigas. Eu separei este guia em várias partes, que consistem em:

Parte 1 - Roteadores sem fio sem senha ou chave WEP

Parte 2 - Roteadores sem fio com chave WPA

  • Parte 2.1 - Conectando-se a um roteador WPA com wpa_supplicant
  • Parte 2.2 - Conectando-se a um roteador WPA com o Network Manager

Parte 3 - Conexão Fácil Via nmcli

Parte 4 - Desconectando-se de um roteador sem fio

Parte 5 - Excluindo uma conexão (incluindo o arquivo de configuração)

Parte 6 - Conexão automática ao efetuar login em

Bônus - Como encontrar o nome da sua interface de rede via GUI

As seguintes linhas de comando podem ser usadas para conectar e desconectar, dependendo das configurações da placa sem fio, da segurança sem fio e do roteador sem fio. Antes de prosseguir, verifique se o serviço de rede está habilitado (para casos em que você pode iniciar o Ubuntu usando o modo de recuperação):

Dependendo da versão do Ubuntu, você precisará iniciá-lo usando uma das seguintes formas:

Se estiver usando o modo legacy init.d:

sudo /etc/init.d/networking restart

Se você estiver usando a maneira herdada do Upstart:

sudo service network-manager restart

Se estiver usando o SystemD:

sudo systemctl start networking

1. ROUTER SEM FIO (NENHUMA SENHA OU SEGURANÇA WEP SOMENTE)

Para casos em que o roteador sem fio não possui senha ou segurança WEP, faça o seguinte:

  1. Abra o terminal e procure pela conexão sem fio:

    iwlist wlan0 s  
    

    (O s é para o Scan. wlan0 é meu cartão sem fio, mas poderia ser diferente para cada usuário. Alguns têm eth0, outros wlan2 .. Você precisa de sudo para executar esta opção.Para descobrir o nome da sua placa sem fio, simplesmente digite iwlist e pressione TAB . Isso deve preencher automaticamente a linha com o nome da placa de rede. Você também pode digitar iwconfig e encontrar o nome na lista que irá mostrar.)

    Se você não souber o nome dos seus dispositivos sem fio, digite: iwconfig , que exibirá seus dispositivos com / sem fio e seus nomes. Eles podem ser algo como wlan0, wlan1, eth1, eth2 ..

  2. A pesquisa mostrará todos os pontos de acesso (AP) possíveis visíveis para você. Depois de ver seu roteador na lista, tente se conectar a ele:

    Se não tiver uma senha, faça o seguinte:

    iwconfig wlan0 essid NAME_OF_ACCESS_POINT  
    

    Por exemplo

    iwconfig wlan0 essid CYREX  
    

    Depois disso, certifique-se de usar dhclient para que você possa obter um IP dinâmico, caso não seja atribuído um pelo roteador. Isso deve deixá-lo conectado ao roteador CYREX.

    Se tiver uma senha, faça:

    iwconfig wlan0 essid CYREX key PASSWORD
    

    Isso deve se conectar usando a PALAVRA DE PASSE que você deu lá.

    Novamente, faça dhclient depois de se conectar para garantir que você tenha um IP atribuído.

  3. Certificar-se de que você está conectado corretamente é sempre bom, então execute iwconfig para ter certeza de que sua placa wireless está conectada ao SSID que você mencionou acima. Ele deve mostrar seu dispositivo conectado e o IP atribuído a você. Se isso não acontecer e você receber um erro como Interface não suporta varredura , tente as duas opções a seguir:

    • Teste se sua interface é UP: sudo ifconfig wlan0 up

    • Tente adicionar sudo ao fazer a verificação: sudo iwlist wlan0 s

    • Tente desativar o dispositivo e, em seguida, faça o backup:

      sudo ifconfig wlan0 down  
      sudo ifconfig wlan0 up
      

2. ROUTER SEM FIO (SEGURANÇA WPA ou WPA2)

Para casos em que o roteador sem fio tem uma senha WPA / WPA2, existem algumas maneiras de fazer isso. Vou mencionar os dois mais populares ::

  1. Abra o terminal e procure pela conexão sem fio:

    iwlist wlan0 s  
    

    (O s é para o Scan. wlan0 é meu cartão sem fio, mas poderia ser diferente para cada usuário. Alguns têm eth0, outros wlan2 .. Você precisa de sudo Para descobrir o nome da sua placa sem fio, simplesmente digite iwlist e pressione TAB . Isso deve preencher automaticamente a linha com o nome da placa de rede. Você também pode digitar iwconfig e encontrar o nome na lista que irá mostrar.)

    Se você não souber o nome dos seus dispositivos sem fio, digite: iwconfig , que exibirá seus dispositivos com / sem fio e seus nomes. Eles podem ser algo como wlan0, wlan1, eth1, eth2 ..

  2. A pesquisa mostrará todos os pontos de acesso (AP) possíveis visíveis para você. Depois de ver seu roteador na lista, tente se conectar a ele:

2.1 GUIA DE SUPORTE À WPA

  1. Digite o seguinte no terminal (Supondo que você tenha o pacote wpasupplicant instalado, que instala todos os comandos necessários que usaremos aqui):

    wpa_passphrase SSID PASSWORD > CONFIG_FILE
    

    Exemplo: wpa_passphrase Virus LinuxFTW > wpa.conf

    Onde Virus é o nome do meu roteador, LinuxFTW é minha senha e wpa.conf é o arquivo no qual quero armazenar todas essas informações.Observe que você pode salvar o arquivo em outro local, muitos usuários salvam o arquivo em /etc/wpa_supplicant.conf em vez de wpa.conf . Os dados do arquivo wpa.conf devem ser assim:

    network={  
            ssid="Virus"  
            #psk="LinuxFTW"  
            psk=1d538d505f48205589ad25b2ca9f52f9cbb67687e310c58a8dd940ccc03fbfae  
    }  
    
  2. Até este ponto, devemos saber o nome da nossa interface de placa wireless (por exemplo: Wlan0, eth2, Wlan2 ...). Agora precisamos saber qual driver está em uso. para isso, digitamos:

    wpa_supplicant
    

    Ele deve nos mostrar muitas informações, mas haverá uma seção chamada ** Drivers *, que mostra todos os drivers disponíveis (Eles estão disponíveis ao compilar wpa_supplicant ). No meu caso é assim:

    drivers:  
      wext = Linux wireless extensions (generic)  
      nl80211 = Linux nl80211/cfg80211  
      wired = Wired Ethernet driver  
      none = no driver (RADIUS server/WPS ER)  
    

    A lista completa é hostap, hermes, madwifi, wext, broadcom, wired, roboswitch, bsd, ndis. Isso pode mudar dependendo de como wpa_supplicant foi compilado, mas o que mostra para mim deve ser semelhante ao do seu sistema. A maioria dos usuários selecionará o driver wext .

  3. Portanto, agora que temos o nome da nossa placa de interface sem fio e o nome do driver, procedemos à conexão usando o arquivo de configuração já criado usando o seguinte formato:

    wpa_supplicant -iINTERFACE_NAME -cCONFIGURATION_FILE -DDRIVER_NAME
    

    Por exemplo:

    wpa_supplicant -iwlan0 -c/etc/wpa_supplicant.conf -Dwext
    

    Onde -i é o nome da sua placa de interface, -c é onde está o seu arquivo de configuração e -D é o nome do driver que você usará para se conectar. Se ele se conectar corretamente, então pressionar CTRL + C para cancelá-lo e então executar a linha novamente, mas desta vez nós o enviaremos para o background com -B para que possamos continue a usar o terminal:

    wpa_supplicant -B -iwlan0 -c/etc/wpa_supplicant.conf -Dwext  
    

    Depois disso, basta fazer um sudo dhclient wlan0 para obter um IP do roteador.

  4. Alguns usuários relataram remover o hash e deixar apenas a senha na configuração, por exemplo:

         network={  
                ssid="Virus"  
                psk="LinuxFTW"  
        }  
    

    Outros adicionaram o ssid_scan ao arquivo de configuração:

        network={  
                ssid="Virus"
                scan_ssid=1  
                #psk="LinuxFTW"  
                psk=1d538d505f48205589ad25b2ca9f52f9cbb67687e310c58a8dd940ccc03fbfae  
        }  
    

    Ou até mesmo adicionando o tipo de chave:

        network={  
                ssid="Virus"
                scan_ssid=1  
                key_mgmt=WPA-PSK
                #psk="LinuxFTW"  
                psk=1d538d505f48205589ad25b2ca9f52f9cbb67687e310c58a8dd940ccc03fbfae  
        }  
    

    Mais informações sobre isso em man wpa_supplicant.conf

2.2 GUIA DO GERENCIADOR DE REDE

A coisa boa sobre o gerenciador de rede é que ele vem com alguns scripts e ferramentas legais. Duas delas são nmcli e create_connection (script Neat Python 3) que usaremos neste caso.

  1. Após executar as etapas mencionadas anteriormente para encontrar o nome SSID do seu roteador (lembre-se da parte sobre iwlist acima), fazemos o seguinte:

    sudo /usr/share/checkbox/scripts/create_connection -S SECURITY_TYPE -K PASSWORD SSID_NAME
    

    Onde SECURITY é o tipo de segurança que o Roteador usa (WPA, WEP), PASSWORD é .. well..the senha e SSID_NAME é o nome SSID do Roteador. Por exemplo:

    sudo /usr/share/checkbox/scripts/create_connection -S wpa -K LinuxFTW Virus
    

    Criará uma conexão para o Network Manager, que deve se parecer com isso:

      [email protected]:~$ sudo /usr/share/checkbox/scripts/create_connection -S wpa -K LinuxFTW Virus
      [sudo] password for cyrex: 
      Connection Virus registered
      Connection Virus activated.
    
  2. Depois disso, você deve obter um IP atribuído pelo roteador. Se não simplesmente, use sudo dhclient wlan0 (Assumindo que wlan0 é o nome da sua interface). Você também pode verificar as conexões do seu gerenciador de rede usando o nmcli assim: nmcli c que deve mostrar algo assim:

     [email protected]:~$ nmcli c
      NAME                      UUID                                   TYPE              TIMESTAMP-REAL                    
      Xcentral                  f51a5a64-8a91-47d6-897c-28efcd84d2b0   802-11-wireless   Fri 22 Mar 2013 02:25:54 PM VET   
      Realtek                   9ded7740-ad29-4c8f-861f-84ec4da87f8d   802-3-ethernet    Tue 05 Mar 2013 01:18:31 AM VET   
      Intel                     e25b1fd8-c4ff-41ac-a6bc-22620296f01c   802-3-ethernet    Fri 05 Apr 2013 10:04:05 PM VET   
      Virus                     3f8ced55-507b-4558-a70b-0d260441f570   802-11-wireless   Tue 09 Apr 2013 06:31:10 AM VET   
    

Eu mencionei o modo do Network Manager porque há alguns casos em que usar wpa_supplicant simplesmente não funcionará (Problemas entre roteador e placa wireless, problemas de segurança, etc.). No meu caso, todas as tentativas de usar wpa_supplicant em um PC não funcionaram, mas em outro funcionou na primeira vez que tentei. Então, estou postando os dois métodos para ajudar em cada caso e para facilitar aos usuários decidirem qual deles eles querem.

3. Conexão Fácil via nmcli

Embora tenhamos falado sobre as maneiras de se conectar a ele sem um gerenciador de rede, também há o caso de usar o nmcli (versão CLI do gerenciador de rede) quando ele se aplica. Para fazer isso, fazemos o seguinte:

  1. Verifique para ver qual ESSID podemos ver:

    nmcli dev wifi
    
  2. Verifique o nome do ESSID e continuamos a usá-lo na próxima linha, incluindo a senha necessária para ele (isso inclui senhas do tipo WEP e WPA):

    nmcli dev wifi connect ESSID_NAME password ESSID_PASSWORD
    

    Aqui está um exemplo de conexão com o ESSID Linux5G

Se você tiver vários dispositivos sem fio em seu computador, você pode especificar qual deles usar usando o parâmetro ifname da seguinte forma:

nmcli dev wifi connect ESSID_NAME password ESSID_PASSWORD ifname WIRELESS_DEVICE_NAME

Por exemplo, no meu caso, o nome do dispositivo é wlp9s0 , então eu usaria essa linha para especificar o dispositivo que eu usarei para me conectar:

Mais informações sobre o nmcli podem ser obtidas usando o parâmetro help. Por exemplo, se você quiser saber sobre nmcli dev , digite nmcli dev help . Se você quiser saber mais sobre nmcli dev wifi , digite nmcli dev wifi help e assim por diante.

4. DESCONECTANDO DE UM ROUTER SEM FIO

Existem várias maneiras de realizar isso:

  • Desconecte por "force": sudo ifconfig wlan0 down

    Isso desligará a interface da placa sem fio (o driver desliga). Para ativar, basta digitar ifconfig wlan0 up seguido por sudo dhclient wlan0 . Ele ainda será mostrado como conectado se for visualizado pelo Network Manager, mas na verdade não haverá conexão com o roteador.A tentativa de ping lançará um erro connect: Network is unreachable .

  • Liberar o IP do DHCP: sudo dhclient -r wlan0

    Lembre-se de fazer sudo dhclient wlan0 para se atribuir um IP novamente.

  • Desconectar usando o Network Manager: nmcli nm enable false

    Onde nm é o parâmetro do nmcli que gerencia e define os estados do Network Manager. A opção enable pode ser true ou false , o que significa que, se definida como false , todas as conexões de rede gerenciadas pelo Network Manager serão desconectadas. note que o nmcli não precisa de permissões de root.

Para ver o status do Network Manager, digite nmcli nm , ele deve mostrar algo semelhante a isto:

      [email protected]:~$ nmcli nm
      RUNNING         STATE           WIFI-HARDWARE   WIFI       WWAN-HARDWARE   WWAN      
      running         connected       enabled         enabled    enabled         enabled   

Outra maneira de ligar ou desligar a Conexão (Conexão / Desconexão) é fazendo o seguinte:

nmcli c down id NAME' - Will disconnect the connection NAME  

nmcli c up id NAME' - Will connect the connection NAME

5. APAGANDO UMA CONEXÃO

Para excluir uma conexão existente é bastante fácil. Primeiro digite o terminal:

nmcli c

Será produzido algo assim:

[email protected]:~$ nmcli c
NAME                      UUID                                   TYPE              TIMESTAMP-REAL                    
Realtek                   9ded7740-ad29-4c8f-861f-84ec4da87f8d   802-3-ethernet    Tue 05 Mar 2013 01:18:31 AM VET   
PrivateSys                86b2b37d-4835-44f1-ba95-46c4b747140f   802-11-wireless   Sun 21 Apr 2013 07:52:57 PM VET   
pepe                      9887664b-183a-45c0-a81f-27d5d0e6d9d8   802-11-wireless   Thu 18 Apr 2013 02:43:05 AM VET   
Virus                     3f8ced55-507b-4558-a70b-0d260441f570   802-11-wireless   Tue 16 Apr 2013 11:33:24 AM VET   
Intel                     e25b1fd8-c4ff-41ac-a6bc-22620296f01c   802-3-ethernet    Sun 21 Apr 2013 08:12:29 PM VET   
Xcentral                  f51a5a64-8a91-47d6-897c-28efcd84d2b0   802-11-wireless   Fri 22 Mar 2013 02:25:54 PM VET  

Agora digamos que queremos excluir o Xcentral e, em seguida, prosseguir com o seguinte comando:

nmcli c delete id Xcentral

Depois de fazer isso, deve ser algo assim:

[email protected]:~$ nmcli c delete id Xcentral
[email protected]:~$ nmcli c
NAME                      UUID                                   TYPE              TIMESTAMP-REAL                    
Realtek                   9ded7740-ad29-4c8f-861f-84ec4da87f8d   802-3-ethernet    Tue 05 Mar 2013 01:18:31 AM VET   
PrivateSys                86b2b37d-4835-44f1-ba95-46c4b747140f   802-11-wireless   Sun 21 Apr 2013 07:52:57 PM VET   
pepe                      9887664b-183a-45c0-a81f-27d5d0e6d9d8   802-11-wireless   Thu 18 Apr 2013 02:43:05 AM VET   
Virus                     3f8ced55-507b-4558-a70b-0d260441f570   802-11-wireless   Tue 16 Apr 2013 11:33:24 AM VET   
Intel                     e25b1fd8-c4ff-41ac-a6bc-22620296f01c   802-3-ethernet    Sun 21 Apr 2013 08:12:29 PM VET   

Todas as conexões são armazenadas em /etc/NetworkManager/system-connections/

Se eu olhasse nessa pasta agora, veria os seguintes arquivos:

[email protected]:~$ ls /etc/NetworkManager/system-connections
Intel  pepe  PrivateSys  Realtek  Virus

Isso é apenas para o caso de você desejar editar / excluir / adicionar uma conexão manualmente.

6. Conexão sem fio automática no login

Para casos em que você gostaria de fazer login automaticamente em um roteador sem fio, veja as etapas:

  1. Abra o arquivo interface :

    sudo nano /etc/network/interfaces
    
  2. Adicione as seguintes informações (Assumindo que sua interface é chamada wlan0):

    auto wlan0
    iface wlan0 inet static
    address ASSIGNED_IP
    netmask 255.255.255.0
    gateway THE_GATEWAY
    wireless-essid YOURSSID
    wireless-key WIRELESSKEY_HERE
    
  3. Salve o arquivo e reinicie o computador. Observe que isso será salvo em um arquivo de texto simples que pode ser acessado no mesmo computador.

BÔNUS

Encontre o nome da interface sem fio no estilo da GUI

  1. Clique no Gerenciador de rede e vá para Informações de conexão

  1. Ir para o separador que contém o seu cartão sem fios

Nesta imagem, esta placa de rede é denominada eth1 (dentro dos parênteses), mas isso pode ser diferente para cada usuário. Normalmente seria um wlan (como wlan0, wlan1, wlan2 ...) mas também pode ser eth1, eth2, etc. Então você precisa ver o nome que tem.

Outra maneira de encontrar o nome rapidamente é digitar iwconfig , que mostrará toda a placa de rede sem fio disponível.

    
por Luis Alvarado 07.12.2010 / 22:26
32

É bem fácil se você souber como fazer isso.

Mostrar pontos de acesso wlan disponíveis:

nmcli dev wifi

Conecte-se ao ponto de acesso:

nmcli dev wifi connect $ACCESS_POINT password $PASSWORD
    
por Ikem Krueger 13.09.2014 / 14:44
12

O wicd vem com 2 utilitários de linha de comando: wicd-curses e wicd-cli (eles podem requerer uma instalação separada) wicd-curse permite configurar / conectar desconectar a redes (com ou sem fio) de forma interativa, o wicd-cli oferece a mesma funcionalidade, mas apenas através de opções de linha de comando (útil para scripts) Eu uso em um trabalho cron para contornar alguns erros de auto-conexão:

wicd-cli -y -c -m MY_NETWORK_SSID

Além disso, você pode "apenas" ter uma configuração do wpa_supplicant como:

/ etc / network / interface:

auto wlan0 
iface wlan0 inet dhcp 
wpa-conf /etc/wpa.conf

e (como um exemplo WPA) /etc/wpa.conf:

network={
  ssid="MY_NETWORK_SSID"
  proto=RSN
  key_mgmt=WPA_PSK
  pairwise=CCMP_TKIP
  group=CCMP_TKIP
  psk="my network key in the clear"
}

há muitas considerações sobre isso, das quais a preocupação de segurança de ter a chave pré-compartilhada em texto não criptografado (wpa_supplicant pode permitir que você apresente uma chave criptografada ou talvez apenas ofuscada, verifique a página do manual), e legível apenas pela raiz é uma mitigação.

Eu acho que tendo várias seções de rede permitiria conectar várias redes, por ordem de prioridade.

    
por Philippe 31.12.2012 / 05:33
4

Eu uso wicd-curses , que, de longe, acho ser a interface de usuário mais fácil.

Você precisa usar o (tecla de seta para a direita -> ) para definir configurações; tudo o mais é óbvio nas instruções na tela.

Claro que você precisa encontrar alguma maneira de acessar a Internet sem wicd ; Eu estou supondo que você já tenha resolvido isso ou então você não estaria postando.

(Isso não é oportuno para o OP, apenas postando para a posteridade, uma vez que essa pergunta ainda aparece no Google. Para os google: se você está lendo isso de um café ou computador de um amigo ou algo assim, talvez você pode usar um fio em algum lugar para obter wicd-curses instalado com sudo apt-get install wicd-curses e, em seguida, certifique-se de testá-lo em uma rede que saiba trabalhar antes de sair!)

    
por isomorphismes 19.05.2015 / 16:45