W dnsmasq
tym celu wykorzystamy pakiet, ponieważ jest on połączony z serwerem DHCP i DNS, a także łatwy w konfiguracji.
Jeśli chcesz coś trochę bardziej „wagi ciężkiej”, można użyć
isc-dhcp-server
i bind9
pakietów DHCP i DNS odpowiednio, ale dla naszych celów, dnsmasq
działa dobrze.
sudo apt-get install dnsmasq
Musimy skonfigurować interfejsy. Przydzielimy statyczny adres IP,
eth0
który będzie używany jako brama. Otwórz plik interfejsów
sudo nano /etc/network/interfaces
Edytuj eth0
sekcję w następujący sposób:
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
Następnie skonfigurujemy dnsmasq
. Dostarczony dnsmasq
plik konfiguracyjny zawiera wiele informacji o tym, jak go używać. Radzę więc go przenieść i stworzyć nowy.
sudo mv /etc/dnsmasq.conf /etc/dnsmasq.conf.orig
sudo nano /etc/dnsmasq.conf
Wklej następujące elementy do nowego pliku
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
Edytuj /etc/sysctl.conf
plik, aby włączyć przekazywanie pakietów
sudo nano /etc/sysctl.conf
Usuń #
początek linii zawierającej
net.ipv4.ip_forward=1
To umożliwi przekazywanie pakietów przy następnym uruchomieniu. Ale jeśli chcesz wypróbować go teraz bez ponownego uruchamiania, zrób to.
sudo sh -c "echo 1 > /proc/sys/net/ipv4/ip_forward"
Musimy także udostępniać połączenie internetowe RPi urządzeniom podłączonym przez Wi-Fi. Skonfigurujemy NAT pomiędzy eth0
i
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
Musimy jednak stosować te reguły przy każdym ponownym uruchomieniu Pi, więc uruchom, sudo sh -c "iptables-save > /etc/iptables.ipv4.nat"
aby zapisać reguły w pliku /etc/iptables.ipv4.nat
. Teraz musimy uruchomić to po każdym ponownym uruchomieniu, więc otwórz /etc/rc.local
plik z
sudo nano /etc/rc.local
i tuż nad linią exit 0
, dodaj następujący wiersz:
iptables-restore < /etc/iptables.ipv4.nat
I to wszystko! Teraz ponownie uruchom RPi, a będziesz mieć dostęp do Internetu
sudo reboot
Powyższa konfiguracja nie będzie działać w nowszej wersji Raspbian. Stworzyłem więc skrypt, który pozwala na mniejszy ból.
Upewnij się, że podałeś pełną ścieżkę do pliku. I jesteś skończony. Teraz uruchom ponownie, aby zobaczyć zmiany