Wir werden das dnsmasq
Paket für diesen Zweck verwenden, da es ein kombinierter DHCP- und DNS-Server ist und auch einfach zu konfigurieren ist.
Wenn Sie etwas "Schwergewichtigeres" möchten, können Sie die
Pakete isc-dhcp-server
und bind9
für DHCP bzw. DNS verwenden. Für unsere Zwecke dnsmasq
funktioniert dies jedoch einwandfrei.
sudo apt-get install dnsmasq
Wir müssen Schnittstellen konfigurieren. Wir werden eine statische IP-Adresse zuweisen
eth0
, die als Gateway verwendet wird. Öffnen Sie die Interface-Datei
sudo nano /etc/network/interfaces
Bearbeiten Sie den eth0
Abschnitt wie folgt:
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
Als nächstes werden wir konfigurieren dnsmasq
. Die mitgelieferte dnsmasq
Konfigurationsdatei enthält viele Informationen zur Verwendung. Daher rate ich, es zu verschieben und ein neues zu erstellen.
sudo mv /etc/dnsmasq.conf /etc/dnsmasq.conf.orig
sudo nano /etc/dnsmasq.conf
Fügen Sie Folgendes in die neue Datei ein
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
Bearbeiten Sie die /etc/sysctl.conf
Datei, um die Paketweiterleitung zu aktivieren
sudo nano /etc/sysctl.conf
Entfernen Sie am #
Anfang der Zeile, die Folgendes enthält:
net.ipv4.ip_forward=1
Damit wird die Paketweiterleitung beim nächsten Neustart aktiviert. Aber wenn Sie es jetzt ohne Neustart versuchen möchten, dann tun Sie dies.
sudo sh -c "echo 1 > /proc/sys/net/ipv4/ip_forward"
Wir müssen auch die Internetverbindung von RPi mit den über Wi-Fi verbundenen Geräten teilen. Wir konfigurieren ein NAT zwischen eth0
und
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
Diese Regeln müssen jedoch bei jedem Neustart des Pi angewendet werden. Führen Sie sudo sh -c "iptables-save > /etc/iptables.ipv4.nat"
sie daher aus , um die Regeln in der Datei zu speichern /etc/iptables.ipv4.nat
. Jetzt müssen wir dies nach jedem Neustart ausführen. Öffnen Sie die /etc/rc.local
Datei mit
sudo nano /etc/rc.local
und exit 0
fügen Sie über der Zeile die folgende Zeile hinzu:
iptables-restore < /etc/iptables.ipv4.nat
Und das ist alles! Starten Sie jetzt einfach Ihr RPi neu und Sie haben Zugang zum Internet
sudo reboot
Die obige Konfiguration funktioniert in neueren Versionen von Raspbian nicht. Deshalb habe ich ein Skript dafür erstellt, das es mit weniger Schmerzen ermöglicht.
Stellen Sie sicher, dass Sie den vollständigen Pfad zur Datei angegeben haben. Und du bist fertig. Starten Sie jetzt neu, um die Änderungen zu sehen