Configurare un Raspberry Pi come punto di accesso: il modo più semplice


16

So come farlo nel modo classico come descritto ad esempio dalla documentazione ufficiale su Configurare un Raspberry Pi come punto di accesso in una rete autonoma (NAT) . Ma ciò richiede molti componenti diversi che devono giocare insieme e ogni componente deve essere configurato a modo suo. Questi sono networking (ifupdown) , dhcpcd , hostapd , dnsmasq e bridge-utils .

Oggi Raspbian Stretch ha tutti i componenti necessari integrati, quindi non è necessario installare software aggiuntivo. Questo potrebbe semplificare molto l'installazione.

È possibile solo configurare Raspbian per funzionare come punto di accesso wifi senza installare software aggiuntivo?

Risposte:


26

━━━ Impostazione di un punto di accesso ━━━

Stiamo parlando di un punto di accesso insieme a una porta ethernet eth0 .

Se si desidera un punto di accesso insieme a una connessione client wlan0 a un'altra rete wifi (ripetitore wlan), guardare Access point come router / ripetitore WiFi, opzionale con bridge .

È possibile configurare Raspbian Stretch come punto di accesso wifi senza installare software aggiuntivo. Sono disponibili tutti i componenti necessari: rete, server DHCP e bridge sono forniti con systemd-networkd e il wifi può essere configurato con wpa_supplicant . Il collegamento di due interfacce eth0 e wlan0 può essere eseguito tramite routing o bridge. Di seguito prima l'installazione per una rapida installazione e poi i dettagli. Per prima cosa dobbiamo passare a systemd-networkd .

Testato con
Raspbian Buster Lite 2019-09-26 su un Raspberry Pi 4B aggiornato al 2020-01-18.
Aggiornamenti effettuati con sudo apt update && sudo apt full-upgrade && sudo reboot.
Qui puoi trovare l' ultima revisione testata per le versioni precedenti di Raspbian .


♦ Setup generale

Passa a systemd-networkd

Per informazioni dettagliate, consultare (1) e Come configurare la risoluzione dei nomi con systemd-networkd . Qui solo in breve. Esegui questi comandi:

# deinstall classic networking
rpi ~$ sudo -Es
rpi ~# apt --autoremove purge ifupdown dhcpcd5 isc-dhcp-client isc-dhcp-common
rpi ~# rm -r /etc/network /etc/dhcp

# enable systemd-networkd
rpi ~# systemctl enable systemd-networkd.service

# setup systemd-resolved
rpi ~# systemctl enable systemd-resolved.service
rpi ~# apt --autoremove purge avahi-daemon
rpi ~# apt install libnss-resolve
rpi ~# ln -sf /run/systemd/resolve/stub-resolv.conf /etc/resolv.conf

Configurare wpa_supplicant come punto di accesso

Per configurare wpa_supplicant come punto di accesso creare il file con le impostazioni per country=, ssid=, psk=e forse frequency=. Puoi semplicemente copiarlo e incollarlo in un blocco nella riga di comando a partire da cate includendo entrambi EOF (il delimitatore EOF non otterrà parte del file):

rpi ~# cat > /etc/wpa_supplicant/wpa_supplicant-wlan0.conf <<EOF
country=DE
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1

network={
    ssid="RPiNet"
    mode=2
    frequency=2437
    #key_mgmt=NONE   # uncomment this for an open hotspot
    # delete next 3 lines if key_mgmt=NONE
    key_mgmt=WPA-PSK
    proto=RSN WPA
    psk="password"
}
EOF
rpi ~# chmod 600 /etc/wpa_supplicant/wpa_supplicant-wlan0.conf
rpi ~# systemctl disable wpa_supplicant.service
rpi ~# systemctl enable wpa_supplicant@wlan0.service

Installazione generale terminata. Torna indietro.


♦ Impostazione di un punto di accesso autonomo

Esempio per questa configurazione:

                 wifi
mobile-phone <~.~.~.~.~> (wlan0)RPi(eth0)
            \             /
           (dhcp)   192.168.4.1

