Useremo il dnsmasq
pacchetto per questo scopo perché è un server DHCP e DNS combinato e anche facile da configurare.
Se volete qualcosa di un po 'più 'pesante', è possibile utilizzare la
isc-dhcp-server
e bind9
pacchetti per DHCP e DNS, rispettivamente, ma per i nostri scopi, dnsmasq
funziona bene.
sudo apt-get install dnsmasq
Dobbiamo configurare le interfacce. Assegneremo un indirizzo IP statico a
eth0
cui verrà utilizzato come gateway. Apri il file delle interfacce
sudo nano /etc/network/interfaces
Modifica la eth0
sezione in questo modo:
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
Successivamente, configureremo dnsmasq
. Il dnsmasq
file di configurazione fornito contiene molte informazioni su come usarlo. Quindi, consiglierò di spostarlo e crearne uno nuovo.
sudo mv /etc/dnsmasq.conf /etc/dnsmasq.conf.orig
sudo nano /etc/dnsmasq.conf
Incolla quanto segue nel nuovo file
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
Modifica il /etc/sysctl.conf
file per abilitare l'inoltro di pacchetti
sudo nano /etc/sysctl.conf
Rimuovi #
dall'inizio della riga contenente
net.ipv4.ip_forward=1
Ciò consentirà l'inoltro di pacchetti al successivo riavvio. Ma se vuoi provarlo subito senza riavviare, fallo.
sudo sh -c "echo 1 > /proc/sys/net/ipv4/ip_forward"
Dobbiamo anche condividere la connessione Internet di RPi con i dispositivi collegati tramite Wi-Fi. Configureremo un NAT tra eth0
e
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
Tuttavia, abbiamo bisogno di applicare queste regole ogni volta che riavviamo Pi, quindi esegui sudo sh -c "iptables-save > /etc/iptables.ipv4.nat"
per salvare le regole nel file /etc/iptables.ipv4.nat
. Ora dobbiamo eseguirlo dopo ogni riavvio, quindi apri il /etc/rc.local
file con
sudo nano /etc/rc.local
e appena sopra la linea exit 0
, aggiungi la seguente riga:
iptables-restore < /etc/iptables.ipv4.nat
E questo è tutto! Ora riavvia il tuo RPi e sarai in grado di accedere a Internet
sudo reboot
La configurazione precedente non funzionerà nella versione più recente di Raspbian. Quindi, ho creato una sceneggiatura per questo che lo rende possibile con meno dolore.
Assicurati di aver fornito il percorso completo del file. E hai finito. Ora riavvia per vedere le modifiche