Configurer un Raspberry Pi comme point d'accès - la manière simple


16

Je sais comment le faire de la manière classique, comme décrit par exemple dans la documentation officielle de Configuration d'un Raspberry Pi comme point d'accès dans un réseau autonome (NAT) . Mais cela nécessite de nombreux composants différents qui doivent jouer ensemble et chaque composant doit être configuré à sa manière. Ce sont les réseaux (ifupdown) , dhcpcd , hostapd , dnsmasq et bridge-utils .

De nos jours, Raspbian Stretch a tous les composants nécessaires intégrés, il n'est donc pas nécessaire d'installer de logiciel supplémentaire. Cela pourrait simplifier considérablement la configuration.

Est-il possible de simplement configurer Raspbian pour qu'il fonctionne comme un point d'accès wifi sans installer de logiciel supplémentaire?

Réponses:


26

━━━ Configuration d'un point d'accès ━━━

Nous parlons d'un point d'accès avec un port Ethernet eth0 .

Si vous voulez un point d'accès avec une connexion client wlan0 à un autre réseau wifi (répéteur wlan), regardez le point d'accès comme routeur / répéteur WiFi, en option avec pont .

Il est possible de configurer Raspbian Stretch comme point d'accès wifi sans installer de logiciel supplémentaire. Tous les composants nécessaires sont disponibles: la mise en réseau, le serveur DHCP et le pontage sont fournis avec systemd-networkd et le wifi peut être configuré avec wpa_supplicant . La connexion de deux interfaces eth0 et wlan0 peut se faire par routage ou par pontage. Ci-dessous d'abord la configuration pour une installation rapide, puis les détails. Nous devons d'abord passer à systemd-networkd .

Testé avec
Raspbian Buster Lite 2019-09-26 sur un Raspberry Pi 4B mis à jour le 2020-01-18.
Mises à jour effectuées avec sudo apt update && sudo apt full-upgrade && sudo reboot.
Vous trouverez ici la dernière révision testée des versions précédentes de Raspbian .


♦ Configuration générale

Passez à systemd-networkd

Pour des informations détaillées, consultez (1) et Comment configurer la résolution de noms avec systemd-networkd . Ici seulement en bref. Exécutez ces commandes:

# 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

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

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

Configurer wpa_supplicant comme point d'accès

Configurer wpa_supplicant comme point d'accès créer ce fichier avec vos paramètres pour country=, ssid=, psk=et peut - être frequency=. Vous pouvez simplement copier et coller ceci dans un bloc sur votre ligne de commande en commençant par catet en incluant les deux EOF (le délimiteur EOF n'obtiendra pas une partie du fichier):

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

Configuration générale terminée. Retourner.


♦ Configuration d'un point d'accès autonome

Exemple pour cette configuration:

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

Faire "Configuration générale" puis créez le fichier suivant pour configurer wlan0 . Nous n'avons que le point d'accès. Aucun périphérique Ethernet n'est configuré.

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

Si vous le souhaitez, redémarrez.
C'est ça.
Sinon, continuez, pas besoin de redémarrer pour le moment.


♦ Mise en place d'un point d'accès et avec eth0, sans routage

Exemple pour cette configuration:

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

Installer

Faites "Configuration d'un point d'accès autonome" puis créez le fichier suivant pour configurer 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

Redémarrez.
C'est ça.

Détails

L'interface eth0 est connectée avec un câble Ethernet au routeur Internet et obtient sa configuration par DHCP à partir du routeur Internet. Ce n'est pas un problème de lui donner une adresse IP statique avec par exemple Address=192.168.50.2au lieu deDHCP=yes .

Sans routage, vous ne pouvez pas accéder à Internet avec le téléphone portable. Vous ne pouvez y accéder qu'à partir du RPi lui-même pour obtenir des mises à jour ou quelque chose du genre.


♦ Mise en place d'un point d'accès et avec eth0, avec NAT (recommandé)

Exemple pour cette configuration:

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

Installer