Esegui "Installazione generale", quindi crea il seguente file per configurare wlan0 . Abbiamo solo il punto di accesso. Non è stato configurato alcun dispositivo Ethernet.

rpi ~# cat > /etc/systemd/network/08-wlan0.network <<EOF
[Match]
Name=wlan0
[Network]
Address=192.168.4.1/24
MulticastDNS=yes
DHCPServer=yes
EOF

Se lo desideri, riavvia.
Questo è tutto.
Altrimenti, non è necessario riavviare in questo momento.


♦ Impostazione di un punto di accesso e con eth0, senza routing

Esempio per questa configurazione:

                                 |
                 wifi            |           wired            wan
mobile-phone <~.~.~.~.~> (wlan0)RPi(eth0) <---------> router <---> INTERNET
            \             /      |     \             /
           (dhcp)   192.168.4.1  |    (dhcp)   192.168.50.1

Impostare

Fare "Impostazione di un punto di accesso autonomo", quindi creare il seguente file per configurare eth0 .

rpi ~$ sudo -Es   # if not already executed before
rpi ~# cat > /etc/systemd/network/04-eth0.network <<EOF
[Match]
Name=eth0
[Network]
DHCP=yes
EOF

Reboot.
Questo è tutto.

Dettagli

L'interfaccia eth0 è collegata con un cavo Ethernet al router Internet e ottiene la configurazione tramite DHCP dal router Internet. Non è un problema dargli un indirizzo IP statico con es. Address=192.168.50.2Anziché DHCP=yes.

Senza routing non è possibile accedere a Internet con il telefono cellulare. Puoi accedervi dall'RP stesso per ottenere aggiornamenti o qualcosa del genere.


♦ Impostazione di un punto di accesso e con eth0, con NAT (consigliato)

Esempio per questa configurazione:

                 wifi                        wired            wan
mobile-phone <~.~.~.~.~> (wlan0)RPi(eth0) <---------> router <---> INTERNET
            \             /            \
           (dhcp)   192.168.4.1       (dhcp)

Impostare

Esegui "Installazione generale", quindi crea i seguenti file per configurare wlan0 ed eth0 . Se hai provato una delle configurazioni precedenti, puoi semplicemente sovrascrivere i due file. Assicurarsi di utilizzare una subnet diversa per il punto di accesso rispetto a quella dal router. Il router in questo esempio non utilizza la sottorete 192.168.4.0/24. Se hai bisogno di un'altra sottorete, modifica semplicemente la riga dell'indirizzo, ad es Address=192.168.5.1/24.

rpi ~$ sudo -Es   # if not already executed before
rpi ~# cat > /etc/systemd/network/08-wlan0.network <<EOF
[Match]
Name=wlan0
[Network]
Address=192.168.4.1/24
MulticastDNS=yes
# IPMasquerade is doing NAT
IPMasquerade=yes
DHCPServer=yes
[DHCPServer]
DNS=84.200.69.80 1.1.1.1
EOF

rpi ~# cat > /etc/systemd/network/04-eth0.network <<EOF
[Match]
Name=eth0
[Network]
DHCP=yes
IPForward=yes
EOF

Reboot.
Questo è tutto.

Dettagli

