Dzielenie łącza przez Raspberry Pi, udostępnianie Internetu przez system Rasbian
Przypuśćmy, że nasza Malinka ma połączenie z Internetem za pomocą WiFi. Zatem dysponujemy wolnym gniazdem ethernet (Kabel sieciowy), które może posłużyć nam jako wyjście z którego będzie udostępniane połączenie internetowe. Taki sygnał możemy następnie wpuścić czy to na dowolny komputer PC czy też na router, który następnie sam będzie dalej rozdzielał łącze.
Schemat działania:

źródło: stackexchange.com
Brzmi dość obiecująco i w zasadzie nie jest takie trudne do wykonania 🙂
Czym musimy dysponować:
- Urządzenie Raspberry Pi
- Zainstalowany system Rasbian
- Karta WiFi (co prawda jest już wbudowana fabryczna karta w urządzenie, jednak lepiej użyć kartę na USB, która ma lepszy sygnał odbioru i nie rwie tak połączenia. Jednak wszystko zależy od Twojej konfiguracji sprzętowej)
- Kabel ethernet. Najlepiej scrossowany, choć nie jest to warunek konieczny.
Zawartość artykułu
Instalacja Raspbian.
Jeśli posiadasz już ten system na Twojej Mailince – pomiń tę sekcję.
Na początek musimy dysponować systemem Rasbian na naszym urządzeniu Raspberry Pi. W tym celu ściągamy plik .img z oficjalnej strony producenta:
https://www.raspberrypi.org/downloads/raspbian/
Niestety strona często jest przeciążona:

musimy skorzystać z licznych witryn świadczących mirrory np.
http://ftp.jaist.ac.jp/pub/raspberrypi/raspbian/images/
Stamtąd pobieramy plik:
wget http://ftp.jaist.ac.jp/pub/raspberrypi/raspbian/images/raspbian-2018-06-29/2018-06-27-raspbian-stretch.zip
Następnie go rozpakowujemy:
unzip 2018-06-27-raspbian-stretch.zip
Gotowy plik .img instalujemy analogicznie jak to przedstawialismy w artykule https://linuxporady.pl/instalacja-w-konsoli-systemu-osmc-na-karcie-microsd-dla-raspberry-pi/
Czyli wkładamy kartę do komputera (przejściówka, czytnik kart itp) i odmountujemy wszystkie dyski:
umount -a
Listujemy urządzenia, które są wpięte w komputer:
sudo fdisk -l
Odnajdujemy urządzenie, zazwyczaj jest to:
/dev/mmcblk0
Nagrywamy na nią nasz plik .img, który pobieramy:
sudo dd if=./2018-06-27-raspbian-stretch.img of=/dev/mmcblk0
Teraz należy uzbroić się w cierpliwość… Może to potrwać nawet ok 30 min.
Nie trzeba chyba wspominać, że ta operacja permanentnie nadpisze wszystkie Twoje dane na karcie 😐
Połączenie Raspberry Pi z Internetem
Opisywaliśmy to w artykule https://linuxporady.pl/raspberry-pi-i-polaczenie-wifi-pre-shared-key/
Wykonaj te czynności i upewnij się, że masz łącze z netem przez proste wywołanie w konsoli:
ping linuxporady.pl
Dzielenie łącza przez Raspberry Pi – konfiguracja komputera przekazującego połączenie z Internetem (Rasbiana)
OK przechodzimy do sedna sprawy.
Na początek nazwy interfejsów sieciowych. Możemy je sprawdzić poprzez:
ifconfig
Dla nas będzie to:
wlan0 – interfejs karty WIFI
eth0 – interfejs łącza ethernet
Jeśli u Ciebie jest inaczej (szczególnie jeśli używasz np. dodatkowej karty WIFI) – uwzględnij to.
Na początek aktualizujemy system:
sudo su apt-get update apt-get ugrade
Następnie instalujemy:
sudo apt-get install network-manager dnsmasq
Restetujemy system:
sudo reboot
Ustawiamy w Rasbianie następujące adresy IP:
IP: 192.168.10.1 NETMASK: 255.255.255.0 GATEWAY: 192.168.10.1
Ustawiamy te adresy za pomocą komend:
ifconfig eth0 down ifconfig eth0 192.168.10.1 netmask 255.255.255.0 ifconfig eth0 up
Restartujemy sieć:
sudo /etc/init.d/networking restart
Wywołujemy komendy:
sudo sysctl -w net.ipv4.ip_forward=1 sudo iptables -t nat -A POSTROUTING -o wlan0 -j MASQUERADE
Po czym odp. konfiugurujemy iptables:
sudo iptables -F FORWARD sudo iptables -A FORWARD -j ACCEPT sudo iptables -nvL
Konfigurujemy DNS. Tworzymy kopię bezpieczeństwa tego pliku:
sudo cp /etc/dnsmasq.conf /etc/dnsmasq.conf.bak
Na jego końcu dopisujemy:
interface=eth0 dhcp-range=192.168.10.10,192.168.10.19,4h
Resetujemy usługę:
sudo /etc/init.d/dnsmasq restart
Następnie należy zresetować sieć:
/etc/init.d/networking restart
W przypadku prośby o hasło użyj domyślnego hasła w Rasbianie
Dzielenie łącza przez Raspberry Pi – konfiguracja komputera otrzymującego Internet (Klienta)
Niezależnie czy komputerem który otrzymuje łącze będzie ten działający pod Windows czy pod Linux nalezy wpisać następujące ustawienia w ustawieniach sieci:
ADRES IP: 192.168.10.10 MASKA SIECI: 255.255.255.0 BRAMA: 192.168.10.1 DNS (OD GOOGLE INC.): 8.8.8.8
Połaczenie (interfejs) należy następnie zrestartować i upewnić się, że w/w adres IP jest przyznany.
Następnie spradzamy działanie łącza. Np. poprzez wejście na naszą stronę 🙂
Ponowne włączanie dzielenia łącza po restarcie Rasbiana
Ogranicza się do wywołania tych komend:
sudo ifconfig eth0 down sudo ifconfig eth0 192.168.10.1 netmask 255.255.255.0 sudo ifconfig eth0 up sudo iptables -t nat -A POSTROUTING -o wlan1 -j MASQUERADE
Możliwe problemy.
W przypadku gdy połączenie nie działa spróbuj wykonać następujące czynności na Rasbianie.
sudo echo 1 > /proc/sys/net/ipv4/ip_forward
sudo iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -j MASQUERADE
sudo iptables -I FORWARD -o wlan0 -s 192.168.0.0/16 -j ACCEPT
sudo iptables -I INPUT -s 192.168.0.0/16 -j ACCEPT
Utwórz kopię pliku:
sudo cp /etc/sysctl.conf /etc/sysctl.conf.bak
Odkomentuj tę linię, zamieniając:
# Uncomment the next line to enable packet forwarding for IPv4 #net.ipv4.ip_forward=1
Na:
# Uncomment the next line to enable packet forwarding for IPv4 net.ipv4.ip_forward=1
Ewenutalnie na komputerze otrzymującym Internet zamień Google’owskie DNSy:
8.8.8.8
na Twoje. Odczytasz je poprzez:
cat /etc/resolv.conf |grep -i '^nameserver'|head -n1|cut -d ' ' -f2
Pamiętaj także o konieczności każdorazowego restartowania interfejsów po wykonanych zmianach. W przypadku Windowsa po prostu włącz i wyłącz daną kartę sieciową.
Źródła i materiały:
chrisjrob.com
medium.com
stackexchange.com
wallpapercave.com