Faites "Configuration générale" puis créez les fichiers suivants pour configurer wlan0 et eth0 . Si vous avez essayé l'une des configurations précédentes, vous pouvez simplement remplacer les deux fichiers. Assurez-vous que vous utilisez un sous-réseau différent pour le point d'accès que celui du routeur. Dans cet exemple, le routeur n'utilise pas le sous-réseau 192.168.4.0/24. Si vous avez besoin d'un autre sous-réseau, changez simplement la ligne d'adresse, par exemple 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

Redémarrez.
C'est ça.

Détails

Si vous n'avez pas accès au routeur Internet, vous pouvez le simuler avec NAT (traduction d'adresse réseau) pour dire que tous les paquets proviennent de votre RasPi AP. Mais ce n'est pas un routage propre et a des limites. Les clients sur le sous-réseau du routeur ne peuvent pas se connecter aux clients sur le wifi. Mais dans la plupart des cas, cela n'est pas nécessaire, cette configuration est donc recommandée car elle simplifie la configuration. Si vous devez vous connecter aux clients wifi à partir du réseau de routeurs, vous devez utiliser le routage complet comme décrit dans la section suivante.


♦ Mise en place d'un point d'accès et avec eth0, avec routage

Exemple pour cette configuration:

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

Installer

Faites "Configuration générale" puis créez les fichiers suivants pour configurer wlan0 et eth0 . Si vous avez essayé l'une des configurations précédentes, vous pouvez simplement remplacer les deux fichiers. Assurez-vous que vous utilisez différents sous-réseaux pour le point d'accès et le réseau du routeur. Nous devons utiliser des adresses IP statiques car nous devons les utiliser comme passerelles.

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

Redémarrez.

Pour que le routage fonctionne correctement, vous devez définir un itinéraire statique dans votre routeur Internet afin qu'il puisse trouver l'itinéraire pour les paquets à venir sur RasPi vers les clients connectés par wifi au point d'accès. Sur la plupart des routeurs Internet, vous pouvez définir un itinéraire statique, mais la façon de procéder varie d'un modèle à l'autre. A vous de le découvrir. Par exemple, votre RasPi eth0 interface a l'adresse IP statique 192.168.50.2. Ensuite, sur votre routeur, la passerelle (saut suivant) est 192.168.50.2, le réseau de destination est 192.168.4.0/24 (ou 192.168.4.0 masque de réseau 255.255.255.0).

Cela signifie pour le routeur Internet: "envoyer tous les paquets appartenant au sous-réseau 192.168.4.0/24(réseau de destination d'AP) au routeur suivant sur mon sous-réseau, le RasPi AP 192.168.50.2(passerelle). Il sait où aller."

C'est ça.


♦ Mise en place d'un point d'accès avec un pont

Exemple pour cette configuration:

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

Si vous avez déjà un réseau Ethernet avec serveur DHCP et routeur Internet et que vous souhaitez l'étendre avec un point d'accès wifi mais avec les mêmes adresses IP, vous utilisez un pont. Ceci est souvent utilisé comme liaison montante vers un routeur.

Installer

Effectuez "Configuration générale" puis créez les trois fichiers suivants pour configurer les interfaces réseau. Si vous avez essayé l'une des configurations précédentes, vous pouvez simplement supprimer tous les fichiers /etc/systemd/network/sauf 99-default.links'ils sont présents. Les adresses IP sont des exemples. Vous devez utiliser le vôtre.

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

Maintenant, nous devons dire à wpa_supplicant d'utiliser un pont. Nous le faisons en modifiant son service avec:

rpi ~# systemctl edit wpa_supplicant@wlan0.service

Dans l'éditeur vide, insérez ces instructions, enregistrez-les et quittez l'éditeur:

