Nous utiliserons le dnsmasq
package à cet effet car il est un serveur DHCP et DNS combiné et également facile à configurer.
Si vous voulez quelque chose d'un peu plus «lourd», vous pouvez utiliser les
packages isc-dhcp-server
et bind9
pour DHCP et DNS respectivement, mais pour nos besoins, cela dnsmasq
fonctionne très bien.
sudo apt-get install dnsmasq
Nous devons configurer des interfaces. Nous allons attribuer une adresse IP statique à
eth0
laquelle sera utilisée comme passerelle. Ouvrez le fichier d'interface
sudo nano /etc/network/interfaces
Modifiez la eth0
section comme ceci:
allow-hotplug eth0
iface eth0 inet static
address 192.168.2.1
netmask 255.255.255.0
network 192.168.2.0
broadcast 192.168.2.255
Ensuite, nous allons configurer dnsmasq
. Le dnsmasq
fichier de configuration livré contient de nombreuses informations sur son utilisation. Je conseillerai donc de le déplacer et d'en créer un nouveau.
sudo mv /etc/dnsmasq.conf /etc/dnsmasq.conf.orig
sudo nano /etc/dnsmasq.conf
Collez ce qui suit dans le nouveau fichier
interface=eth0 # Use interface eth0
listen-address=192.168.2.1 # listen on
# Bind to the interface to make sure we aren't sending things
# elsewhere
bind-interfaces
server=8.8.8.8 # Forward DNS requests to Google DNS
domain-needed # Don't forward short names
# Never forward addresses in the non-routed address spaces.
bogus-priv
# Assign IP addresses between 192.168.2.2 and 192.168.2.100 with a
# 12 hour lease time
dhcp-range=192.168.2.2,192.168.2.100,12h
Modifiez le /etc/sysctl.conf
fichier pour activer le transfert de paquets
sudo nano /etc/sysctl.conf
Supprimez le #
du début de la ligne contenant
net.ipv4.ip_forward=1
Cela permettra le transfert de paquets au prochain redémarrage. Mais si vous voulez l'essayer maintenant sans redémarrer, faites-le.
sudo sh -c "echo 1 > /proc/sys/net/ipv4/ip_forward"
Nous devons également partager la connexion Internet de RPi avec les appareils connectés via Wi-Fi. Nous allons configurer un NAT entre eth0
et
wlan0
:
sudo iptables -t nat -A POSTROUTING -o wlan0 -j MASQUERADE
sudo iptables -A FORWARD -i wlan0 -o eth0 -m state --state RELATED,ESTABLISHED -j ACCEPT
sudo iptables -A FORWARD -i eth0 -o wlan0 -j ACCEPT
Cependant, nous avons besoin que ces règles soient appliquées à chaque redémarrage du Pi, alors exécutez sudo sh -c "iptables-save > /etc/iptables.ipv4.nat"
pour enregistrer les règles dans le fichier /etc/iptables.ipv4.nat
. Maintenant, nous devons l'exécuter après chaque redémarrage, alors ouvrez le /etc/rc.local
fichier avec
sudo nano /etc/rc.local
et juste au-dessus de la ligne exit 0
, ajoutez la ligne suivante:
iptables-restore < /etc/iptables.ipv4.nat
Et c'est tout! Redémarrez maintenant votre RPi et vous pourrez accéder à Internet
sudo reboot
La configuration ci-dessus ne fonctionnera pas dans la nouvelle version de Raspbian. J'ai donc créé un script pour cela qui le rend possible en moins de douleur.
Assurez-vous que vous avez indiqué le chemin d'accès complet au fichier. Et tu as fini. Redémarrez maintenant pour voir les changements