Como faço para configurar conexões sem fio com o Raspbian Stretch?

8

Alguns tutoriais que encontrei estão desatualizados, mas a resposta a seguir contém uma coleção de anotações que usei para configurar conexões sem fio em casa, escola (empresa) e Ad-Hoc no meu Raspberry Pi 3.

Ian Zurutuza
fonte

Respostas:

14

Raspberry Pi 3 (núcleo 4.14.30-v7 +)

Este post é uma coleção de notas e tutoriais que usei para configurar conexões sem fio com o Raspberry Pi.

Entre em contato se tiver algum problema.


Instalação sem cabeça

Atualmente, o Raspbian procura na partição de inicialização alguns arquivos para permitir uma configuração sem cabeça ou conectar um Raspberry Pi a uma rede e estabelecer uma conexão ssh a partir de uma máquina externa sem monitor, tela ou mouse.

Depois de carregar Raspbian OS em um cartão micro SD, Ubuntu command:

unzip -p 2018-03-13-raspbian-stretch-lite.zip | sudo dd of=/dev/sdX bs=4M conv=fsync status=progress

Adicione dois arquivos à partição de inicialização antes de mover o cartão SD para o Pi.

  1. O SSH deve ser ativado colocando um arquivo chamado 'ssh', sem nenhuma extensão, na partição de inicialização do cartão SD. Isso permitirá que você se conecte a partir de um dispositivo externo.
  2. As conexões de rede devem ser definidas
    • adicione o arquivo "wpa_supplicant.conf" na partição de inicialização e preencha com as informações de rede, seguindo o tutorial abaixo.

Exemplo "wpa_supplicant.conf" para conexão doméstica:

ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
country=US

network={
    ssid="NETWORK_NAME"
    psk="password"
}

Agora, qual é o endereço IP do Pi? Procure o endereço MAC, todos os RPi 3 têm o mesmo início em seu endereço MAC. (Não funcionará na rede da empresa, pergunte ao administrador sobre privilégios)

Ubuntu command:

sudo nmap -sn 192.168.1.0/24 | grep -B 2 B8:27:EB

SSH

Desabilitado automaticamente durante a inicialização.

Ativar com

sudo raspi-config

Depois selecione Interfacing OptionsSSHEnable


Conexão de rede doméstica

Caminho mais fácil:

sudo raspi-config 

Selecione Network OptionsWi-fie siga as instruções na tela.

Maneira manual:

Edite wpa_suplicant.conf

sudo nano /etc/wpa_supplicant/wpa_supplicant.conf

Adicione o seguinte:

network={
    ssid="NETWORK_NAME"
    psk="password"
}

Salve o arquivo


Conexão de rede corporativa

É assim que eu me conecto ao meu wifi da universidade

Primeiro, crie o hash da senha e salve no arquivo (mantenha as aspas simples em torno da sua senha):

echo -n 'YOUR_REAL_PASSWORD' | iconv -t utf16le | openssl md4 > hash.txt

Em seguida, edite wpa_supplicant.conf

sudo nano /etc/wpa_supplicant/wpa_supplicant.conf

Adicione o seguinte:

network={
    ssid="NETWORK_NAME"
    proto=RSN
    key_mgmt=WPA-EAP
    group=CCMP TKIP
    identity="YOUR_USERNAME"
    password=hash:5ac87xxxxxxxxxxxxxxxxxxetc
    phase1="peaplabel=0"
    phase2="auth=MSCHAPV2"
}

Para adicionar o hash da senha:

  1. Mova o cursor para onde deseja colocar o texto
  2. Pressione ctrl+ re insira o arquivo hash.txt
    • hash.txt contém (stdin) = 5ac87xxxxxxxxxxxxxxxxxxxxc
    • substitua "(stdin) =" por "hash:"
  3. Salve o arquivo
  4. Limpe seu histórico do bash

    history -c
    
  5. Remover hash.txt

    rm hash.txt
    

Gerenciando várias conexões

Adicione sinalizadores de prioridade a cada rede no wpa_supplicant.conf

prioridade padrão = 0 (a maior prioridade vai primeiro)

Meu wpa_supplicant.conf priorizado:

ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
country=US

network={
    priority=1
    ssid="NETWORK_A"
    psk="password"
}

network={
    priority=2
    ssid="NETWORK_B"
    proto=RSN
    key_mgmt=WPA-EAP
    group=CCMP TKIP
    identity="YOUR_USERNAME"
    password=hash:5ac87xxxxxxxxxxxxxxxxxxetc
    phase1="peaplabel=0"
    phase2="auth=MSCHAPV2"
}