[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

Redémarrez.
C'est ça.

Détails

Nous devons dire à wpa_supplicant que son interface wlan0 est esclave d'un pont. Sinon, il rejettera la connexion du client avec un «mot de passe incorrect» signifie que la négociation de clé ne fonctionne pas. Lorsque nous disons à / sbin / wpa_supplicant avec l'option -dbr0d'utiliser un pont pour wlan0, l'interface doit déjà être membre du pont. C'est ce que nous faisons avec le fichier de dépôt (superposition) pour le service wpa_supplicant . L'instruction vide ExecStart=supprime l'ancienne entrée. Sinon, vous avez deux lignes ExecStart=et wpa_supplicant démarre deux fois. L'original ExecStart=avec lequel vous pouvez voir systemctl cat wpa_supplicant@wlan0.service.

Normalement, le routeur auquel vous êtes connecté avec le câble Ethernet a un serveur DHCP activé. Le pont est également transparent pour les requêtes DHCP des stations (périphériques connectés au point d'accès), vous n'avez donc pas à vous soucier de la configuration de ses interfaces avec les adresses IP et les options. Le routeur le servira.
excursus:
Mais si le routeur n'a pas de serveur DHCP, vous pouvez en configurer un sur le RasPi. systemd-networkd a des options pour configurer son serveur DHCP intégré mais le problème est que systemd-networkd suppose qu'il s'exécute sur le routeur lui-même et ce n'est pas vrai dans ce cas. Il servira de mauvaises options aux stations, en particulier l' option routeur . Il n'y a aucun moyen de le configurer. Nous devons donc installerdnsmasqdans ce cas qui peut être configuré selon les besoins. Installez-le et configurez-le avec (par exemple, utilisez vos propres adresses 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 ~$

Dans cet exemple, les adresses IP 192.168.50.128 à 192.168.50.164 sont réservées à donner aux stations. Pour les autres adresses IP statiques, utilisez-en une en dehors de ce pool, ainsi que l'adresse IP du pont lui-même.


♦ Optimisation

Au démarrage de wpa_supplicant, vous obtenez principalement ces messages dans le 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

Ce n'est pas un gros problème. wpa_supplicant a besoin de nombres aléatoires pour générer des clés de chiffrement. Cela se fait un peu lentement, il faut donc attendre. Heureusement , le Raspi a une construction en T rue R Andom N mbre G enerator (TRNG). Nous pouvons l'utiliser et accélérer l'obtention de nombres aléatoires en installant un logiciel (3) avec:

rpi ~$ sudo apt install rng-tools

Mise à jour:
depuis Raspbian Stretch 2019-04-08 il n'est pas nécessaire d'installer rng-tools. Ils sont installés par défaut.


♦ Dépannage

systemd-networkd

Regardez le statut d'un service:

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

Ou même un peu plus:

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

J'ai trouvé utile de suivre la journalisation en cours:

rpi ~$ journalctl --boot --follow

Si vous avez créé un fichier, vous pouvez consulter le résultat:

rpi ~$ systemctl cat wpa_supplicant@wlan0.service

Pour vérifier l'environnement d'exécution d'une unité, vous pouvez l'afficher et par exemple regarder s'il y a deux ExecStart=lignes:

rpi ~$ systemctl show wpa_supplicant@wlan0.service

Et si rien d'autre ne vous aide, vous pouvez activer l'option de débogage à partir de /sbin/wpa_supplicantavec -ddans un fichier déposé:

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

La sortie est dans le journal. De cette façon, j'ai trouvé le problème avec la mauvaise négociation de clé.

Wifi

Si vous avez configuré le point d'accès, vous devriez le trouver avec un téléphone portable. Affichage des réseaux disponibles, il est présenté avec le nom RPiNet et vous pouvez vous y connecter. Sur le RasPi, vous pouvez également utiliser la commande:

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

Comme vous pouvez le voir, il s'agit du type AP (point d'accès) et il vous montrera également quel canal il utilise. Un problème peut être de traduire un canal en fréquence. La fréquence doit correspondre à un canal. Vous pouvez consulter (2) pour une liste des canaux WLAN. Par exemple , pour le canal d'utilisation 36 sur la bande 5,1 GHz , vous devez définir frequency=5180dans /etc/wpa_supplicant\wpa_supplicant.conf. Mais vous devez être sûr que votre wifi prend en charge la bande 5,1 GHz. Vous pouvez vérifier avecsudo iw phy . Cela vous donnera un tas d'informations. Il doit également contenir des fréquences prises en charge supérieures à 5000 MHz. Si vous ne voyez que des fréquences de 24xx MHz, vous ne pouvez bien sûr l'utiliser que.

Un autre point pourrait être des nombres aléatoires. Pour chiffrer les clés des connexions sécurisées, wpa_supplicant a besoin de nombres aléatoires. Générer cela est très lent sur un Raspberry Pi. S'il n'a pas suffisamment d'entropie pour générer des clés de chiffrement, wpa_supplicant rejettera l'authentification. Vous pouvez voir avec cat /proc/sys/kernel/random/entropy_availcombien d'entropie est disponible. Il devrait être> 1000 pour fonctionner assez rapidement. Pour accélérer cela, les rng-toolssont installés par défaut. Consultez la section Optimisation pour plus d'informations.


références:
[1] Comment migrer du réseau vers systemd-networkd avec basculement dynamique
[2] Liste des canaux WLAN
[3] Rng-tools


rpi ~ # systemd-tmpfiles --create --prefix / var / log / journalroot ECHEC avec ce message de sortie @pi: ~ # systemd-tmpfiles --create --prefix / var / log / journal Impossible de définir l'attribut de fichier pour '/ var / log / journal ', valeur = 0x00800000, mask = 0x00800000: opération non prise en charge Impossible de définir l'attribut de fichier pour' / var / log / journal / 6d18954849a74479955b761e891619aa ', valeur = 0x00800000, mask = 0x00800000: opération non prise en charge donc le journal ne peut pas être mis en œuvre. Pas un bon début de mise en œuvre de la procédure.
Jan Hus

1
Salut @JanHus Merci pour vos commentaires. Ceci n'est qu'un avertissement et non une erreur et n'a pas d'importance. Je l'obtiens aussi à chaque fois. Le journal persistant est créé. Regardez avec ls /var/log/journal/. Vous verrez un répertoire qui ressemble fa9462093e8d419cb646d0a0c44771c2. Il s'agit du stockage du journal auquel vous accédez journalctl. Je mettrai à jour ma réponse.
Ingo

Oui, j'ai vérifié si le fichier a été créé. Mais j'ai été détourné et arrêté. Je continue aujourd'hui. Jusqu'à présent, c'est l'un des meilleurs "tutoriels" sur le sujet. Merci de l'avoir posté. PS l'appelle persistant OK? Peu déroutant quand il est créé en utilisant le processus temporaire.
Jan Hus

2
@Ingo Je pense qu'il est recommandé d'utiliser proto=WPA2dans la configuration AP. Mon téléphone, au moins, se plaint de "faible sécurité" sans lui.
Robin Dinse

2
@RobinDinse Vous avez bien sûr raison. Je l'ai supervisé. Merci pour l'astuce. Ai-je ajouté proto=RSN. C'est ce que préfère le docu (nommer proto=WPA2un alias).
Ingo

3

Une manière encore PLUS FACILE de configurer un Raspberry Pi en tant qu'AP est d'utiliser le repo pi-ap Github qui automatise la configuration d'un Pi 3B + / 4 en AP.

Connectez le Pi à un port libre de votre routeur connecté à Internet sur lequel DHCP est activé (probablement le cas dans la plupart des routeurs grand public).

Une fois connecté, SSH dans Pi sur l'IP DHCP attribuée eth0par le routeur, puis:

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

cd pi-ap

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

sudo ./install.sh

Buvez du thé et après avoir attendu environ 2 minutes, le SSID que vous avez défini variables.shapparaîtra dans votre liste de réseaux sans fil. Connectez-vous au WLAN du Pi annoncé.

Pour SSH directement à AP lui-même sur l' wlan0interface de Pi , utilisez l'IP par défaut de192.168.0.1

VEUILLEZ NOTER : le sous-réseau DHCP par défaut utilisé par pi-ap pour attribuer les adresses IP des clients WiFi variables.shest 192.168.0.0/28. Si vous utilisez déjà ce sous-réseau sur votre réseau, définissez un sous-réseau différent variables.shpour les clients WiFi AVANT de l' exécuter install.sh.

Aucune calculatrice de sous-réseau ni aucune compétence sérieuse en réseau requise pour obtenir de bons résultats. pi-ap prend même en charge la restriction d'accès via les ACL MAC.

DIVULGATION : Je suis le développeur de pi-ap .


0

━━━ Vérifiez l'installation étape par étape avec des points de contrôle ━━━

Cette réponse n'est pas pensée pour la configuration. Pour une configuration stable, regardez l'autre réponse Configuration d'un point d'accès .

Cette réponse est principalement pour le dépannage et pour montrer comment cela fonctionne avec des commandes détaillées étape par étape et des points de contrôle mais sans informations d'arrière-plan. Je suppose que vous avez un moniteur, un clavier et une souris attachés à votre Raspberry Pi. Les adresses IP et autres paramètres de cette vérification en sont des exemples. Vous devez utiliser le vôtre. Vous pouvez toujours consulter journalctl -b -eles informations enregistrées.

Download ZIPimage Raspbian Stretch Lite 2018-11-13 sur votre PC Linux.

Point de contrôle 1: Comparez la somme de contrôle avec celle du site de téléchargement.

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

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

Étape suivante: graver l'image sur une carte SD connectée:

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

Checkpoint 2: vérifiez les partitions sur la carte 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

Étape suivante: montez la partition de démarrage et créez un wpa_supplicant.conffichier:

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/

Mettez la carte SD dans votre RasPi et démarrez.

Point de contrôle 3: Après la connexion, vérifiez la connexion filaire. L' interface eth0 doit avoir une adresse 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

Cela devrait fonctionner hors de la boîte. Si cela ne fonctionne pas, vous avez un problème général avec la configuration de votre réseau. Veuillez le corriger avant de continuer.

Checkpoint 4: Vérifiez le point d'accès:

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' interface wlan0 doit avoir une adresse IP. Parce que nous n'avons pas configuré l'interface, elle aura une adresse Link-local de 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

Vous verrez RPiNet dans la liste des points d'accès sur votre téléphone mobile mais vous ne pouvez pas encore vous y connecter.

Étape suivante: mise à niveau complète et redémarrage:

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

Après le redémarrage et la connexion, passez à 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

(*) Vous obtiendrez un ou deux avertissements déroutants "... Impossible de définir l'attribut de fichier ..." Ce ne sont pas des erreurs et cela n'a pas d'importance dans ce cas.

Créez ces fichiers pour les interfaces eth0 et wlan0 avec vos paramètres:

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

Renommez /etc/wpa_supplicant/wpa_supplicant.conf pour qu'il corresponde au paramètre d'interface et redémarrez:

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

Point de contrôle 5: après le redémarrage et la connexion, vérifiez la connexion filaire 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: Vérifiez la connexion 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

Vérifiez le wifi sur votre téléphone mobile. Vous devriez trouver RPiNetet vous pouvez vous y connecter. Votre téléphone mobile ne peut pas accéder à Internet car le routage n'est pas encore configuré.

L'étape suivante: activer NAT pour la connexion Internet. Pour configurer NAT, vous devez étendre le service wpa_supplicant avec:

rpi ~$ sudo systemctl edit wpa_supplicant@wlan0.service

Dans l'éditeur vide, insérez ces instructions, enregistrez-les et quittez l'éditeur:

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

Alors fais:

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

Checkpoint 7: vous devriez maintenant pouvoir accéder à Internet avec le téléphone portable.


@Wim Vous avez demandé dans une réponse supprimée: "Comment cela peut-il être fait avec la nouvelle version de Raspbian Buster?" Cette réponse "━━━ Vérifier l'installation étape par étape avec les points de contrôle ━━━" n'est pas la bonne si vous souhaitez configurer un point d'accès. Pour cela, vous devez utiliser l'autre réponse "━━━ Configuration d'un point d'accès ━━━" ici de ce côté. Il fonctionne également avec Raspbian Buster. Je viens de le vérifier.
Ingo
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.