Come posso configurare le connessioni wireless a Raspbian Stretch?


8

Alcuni tutorial che ho trovato sono obsoleti, ma la seguente risposta contiene una raccolta di note che ho usato per configurare connessioni wireless domestiche, scolastiche (aziendali) e ad hoc sul mio Raspberry Pi 3.

Risposte:


14

Raspberry Pi 3 (kernel 4.14.30-v7 +)

Questo post è una raccolta di note ed esercitazioni che ho usato per impostare connessioni wireless a Raspberry Pi.

Per favore fatemi sapere se si verificano problemi.


Installazione senza testa

Raspbian attualmente cerca nella partizione di avvio un paio di file per consentire una configurazione senza testa o connettere un Raspberry Pi a una rete e stabilire una connessione ssh da una macchina esterna senza monitor, schermo o mouse.

Dopo aver caricato Raspbian OS su una scheda micro SD, Ubuntu command:

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

Aggiungi due file alla partizione di avvio prima di spostare la scheda SD sul Pi.

  1. SSH deve essere abilitato posizionando un file chiamato 'ssh', senza alcuna estensione, nella partizione di avvio della scheda SD. Ciò ti consentirà di connetterti da un dispositivo esterno.
  2. Le connessioni di rete devono essere definite
    • aggiungere il file "wpa_supplicant.conf" nella partizione di avvio e riempire con le informazioni di rete seguendo il tutorial seguente.

Esempio "wpa_supplicant.conf" per la connessione domestica:

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

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

Ora qual è l'indirizzo IP del Pi? Cerca l'indirizzo MAC, tutti gli RPi 3 hanno lo stesso inizio per il loro indirizzo MAC. (Non funzionerà sulla rete aziendale, chiedi all'amministratore dei privilegi)

Ubuntu command:

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

SSH

Disabilitato automaticamente durante l'avvio iniziale.

Abilita con

sudo raspi-config

Quindi selezionare Interfacing OptionsSSHEnable


Connessione alla rete domestica

Il modo più semplice:

sudo raspi-config 

Seleziona Network OptionsWi-fiquindi segui le istruzioni sullo schermo.

Modo manuale:

Modifica wpa_suplicant.conf

sudo nano /etc/wpa_supplicant/wpa_supplicant.conf

Aggiungi quanto segue:

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

Quindi salva il file


Connessione di rete aziendale

Ecco come mi collego al mio wifi universitario

Per prima cosa crea l'hash della password e salva su file (mantieni le virgolette singole intorno alla tua password):

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

Quindi modificare wpa_supplicant.conf

sudo nano /etc/wpa_supplicant/wpa_supplicant.conf

Aggiungi quanto segue:

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"
}

Per aggiungere l'hash della password:

  1. Sposta il cursore nel punto in cui desideri posizionare il testo
  2. Premi ctrl+ rquindi inserisci il file hash.txt
    • hash.txt contiene (stdin) = 5ac87xxxxxxxxxxxxxxxxxxetc
    • sostituisci "(stdin) =" con "hash:"
  3. Salva il file
  4. Cancella la tua cronologia bash

    history -c
    
  5. Rimuovi hash.txt

    rm hash.txt
    

Gestione di connessioni multiple

Aggiungi flag di priorità a ciascuna rete in wpa_supplicant.conf

priorità predefinita = 0 (la priorità massima viene prima)

Il mio wpa_supplicant.conf prioritario:

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"
}

Esistono molte altre opzioni di configurazione, eseguite man wpa_supplicant.confper informazioni.


Rete ad hoc / punto di accesso / connessione bridge

Si desidera connettersi in modalità wireless al pi ma non ci sono reti wireless disponibili. Crea il tuo!

Raspberry Pi può essere configurato per trasmettere una rete wireless. Questa rete ti consente di connettere il pi, ma non si collegherà a Internet.

Semplice configurazione ad hoc da Pi a Pi

Su ogni Rpi

Copia il file corrente per il backup

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

Apri il file da modificare

sudo nano /etc/network/interfaces

L'unica riga che dovrebbe essere diversa nel seguente file è che addresstutto il resto dovrebbe essere identico. E puoi cambiare il nome della tua rete o aggiungere una password

Aggiungi quanto segue su 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

Aggiungi il seguente 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

Salvare il file ed uscire dall'editor

Alza l'interfaccia:

sudo ifup wlan0

Ricerca reti ad hoc:

iwlist wlan0 scan

È possibile aggiungere più dispositivi alla rete, è sufficiente assegnare al dispositivo un nuovo indirizzo IP statico diverso.

La frequenza / canale operativi predefiniti (2.412 GHz: canale 1) è spesso congestionato. Prova a utilizzare un canale diverso in caso di difficoltà.

Passare wireless-channela un numero diverso

Utilizzare sudo iwlist wlan0 scanper trovare altri canali.

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


Meno semplice

Più complicato, ma si collegherà a reti note e creerà ad-hoc se non ne viene trovato nessuno.

Segui questo tutorial (nessun bridge Ethernet, l'ho usato con successo) http://www.raspberryconnect.com/network/item/331-raspberry-pi-auto-wifi-hotspot-switch-no-internet-routing

hostname -I 

Esegui questo su Pi, quindi mi sono collegato al secondo indirizzo IP elencato tramite ssh pi @ [ipaddr] dalla mia macchina host Ubuntu.

Con Ethernet Bridge (non l'ho provato, ma dagli stessi armeggi di ↑) http://www.raspberryconnect.com/network/item/330-raspberry-pi-auto-wifi-hotspot-switch-internet


ERRORI CONOSCIUTI:

La connessione SSH non riesce dalla macchina host a Pi? eseguire con output dettagliato:

ssh -vvvv pi@raspberrypi.local

Se gli ultimi comandi prima della chiusura sono:

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

Prova a rigenerare le chiavi host che potrebbero essere mancanti o danneggiate (fallo su Pi):

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

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


Riferimenti

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


Questo è un ottimo post ... ci sono così tante cose utili qui! Suggerimento: ottieni un account GitHub e pubblica qui questa "ricetta".
Seamus,

2
La scansione della cache arp presenta alcuni svantaggi: si vedono solo i vicini e il dispositivo desiderato deve essere affrontato prima in alcun modo. In caso contrario, non è nella cache. Il ping dell'indirizzo di trasmissione prima potrebbe funzionare per rivolgersi a tutti i vicini, ma l'amministratore di rete non gli piace! Un'alternativa è nmap, ad esempio sudo nmap -sn 192.168.10.0/24 | grep -B 2 B8:27:EBper i vicini.
Ingo

1
Stai scrivendo bridging. Tenere presente che non è possibile eseguire il bridge del wifi reale sul livello OSI 2 con raspi a causa dei limiti hardware / driver.
Ingo,

0

Usa questo semplice programma che ho trovato su Github: Rasp-Connect - Easy python Script per connettere Raspbian a una rete Wifi usando Python.

È un semplice script Python che configura e configura per te, devi solo selezionare quale tipo di crittografia e inserire l'SSID e la password. Funziona molto bene e supporta anche l'esecuzione dello strumento su SSH.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.