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:
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:
1 |
wget http://ftp.jaist.ac.jp/pub/raspberrypi/raspbian/images/raspbian-2018-06-29/2018-06-27-raspbian-stretch.zip |
Następnie go rozpakowujemy:
1 |
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:
1 |
umount -a |
Listujemy urządzenia, które są wpięte w komputer:
1 |
sudo fdisk -l |
Odnajdujemy urządzenie, zazwyczaj jest to:
1 |
/dev/mmcblk0 |
Nagrywamy na nią nasz plik .img, który pobieramy:
1 |
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:
1 |
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:
1 |
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:
1 2 3 |
sudo su apt-get update apt-get ugrade |
Następnie instalujemy:
1 |
sudo apt-get install network-manager dnsmasq |
Restetujemy system:
1 |
sudo reboot |
Ustawiamy w Rasbianie następujące adresy IP:
1 2 3 |
IP: 192.168.10.1 NETMASK: 255.255.255.0 GATEWAY: 192.168.10.1 |
Ustawiamy te adresy za pomocą komend:
1 2 3 |
ifconfig eth0 down ifconfig eth0 192.168.10.1 netmask 255.255.255.0 ifconfig eth0 up |
Restartujemy sieć:
1 |
sudo /etc/init.d/networking restart |
Wywołujemy komendy:
1 2 |
sudo sysctl -w net.ipv4.ip_forward=1 sudo iptables -t nat -A POSTROUTING -o wlan0 -j MASQUERADE |
Po czym odp. konfiugurujemy iptables:
1 2 3 |
sudo iptables -F FORWARD sudo iptables -A FORWARD -j ACCEPT sudo iptables -nvL |
Konfigurujemy DNS. Tworzymy kopię bezpieczeństwa tego pliku:
1 |
sudo cp /etc/dnsmasq.conf /etc/dnsmasq.conf.bak |
Na jego końcu dopisujemy:
1 |
interface=eth0 dhcp-range=192.168.10.10,192.168.10.19,4h |
Resetujemy usługę:
1 |
sudo /etc/init.d/dnsmasq restart |
Następnie należy zresetować sieć:
1 |
/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:
1 2 3 4 5 |
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:
1 2 3 4 |
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.
1 |
sudo echo 1 > /proc/sys/net/ipv4/ip_forward |
1 |
sudo iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -j MASQUERADE |
1 |
sudo iptables -I FORWARD -o wlan0 -s 192.168.0.0/16 -j ACCEPT |
1 |
sudo iptables -I INPUT -s 192.168.0.0/16 -j ACCEPT |
Utwórz kopię pliku:
1 |
sudo cp /etc/sysctl.conf /etc/sysctl.conf.bak |
Odkomentuj tę linię, zamieniając:
1 2 |
# Uncomment the next line to enable packet forwarding for IPv4 #net.ipv4.ip_forward=1 |
Na:
1 2 |
# 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:
1 |
8.8.8.8 |
na Twoje. Odczytasz je poprzez:
1 |
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