Se non si ha accesso al router Internet, è possibile simularlo con NAT (traduzione dell'indirizzo di rete) per dire che tutti i pacchetti provengono dal proprio AP RasPi. Ma questo non è un routing pulito e presenta dei limiti. I client sulla sottorete del router non possono connettersi ai client sul wifi. Ma nella maggior parte dei casi questo non è necessario, quindi questa installazione è consigliata perché semplifica l'installazione. Se è necessario connettersi ai client Wi-Fi dalla rete del router, è necessario utilizzare il routing completo come descritto nella sezione successiva.


♦ Impostazione di un punto di accesso e con eth0, con routing

Esempio per questa configurazione:

                 wifi                        wired            wan
mobile-phone <~.~.~.~.~> (wlan0)RPi(eth0) <---------> router <---> INTERNET
            \             /            \              /
           (dhcp)   192.168.4.1   192.168.50.2   192.168.50.1

Impostare

Esegui "Installazione generale", quindi crea i seguenti file per configurare wlan0 ed eth0 . Se hai provato una delle configurazioni precedenti, puoi semplicemente sovrascrivere i due file. Assicurarsi di utilizzare sottoreti diverse per il punto di accesso e la rete del router. Dobbiamo usare indirizzi IP statici perché dobbiamo usarli come gateway.

rpi ~$ sudo -Es   # if not already executed before
rpi ~# cat > /etc/systemd/network/08-wlan0.network <<EOF
[Match]
Name=wlan0
[Network]
Address=192.168.4.1/24
MulticastDNS=yes
DHCPServer=yes
[DHCPServer]
DNS=84.200.69.80 1.1.1.1
EOF

rpi ~# cat > /etc/systemd/network/04-eth0.network <<EOF
[Match]
Name=eth0
[Network]
Address=192.168.50.2/24
Gateway=192.168.50.1
DNS=84.200.69.80 1.1.1.1
IPForward=yes
EOF

Reboot.

Per far funzionare il routing completo devi impostare una route statica nel tuo router Internet in modo che possa trovare la route per i pacchetti in arrivo sul RasPi ai client connessi tramite wifi al punto di accesso. Sulla maggior parte dei router Internet è possibile impostare un percorso statico, ma il modo in cui varia da modello a modello. Sta a te scoprirlo. Ad esempio, l' interfaccia RasPi eth0 ha l'indirizzo IP statico 192.168.50.2. Quindi sul router il gateway (hop successivo) è 192.168.50.2, la rete di destinazione è 192.168.4.0/24 (o 192.168.4.0 netmask 255.255.255.0).

Ciò significa per il router Internet: "invia tutti i pacchetti appartenenti alla sottorete 192.168.4.0/24(rete di destinazione dall'AP) al router successivo sulla mia sottorete, l'AP RasPi 192.168.50.2(gateway). Sa dove andare."

Questo è tutto.


♦ Impostazione di un punto di accesso con un ponte

Esempio per questa configurazione:

                               RPi
               wifi   ┌──────bridge──────┐   wired            wan
mobile-phone <.~.~.~> │(wlan0) br0 (eth0)│ <-------> router <-----> INTERNET
            \                   |                   / DHCP-server
           (dhcp              (dhcp           192.168.50.1
        from router)       from router)

Se disponi già di una rete Ethernet con server DHCP e router Internet e desideri espanderla con un punto di accesso wifi ma con gli stessi indirizzi IP, allora usi un bridge. Questo è spesso usato come uplink a un router.

Impostare

Esegui "Installazione generale", quindi crea i tre file seguenti per configurare le interfacce di rete. Se hai provato una delle configurazioni precedenti, puoi semplicemente eliminare tutti i file /etc/systemd/network/tranne 99-default.linkse presenti. Gli indirizzi IP sono esempi. Devi usare il tuo.

rpi ~$ sudo -Es   # if not already executed before
rpi ~# cat > /etc/systemd/network/02-br0.netdev <<EOF
[NetDev]
Name=br0
Kind=bridge
EOF

rpi ~# cat > /etc/systemd/network/04-br0_add-eth0.network <<EOF
[Match]
Name=eth0
[Network]
Bridge=br0
EOF

rpi ~# cat > /etc/systemd/network/12-br0_up.network <<EOF
[Match]
Name=br0
[Network]
MulticastDNS=yes
DHCP=yes
# to use static IP uncomment these and comment DHCP=yes
#Address=192.168.50.60/24
#Gateway=192.168.50.1
#DNS=84.200.69.80 1.1.1.1
EOF

Ora dobbiamo dire a wpa_supplicant di usare un bridge. Lo facciamo modificando il suo servizio con:

rpi ~# systemctl edit wpa_supplicant@wlan0.service

Nell'editor vuoto inserire queste istruzioni, salvarle ed uscire dall'editor:

[Service]
ExecStartPre=/sbin/iw dev %i set type __ap
ExecStartPre=/bin/ip link set %i master br0

ExecStart=
ExecStart=/sbin/wpa_supplicant -c/etc/wpa_supplicant/wpa_supplicant-%I.conf -Dnl80211,wext -i%I -bbr0

ExecStopPost=-/bin/ip link set %i nomaster
ExecStopPost=-/sbin/iw dev %i set type managed

Reboot.
Questo è tutto.

Dettagli

Dobbiamo dire a wpa_supplicant che la sua interfaccia wlan0 è schiava di un bridge. Altrimenti rifiuterà il client si connette con "password errata" significa che la negoziazione chiave non funziona. Quando diciamo a / sbin / wpa_supplicant con l'opzione -dbr0di usare un bridge per wlan0, allora l'interfaccia deve essere già un membro del bridge. Questo è ciò che facciamo con il drop in file (overlay) per il servizio wpa_supplicant . L'istruzione vuota ExecStart=elimina la voce precedente. Altrimenti hai due righe ExecStart=e wpa_supplicant inizierà due volte. L'originale con cui ExecStart=è possibile visualizzare systemctl cat wpa_supplicant@wlan0.service.

Normalmente il router a cui si è collegati con il cavo Ethernet ha un server DHCP abilitato. Il bridge è anche trasparente per le richieste DHCP dalle stazioni (dispositivi collegati al punto di accesso), quindi non devi preoccuparti della configurazione delle sue interfacce con indirizzi IP e opzioni. Il router lo servirà.
excursus:
Ma se il router non ha un server DHCP, è possibile installarne uno su RasPi. systemd-networkd ha opzioni per configurare il suo server DHCP incorporato ma il problema è che systemd-networkd presume che sia in esecuzione sul router stesso e non è vero in questo caso. Servirà opzioni errate per le stazioni, in particolare l' opzione router . Non è possibile configurarlo. Quindi dobbiamo installarednsmasqin questo caso che può essere configurato secondo necessità. Installalo e configuralo con (esempio, usa i tuoi indirizzi IP):

rpi ~$ sudo -Es
rpi ~# apt install dnsmasq
rpi ~# systemctl stop dnsmasq
rpi ~# mv /etc/dnsmasq.conf /etc/dnsmasq.conf.orig

rpi ~# cat > /etc/dnsmasq.conf <<EOF
interface=br0
  dhcp-range=192.168.50.128,192.168.50.164,255.255.255.0,24h
  dhcp-option=option:router,192.168.50.1
  dhcp-option=option:dns-server,8.8.8.8,1.1.1.1
EOF

rpi ~# systemctl start dnsmasq
rpi ~# exit
rpi ~$

In questo esempio sono riservati gli indirizzi IP da 192.168.50.128 a 192.168.50.164 da assegnare alle stazioni. Per altri indirizzi IP statici utilizzane uno esterno a questo pool, anche l'indirizzo IP per il bridge stesso.


♦ Ottimizzazione

Quando avvii wpa_supplicant , ricevi principalmente questi messaggi nel journal:

wpa_supplicant[427]: random: Cannot read from /dev/random: Resource temporarily unavailable
wpa_supplicant[427]: random: Only 12/20 bytes of strong random data available from /dev/random
wpa_supplicant[427]: random: Not enough entropy pool available for secure operations
wpa_supplicant[427]: WPA: Not enough entropy in random pool for secure operations - update keys later when the first station connects

Non è un grosso problema. wpa_supplicant ha bisogno di numeri casuali per generare chiavi crittografate. Questo è fatto un po 'lento, quindi deve aspettare. Fortunatamente il RasPi ha una costruzione in T rue R andom N umber G enerator (TRNG). Possiamo usarlo e velocizzare la ricezione di numeri casuali installando un software (3) con:

rpi ~$ sudo apt install rng-tools

Aggiornamento:
da Raspbian Stretch 2019-04-08 non è necessario installarlo rng-tools. Sono installati per impostazione predefinita.


♦ Risoluzione dei problemi

systemd-networkd

Guarda lo stato di un servizio:

rpi ~$ systemctl status systemd-networkd.service
rpi ~$ systemctl status wpa_supplicant@wlan0.service

O anche un po 'di più:

rpi ~$ journalctl --boot --pager-end

Ho trovato utile seguire la registrazione in corso:

rpi ~$ journalctl --boot --follow

Se hai effettuato un calo del file, puoi guardare il risultato:

rpi ~$ systemctl cat wpa_supplicant@wlan0.service

Per verificare l'ambiente di runtime di un'unità è possibile mostrarlo e, ad esempio, verificare se ci sono due ExecStart=linee:

rpi ~$ systemctl show wpa_supplicant@wlan0.service

E se niente altro ti aiuta, puoi abilitare l'opzione di debug /sbin/wpa_supplicantcon -din un drop nel file:

rpi ~$ sudo systemctl edit wpa_supplicant@wlan0.service
ExecStart=
ExecStart=/sbin/wpa_supplicant -c/etc/wpa_supplicant/wpa_supplicant-%I.conf -Dnl80211,wext -i%I -bbr0 -d

L'output è nel diario. In questo modo ho riscontrato il problema con la negoziazione chiave errata.

Wi-Fi

Se hai impostato il punto di accesso, dovresti trovarlo con un telefono cellulare. Mostrando le reti disponibili, viene presentato con il nome RPiNet e puoi collegarti ad esso. Sul RasPi puoi anche usare il comando:

rpi ~$ sudo iw dev wlan0 info
phy#0
        Interface wlan0
                ifindex 3
                wdev 0x2
                addr b8:27:eb:06:e8:8b
                ssid RPiNet
                type AP
                channel 1 (2412 MHz), width: 20 MHz, center1: 2412 MHz

Come puoi vedere è di tipo AP (punto di accesso) e ti mostrerà anche quale canale sta usando. Un problema potrebbe essere quello di tradurre un canale in frequenza. La frequenza deve corrispondere a un canale. Puoi guardare (2) per un elenco di canali WLAN. Ad esempio, per il canale utilizzo 36 sulla banda 5.1 GHz è necessario impostare frequency=5180in /etc/wpa_supplicant\wpa_supplicant.conf. Ma devi essere sicuro che il tuo wifi supporti la banda 5.1 GHz. Puoi verificare con sudo iw phy. Questo ti darà un sacco di informazioni. Deve inoltre contenere frequenze supportate superiori a 5000 MHz. Se vedi solo frequenze di 24xx MHz, ovviamente puoi solo usarlo.

Un altro punto potrebbe essere numeri casuali. Per crittografare le chiavi per connessioni protette, wpa_supplicant necessita di numeri casuali. Generare questo è molto lento su un Raspberry Pi. Se non ha abbastanza entropia per generare chiavi di crittografia, wpa_supplicant rifiuterà l'autenticazione. Puoi vedere cat /proc/sys/kernel/random/entropy_availquante entropie sono disponibili. Dovrebbe essere> 1000 per funzionare abbastanza velocemente. Per accelerare ciò, rng-toolssono installati per impostazione predefinita. Guarda la sezione Ottimizzazione per ulteriori informazioni.


riferimenti:
[1] Howto migrare dalla rete a systemd-networkd con failover dinamico
[2] Elenco dei canali WLAN
[3] Rng-tools


rpi ~ # systemd-tmpfiles --create --prefix / var / log / journalroot FAILS con questo messaggio di output @pi: ~ # systemd-tmpfiles --create --prefix / var / log / journal Impossibile impostare l'attributo del file per '/ var / log / journal ', valore = 0x00800000, maschera = 0x00800000: operazione non supportata Impossibile impostare l'attributo del file per' / var / log / journal / 6d18954849a74479955b761e891619aa ', valore = 0x00800000, maschera = 0x00800000: operazione non supportata, quindi il journal non può essere implementato. Non è un buon inizio per l'attuazione della procedura.
Jan Hus,

1
Ciao @JanHus Grazie per il tuo feedback. Questo è solo un avvertimento, non un errore e non importa. Lo capisco anche ogni volta. Viene creato il giornale persistente. Guarda con ls /var/log/journal/. Vedrai una directory simile fa9462093e8d419cb646d0a0c44771c2. Questa è la memoria per il diario a cui accedi journalctl. Aggiornerò la mia risposta.
Ingo,

Sì, ho verificato se il file è stato creato. Ma mi sono allontanato e mi sono fermato. Continuerò oggi Finora questo è uno dei migliori "tutorial" sull'argomento. Grazie per averlo pubblicato. PS lo chiama persistente OK? Poco confuso quando viene creato utilizzando il processo temporaneo.
Jan Hus,

2
@Ingo Penso che si consiglia di utilizzare proto=WPA2nella configurazione AP. Il mio telefono, almeno, si lamenta della "sicurezza debole" senza di essa.
Robin Dinse,

2
@RobinDinse Hai ragione, ovviamente. L'ho supervisionato. Grazie per il suggerimento. Ho aggiunto proto=RSN. Questo è ciò che preferisce il docu (nominando proto=WPA2un alias).
Ingo,

3

Una ancora SEMPLICE modo di creare un lampone Pi come AP è utilizzare il pi-ap Github repo che automatizza la configurazione di un Pi 3B + / 4 in un AP.

Connetti il ​​Pi a una porta libera nel tuo router connesso a Internet che ha abilitato DHCP (probabilmente il caso nella maggior parte dei router consumer).

Una volta connesso, SSH in Pi sull'IP assegnato DHCP assegnato eth0dal router e quindi:

git clone https://github.com/f1linux/pi-ap

cd pi-ap

nano variables.sh   # Change default values for SSID & password

sudo ./install.sh

Bevi il tè e dopo aver atteso circa 2 minuti il ​​SSID che hai impostato variables.shapparirà nell'elenco delle reti wireless. Connettiti alla WLAN del Pi pubblicizzata.

Per SSH direttamente su AP stesso sull'interfaccia Pi wlan0, utilizzare l'IP predefinito di192.168.0.1

NOTA : la sottorete DHCP predefinita utilizzata da pi-ap per assegnare gli IP dei client WiFivariables.sh è 192.168.0.0/28. Se stai già utilizzando quella sottorete sulla tua rete, imposta un'altra sottorete variables.shper i client WiFi PRIMA dell'esecuzione install.sh.

Non sono richiesti calcolatori di sottorete o abilità di rete serie per ottenere buoni risultati. pi-ap supporta anche le restrizioni di accesso tramite ACL MAC.

INFORMATIVA : Sono lo sviluppatore di pi-ap .


0

━━━ Controllare l'installazione passo dopo passo con i punti di controllo ━━━

Questa risposta non è pensata per l'installazione. Per una configurazione stabile, guarda l'altra risposta Impostazione di un punto di accesso .

Questa risposta è principalmente per la risoluzione dei problemi e per mostrare come funziona con comandi dettagliati passo dopo passo e punti di controllo ma senza informazioni di base. Suppongo che tu abbia un monitor, una tastiera e un mouse collegati al tuo Raspberry Pi. Gli indirizzi IP e altre impostazioni in questo controllo sono esempi. Devi usare il tuo. Puoi sempre guardarejournalctl -b -e informazioni registrate.

Download ZIPimage Raspbian Stretch Lite 2018-11-13 sul tuo PC Linux.

Checkpoint 1: confronta il checksum con quello sul sito di download.

pc ~$ sha256sum 2018-11-13-raspbian-stretch-lite.zip

47ef1b2501d0e5002675a50b6868074e693f78829822eef64f3878487953234d 2018-11-13-raspbian-stretch-lite.zip

Passaggio successivo: masterizza l'immagine su una scheda SD collegata:

pc ~$ unzip -p 2018-11-13-raspbian-stretch-lite.zip | sudo dd of=/dev/sdb bs=4M conv=fsync

Punto di controllo 2: controllare le partizioni sulla scheda SD:

pc ~$ sudo parted /dev/sdb print
Model: Mass Storage Device (scsi)
Disk /dev/sdb: 3965MB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags:

Number  Start   End     Size    Type     File system  Flags
 1      4194kB  50,2MB  46,0MB  primary  fat32        lba
 2      50,3MB  1866MB  1816MB  primary  ext4

Passaggio successivo: montare la partizione di avvio e creare un wpa_supplicant.conffile:

pc ~$ mkdir boot/
pc ~$ sudo mount /dev/sdb1 boot/
pc ~$ sudo -e boot/wpa_supplicant.conf

# insert this into the empty editor with your settings, save it and quit the editor
country=DE
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1

network={
    ssid="RPiNet"
    mode=2
    key_mgmt=WPA-PSK
    psk="password"
    frequency=2412
}

pc ~$ sudo umount boot/

Inserisci la scheda SD nel tuo RasPi e avvia.

Punto di controllo 3: dopo l'accesso, controllare la connessione cablata. L' interfaccia eth0 deve avere un indirizzo IP:

rpi ~$ ip -4 addr show dev eth0
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    inet 192.168.50.177/24 brd 192.168.50.255 scope global eth0
       valid_lft forever preferred_lft forever

rpi ~$ ping -I eth0 -c3 google.com
PING google.com (172.217.22.78) from 192.168.50.177 eth0: 56(84) bytes of data.
64 bytes from fra15s17-in-f14.1e100.net (172.217.22.78): icmp_seq=1 ttl=55 time=15.0 ms
64 bytes from fra15s17-in-f14.1e100.net (172.217.22.78): icmp_seq=2 ttl=55 time=14.7 ms
64 bytes from fra15s17-in-f14.1e100.net (172.217.22.78): icmp_seq=3 ttl=55 time=15.1 ms

--- google.com ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2003ms
rtt min/avg/max/mdev = 14.729/14.965/15.125/0.170 ms

Questo dovrebbe funzionare fuori dalla scatola. Se non funziona, allora hai un problema generale con la configurazione della tua rete. Correggi prima di continuare.

Punto di controllo 4: controllare il punto di accesso:

rpi ~$ sudo iw dev wlan0 info
Interface wlan0
        ifindex 3
        wdev 0x1
        addr b8:27:eb:06:e8:8b
        ssid RPiNet
        type AP
        wiphy 0
        channel 1 (2412 MHz), width: 20 MHz, center1: 2412 MHz
        txpower 31.00 dBm

L' interfaccia wlan0 dovrebbe avere un indirizzo IP. Poiché non abbiamo configurato l'interfaccia, avrà un indirizzo Link-local da 169.254.0.0/16.

rpi ~$ ip -4 addr show dev wlan0
3: wlan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    inet 169.254.210.182/16 brd 169.254.255.255 scope global wlan0
       valid_lft forever preferred_lft forever

Vedrai RPiNet nell'elenco dei punti di accesso sul tuo cellulare ma non riesci ancora a connetterti.

Passaggio successivo: aggiornamento completo e riavvio:

rpi ~$ sudo apt update
rpi ~$ sudo apt full-upgrade
rpi ~$ sudo systemctl reboot

Dopo il riavvio e l'accesso, passa a systemd-networkd :

rpi ~$ sudo -Es
rpi ~# mkdir -p /var/log/journal
rpi ~# systemd-tmpfiles --create --prefix /var/log/journal #ignore warnings (*)

rpi ~# apt install rng-tools
rpi ~# systemctl mask networking.service
rpi ~# systemctl mask dhcpcd.service
rpi ~# sudo mv /etc/network/interfaces /etc/network/interfaces~
rpi ~# sed -i '1i resolvconf=NO' /etc/resolvconf.conf

rpi ~# systemctl enable systemd-networkd.service
rpi ~# systemctl enable systemd-resolved.service
rpi ~# ln -sf /run/systemd/resolve/resolv.conf /etc/resolv.conf

(*) Riceverai uno o due avvisi confusi "... Impossibile impostare l'attributo del file ..." Non si tratta di errori e non importa in questo caso.

Crea questi file per le interfacce eth0 e wlan0 con le tue impostazioni:

rpi ~# cat > /etc/systemd/network/04-eth0.network <<EOF
[Match]
Name=eth0
[Network]
Address=192.168.50.60/24
Gateway=192.168.50.1
DNS=84.200.69.80 84.200.70.40
IPForward=yes
EOF

rpi ~# cat > /etc/systemd/network/08-wlan0.network <<EOF
[Match]
Name=wlan0
[Network]
Address=192.168.4.1/24
DHCPServer=yes
[DHCPServer]
DNS=84.200.69.80 84.200.70.40
EOF

Rinomina /etc/wpa_supplicant/wpa_supplicant.conf in modo che corrisponda alle impostazioni dell'interfaccia e riavvia:

rpi ~# mv /etc/wpa_supplicant/wpa_supplicant.conf /etc/wpa_supplicant/wpa_supplicant-wlan0.conf
rpi ~# systemctl disable wpa_supplicant@wlan0.service
rpi ~# systemctl reboot

Punto di controllo 5: dopo il riavvio e l'accesso, controllare la connessione cablata eth0 :

rpi ~$ ip -4 addr show dev eth0
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    inet 192.168.50.60/24 brd 192.168.50.255 scope global eth0
       valid_lft forever preferred_lft forever

rpi ~$ ping -I eth0 -c3 google.com
PING google.com (172.217.10.14) from 192.168.50.60 eth0: 56(84) bytes of data.
64 bytes from lga34s12-in-f14.1e100.net (172.217.10.14): icmp_seq=1 ttl=51 time=93.5 ms
64 bytes from lga34s12-in-f14.1e100.net (172.217.10.14): icmp_seq=2 ttl=51 time=93.5 ms
64 bytes from lga34s12-in-f14.1e100.net (172.217.10.14): icmp_seq=3 ttl=51 time=93.5 ms

--- google.com ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2003ms
rtt min/avg/max/mdev = 93.519/93.551/93.592/0.030 ms

Checkpoint 6: Controlla la connessione wifi wlan0 :

rpi ~$ sudo systemctl start wpa_supplicant@wlan0.service
rpi ~$ sudo iw dev wlan0 info
Interface wlan0
        ifindex 3
        wdev 0x1
        addr b8:27:eb:06:e8:8b
        ssid RPiNet
        type AP
        wiphy 0
        channel 1 (2412 MHz), width: 20 MHz, center1: 2412 MHz
        txpower 31.00 dBm

rpi ~$ ip -4 addr show dev wlan0
3: wlan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    inet 192.168.4.1/24 brd 192.168.4.255 scope global wlan0
       valid_lft forever preferred_lft forever

Controlla il wifi sul tuo cellulare. Dovresti trovareRPiNet e puoi connetterti ad esso. Il tuo cellulare non può accedere a Internet perché il routing non è ancora configurato.

Passaggio successivo: abilitare NAT per la connessione a Internet. Per configurare NAT devi estendere il servizio wpa_supplicant con:

rpi ~$ sudo systemctl edit wpa_supplicant@wlan0.service

Nell'editor vuoto inserire queste istruzioni, salvarle ed uscire dall'editor:

[Service]
ExecStartPre=/sbin/iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
ExecStopPost=-/sbin/iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE

Quindi fa:

rpi ~$ sudo systemctl daemon-reload
rpi ~$ sudo systemctl restart systemd-networkd.service
rpi ~$ sudo systemctl restart wpa_supplicant@wlan0.service

Checkpoint 7: ora dovresti essere in grado di accedere a Internet con il telefono cellulare.


@Wim Hai chiesto in una risposta cancellata: "Come si può fare con la nuova versione di Raspbian Buster?" Questa risposta "━━━ Verifica l'installazione passo dopo passo con punti di controllo ━━━" non è quella giusta se desideri impostare un punto di accesso. Per questo è necessario utilizzare l'altra risposta "━━━ Impostazione di un punto di accesso ━━━" qui su questo lato. Funziona anche con Raspbian Buster. L'ho appena verificato.
Ingo,
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.