Existem muitas outras opções de configuração, execute man wpa_supplicant.confpara obter informações.


Rede ad-hoc / ponto de acesso / conexão de ponte

Você deseja conectar-se sem fio ao pi, mas não há redes sem fio disponíveis. Crie seu próprio!

O Raspberry Pi pode ser configurado para transmitir uma rede sem fio. Esta rede permite conectar o pi, mas não se conectará à internet.

Configuração ad-hoc simples de Pi para Pi

Em cada Rpi

Copie o arquivo atual para backup

cp /etc/network/interfaces /etc/network/interfaces.old

Abrir arquivo para editar

sudo nano /etc/network/interfaces

A única linha que deve ser diferente no arquivo a seguir é que addresstodo o resto deve ser idêntico. E você pode alterar o nome da sua rede ou adicionar uma senha

Anexe o seguinte na Rpi A:

auto wlan0
iface wlan0 inet static
    address 192.168.1.1 
    netmask 255.255.255.0
    wireless-channel 1
    wireless-essid MYNETWORK
    wireless-mode ad-hoc

Anexe o seguinte Rpi B:

auto wlan0
iface wlan0 inet static
    address 192.168.1.2 `
    netmask 255.255.255.0
    wireless-channel 1
    wireless-essid MYNETWORK
    wireless-mode ad-hoc

Salve o arquivo e saia do editor

Levante a interface:

sudo ifup wlan0

Procure redes ad-hoc:

iwlist wlan0 scan

Você pode adicionar mais dispositivos à rede, basta atribuir ao dispositivo um novo endereço IP estático diferente.

A frequência / canal operacional padrão (2,412 GHz: canal 1) é frequentemente congestionada. Tente usar um canal diferente em caso de dificuldades.

Mude wireless-channelpara um número diferente

Use sudo iwlist wlan0 scanpara encontrar outros canais.

src: https://wiki.debian.org/WiFi/AdHoc


Menos simples

Mais complicado, mas se conectará a redes conhecidas e criará ad-hoc se nenhuma for encontrada.

Siga este tutorial (sem ponte Ethernet, usei isso com êxito) http://www.raspberryconnect.com/network/item/331-raspberry-pi-auto-wifi-hotspot-switch-no-internet-routing

hostname -I 

Execute isso no Pi, então eu me conectei ao segundo endereço IP listado via ssh pi @ [ipaddr] da minha máquina host do Ubuntu.

Com ponte ethernet (eu não testei isso, mas com os mesmos ajustes de ↑) http://www.raspberryconnect.com/network/item/330-raspberry-pi-auto-wifi-hotspot-switch-internet


ERROS CONHECIDOS:

A conexão ssh falha da máquina host para o Pi? execute com saída detalhada:

ssh -vvvv [email protected]

Se os últimos comandos antes do fechamento forem:

debug1: SSH2_MSG_KEXINIT sent
Connection closed by raspberrypi.local port 22

Tente regenerar as chaves do host que podem estar ausentes ou corrompidas (faça isso no Pi):

sudo rm /etc/ssh/ssh_host_*
sudo dpkg-reconfigure openssh-server 

https://www.raspberrypi.org/forums/viewtopic.php?t=168310


Referências

man wpa_supplicant.conf

https://www.raspberrypi.org/forums/viewtopic.php?t=111100

https://www.doc.ic.ac.uk/~ajd/Robotics/RoboticsResources/wifi_setup.txt

https://gist.github.com/chatchavan/3c58511e3d48f478b0c2

Ian Zurutuza
fonte
Este é um ótimo post ... há tantas coisas úteis aqui! Sugestão: obtenha uma conta no GitHub e publique essa 'receita' lá.
Seamus
2
A varredura do cache arp tem algumas desvantagens: você só vê os vizinhos e o dispositivo desejado deve ser tratado antes de qualquer forma. Caso contrário, não está no cache. Executar ping no endereço de transmissão antes pode funcionar para todos os vizinhos, mas o administrador da rede não gosta disso! Uma alternativa é nmap, por exemplo, sudo nmap -sn 192.168.10.0/24 | grep -B 2 B8:27:EBpara vizinhos.
Ingo
11
Você está escrevendo sobre bridging. Esteja ciente de que você não pode conectar o wifi real na camada 2 do OSI com um raspi por causa dos limites de hardware / driver.
Ingo
0

Use este programa fácil que encontrei no Github: Rasp-Connect - Script python fácil para conectar Raspbian a uma rede Wifi usando Python.

É um script Python fácil que o configura e define, basta selecionar o tipo de criptografia e inserir o SSID e a senha. Funciona muito bem e também suporta a execução da ferramenta sobre SSH.

user91683
fonte