Useremo il dnsmasqpacchetto 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-servere bind9pacchetti per DHCP e DNS, rispettivamente, ma per i nostri scopi, dnsmasqfunziona bene.
sudo apt-get install dnsmasq
Dobbiamo configurare le interfacce. Assegneremo un indirizzo IP statico a
eth0cui verrà utilizzato come gateway. Apri il file delle interfacce
sudo nano /etc/network/interfaces
Modifica la eth0sezione 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 dnsmasqfile 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.conffile per abilitare l'inoltro di pacchetti
sudo nano /etc/sysctl.conf
Rimuovi #dall'inizio della riga contenente
net.ipv4.ip_forward=1Ciò 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 eth0e
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.localfile con
sudo nano /etc/rc.locale 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