Raspberry Pi Force Server WAP: 15 kroków

Raspberry Pi Force Server WAP: 15 kroków

Spisu treści:

Anonim

W tym samouczku przejdziesz przez proces przekształcania Raspberry Pi w bezprzewodowy punkt dostępowy (WAP) i instalowania na nim serwera Force Server, a następnie uruchomienia go, aby można było to rozszerzyć w przyszłych projektach.

----- Szczegóły dotyczące Force Server, aby przejść tutaj ----- (Celowo pominięty)

Pod koniec tego Instruktażu będziesz mógł po prostu:

  1. Włącz Raspberry Pi
  2. Połącz się z jego siecią
  3. Steruj z telefonu za pomocą aplikacji Force

Poniższy samouczek tworzenia WAP jest oparty na / przepisanym przez samouczek online Adafruit połączony tutaj.

Kieszonkowe dzieci:

Krok 1: Części

Potrzebne będą następujące elementy:

  1. A Raspberry Pi
  2. Połączenie internetowe Ethernet dla twojego Raspberry Pi
  3. Adapter Wi-Fi obsługujący tryb AP (działają adaptery Adafruit Wi-Fi)
  4. (Micro) Karta SD o rozmiarze 4 GB z zainstalowanym Raspbianem (jest wiele samouczków na ten temat, po prostu Google to)
    1. Czytnik kart SD, jeśli chcesz zainstalować Raspbian
  5. Zasilacz do twojego Raspberry Pi (5V 1 ~ 2A)

Krok 2: Sprawdź Ethernet i Wifi

Przed kontynuowaniem upewnij się, że kabel Ethernet jest podłączony i możesz wysłać sygnał ping z Pi.

Będziesz także chciał skonfigurować klucz WiFi. biegać sudo shutdown -h teraz a następnie podłącz moduł WiFi, gdy Pi jest wyłączony, aby nie spowodować przepięcia. Po powrocie sprawdź za pomocą ifconfig -a to widzisz wlan0 - moduł WiFi.

Krok 3: Zainstaluj oprogramowanie

Wpisz następujące dane w terminalu.

sudo apt-get update

sudo apt-get install isc-dhcp-server

sudo apt-get install hosted

Krok 4: Skonfiguruj serwer DHCP

Następnie edytujemy /etc/dhcp/dhcpd.conf, plik, który ustawia nasz serwer DHCP - pozwala to połączeniom Wi-Fi na automatyczne uzyskiwanie adresów IP, DNS itp.

Uruchom to polecenie, aby edytować plik

sudo nano /etc/dhcp/dhcpd.conf

Znajdź linie, które mówią

opcja nazwa-domeny "example.org"; opcja nazwa-domeny-serwery ns1.example.org, ns2.example.org;

i zmień je, aby dodać # na początku, tak mówią

#option nazwa-domeny "example.org"; # opcja nazwa-domeny-serwery ns1.example.org, ns2.example.org;

Znajdź linie, które mówią

# Jeśli ten serwer DHCP jest oficjalnym serwerem DHCP dla lokalnego

# network, autorytatywna dyrektywa powinna być odkomentowana. #autorytatywny;

i usuń #, tak jak mówi

# Jeśli ten serwer DHCP jest oficjalnym serwerem DHCP dla lokalnej sieci #, należy odkomentować dyrektywę autorytatywną. autorytatywny;

Następnie przewiń w dół i dodaj następujące wiersze

podsieć 192.168.42.0 maska ​​sieci 255.255.255.0 {zakres 192.168.42.10 192.168.42,50; opcja emisji adres 192.168.42.255; routery opcji 192.168.42.1; domyślny czas dzierżawy 600; max-lease-time 7200; opcja nazwa-domeny „lokalna”; opcjonalne serwery nazw domen 8.8.8.8, 8.8.4.4; }

Zapisz plik, wpisując Control-X następnie Y następnie powrót

Biegać

sudo nano / etc / default / isc-dhcp-server

i przewiń w dół do INTERFACES = "" i zaktualizuj to, by powiedzieć INTERFACES = "wlan0"

zamknij i zapisz plik

Krok 5: Skonfiguruj Wlan0 dla statycznego adresu IP

Jeśli zdarzy ci się mieć wlan0 aktywny, ponieważ skonfigurowałeś go, uruchom

sudo jeśli down wlan0

Nie ma nic złego w uruchomieniu go, jeśli nie jesteś pewien

Następnie skonfigurujemy połączenie wlan0 jako statyczne i przychodzące. uruchom sudo nano / etc / network / interfaces, aby edytować plik

Znajdź linię auto wlan0 i dodaj # przed linią, a następnie przed każdą linią. Jeśli nie masz tej linii, upewnij się, że na końcu wygląda ona jak poniższy zrzut ekranu! Po prostu usuń wszystkie stare ustawienia konfiguracji wlan0, zmienimy je

W zależności od istniejącej konfiguracji / dystrybucji może być więcej lub mniej tekstu i może się on nieco różnić

Dodaj linie

iface wlan0 inet adres statyczny 192.168.42.1 maska ​​sieci 255.255.255.0

Po allow-hotplug wlan0 - zobacz poniżej, jak powinien wyglądać. Wszelkie inne linie później powinny mieć # z przodu, aby je wyłączyć

Zapisz plik (Control-X Y) Przypisz statyczny adres IP do adaptera wifi, uruchamiając:

sudo ifconfig wlan0 192.168.42.1

Krok 6: Skonfiguruj punkt dostępu

Teraz możemy skonfigurować szczegóły punktu dostępu. Ustawimy sieć chronioną hasłem, aby połączyć się tylko ludzie z hasłem. Utwórz nowy plik, uruchamiając

sudo nano /etc/hostapd/hostapd.conf

Wklej poniższy kod, możesz zmienić tekst po ssid = na inną nazwę, która będzie nazwą sieciową. Hasło można zmienić za pomocą tekstu po wpa_passphrase =

interface = wlan0 driver = rtl871xdrv ssid = TheForceServer hw_mode = g channel = 9 macaddr_acl = 0 auth_algs = 1 ignore_broadcast_ssid = 0 wpa = 2 wpa_passphrase = TheForceServerOnPi wpa_key_mgmt = WPA-PSK wpa_pairwise = TKIP rsn_pairwise = CCMP

Jeśli nie używasz adapterów wifi Adafruit, być może będziesz musiał zmienić driver = rtl871xdrv powiedzieć driver = nl80211 czy coś takiego, nie mamy wsparcia dla samouczka, YMMV!

Zapisz jak zwykle. Upewnij się, że w każdym wierszu nie ma dodatkowych spacji ani zakładek na końcu lub początku - ten plik jest dość wybredny! Teraz powiem Pi, gdzie znaleźć ten plik konfiguracyjny. Biegać

sudo nano / etc / default / hostapd

Znajdź linię # DAEMON_CONF = "" i edytuj to tak, jak mówi DAEMON_CONF = "/ etc / hostapd / hostapd.conf"Nie zapomnij usunąć # z przodu, aby go aktywować! Następnie zapisz plik.

Krok 7: Skonfiguruj tłumaczenie adresu sieciowego

Konfiguracja NAT pozwoli wielu klientom połączyć się z WiFi i mieć wszystkie dane „tunelowane” przez pojedynczy Ethernet IP. (Ale powinieneś to zrobić, nawet jeśli tylko jeden klient będzie się łączyć)

Biegać

sudo nano /etc/sysctl.conf

Przewiń do dołu i dodaj net.ipv4.ip_forward = 1 na nowej linii. Zapisz plik. Spowoduje to rozpoczęcie przekazywania IP podczas uruchamiania.

Uruchom także

sudo sh -c "echo 1> / proc / sys / net / ipv4 / ip_forward"

aktywować go natychmiast.

Uruchom następujące polecenia, aby utworzyć tłumaczenie sieciowe między portem ethernet eth0 i port wifi wlan0

sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

sudo iptables -A FORWARD -i eth0 -o wlan0 -m state --state RELATED, ESTABLISHED -j ACCEPT

sudo iptables -A FORWARD -i wlan0 -o eth0 -j AKCEPTUJ

Możesz sprawdzić, co zawiera tabele

sudo iptables -t nat -S

sudo iptables -S

Aby to się stało podczas ponownego uruchamiania (więc nie musisz wpisywać go za każdym razem), uruchom

sudo sh -c "iptables-save> /etc/iptables.ipv4.nat"

biegać sudo nano / etc / network / interfaces i dodaj

do góry iptables-restore </etc/iptables.ipv4.nat

do samego końca.

Krok 8: Zaktualizuj Hostapd

Zanim będziemy mogli uruchomić oprogramowanie punktu dostępu, musimy zaktualizować je do wersji obsługującej kartę WiFi. Najpierw pobierz nową wersję, wpisując

wget

aby pobrać nową wersję (sprawdź następną sekcję, aby dowiedzieć się, jak skompilować swój zaktualizowany hostapd)

rozpakuj adafruit_hostapd_14128.zip

rozpakować go. Przenieś starą wersję z drogi

sudo mv / usr / sbin / hostapd /usr/sbin/hostapd.ORIG

I przenieś nową wersję z powrotem

sudo mv hostapd / usr / sbin

ustaw go tak, aby działał poprawnie

sudo chmod 755 / usr / sbin / hostapd

Krok 9: Pierwszy test!

Wreszcie możemy przetestować hosta punktu dostępowego!

Biegać

sudo / usr / sbin / hostapd /etc/hostapd/hostapd.conf

Aby ręcznie uruchomić hostapd z naszym plikiem konfiguracyjnym. Powinieneś zobaczyć, że jest skonfigurowany i używany wlan0 następnie możesz sprawdzić za pomocą innego komputera Wi-Fi, że widzisz swój SSID. Jeśli tak, pomyślnie skonfigurowałeś punkt dostępu.

Możesz spróbować połączyć się i rozłączyć z TheForceServer z ustawionym wcześniej hasłem (prawdopodobnie Malina jeśli skopiowałeś naszą konfigurację hostapd), tekst debugowania zostanie wyświetlony na konsoli Pi, ale nie będziesz jeszcze w stanie połączyć się z połączeniem Ethernet. Anuluj test, wpisując Control-C w konsoli Pi, aby wrócić do linii poleceń Pi.

Krok 10: Wykończenie!

OK, teraz wiemy, że to działa, czas ustawić go jako „demona” - program, który rozpocznie się, gdy Pi uruchomi się. Uruchom następujące polecenia

usługa sudo uruchom hostapd

usługa sudo isc-dhcp-server start

zawsze możesz sprawdzić status hosta serwera AP i serwera DHCP za pomocą

usługa sudo status hostapd

usługa sudo isc-dhcp-status serwera

Aby uruchomić usługi demona. Sprawdź, czy oba zaczynają się pomyślnie (brak „awarii” lub „błędów”), a następnie uruchom je za każdym razem podczas uruchamiania

sudo update-rc.d włącz hostapd

sudo update-rc.d isc-dhcp-server enable

Dodatkowo: Usuwanie produktu WPA

W zależności od dystrybucji może być konieczne usunięcie WPASupplicant. Zrób to, uruchamiając to polecenie:

sudo mv /usr/share/dbus-1/system-services/fi.epitest.hostap.WPASupplicant.service ~ /

a następnie ponowne uruchomienie

sudo restart

Krok 11: Połącz i przetestuj

Teraz, gdy mamy zainstalowane oprogramowanie na Pi, czas połączyć się z nim i przetestować połączenie. Używam komputera z systemem Windows, ale każdy rodzaj powinien działać poprawnie. Na Pi uruchom polecenie

tail -f / var / log / syslog

oglądać dane dziennika systemowego, przydatne do sprawdzania i debugowania tego, co się dzieje! Połącz się z innym komputerem z punktem dostępowym utworzonym w poprzednim kroku.

Wprowadź klucz WPA określony w poprzednim kroku.

W syslogu Pi powinieneś zobaczyć takie rzeczy! Wskazuje, że klient się połączył, o której godzinie i jaki adres IP został mu dany.

Jeśli nie możesz się połączyć, coś jest nie tak hostapd

Na komputerze otwórz a Terminal (mac / linux) lub Start-> Uruchom-> cmd otworzyć linię poleceń. Najpierw sprawdź co ifconfig (mac / linux) lub ipconfig (okna) mówi. Powinieneś mieć adres IP w zakresie 192.168.42.10-50.

Spróbuj pingować Pi, jego adres to 192.168.42.1 - na Windowsach pinguje 3 razy i kończy. Na mac / linux naciśnij Control-C, aby wyjść po kilku pingach. Powinieneś dostać udane pingi jak widać poniżej. Jeśli to nie zadziała, coś jest nie tak hostapd lub dhcpd (bardziej prawdopodobne).

Następnie spróbuj pingować 8.8.8.8, jeśli to nie zadziała, ale poprzedni robi, coś jest nie tak dhcpd lub konfiguracja NAT (bardziej prawdopodobne).

Na koniec sprawdzimy, czy DNS działa, spróbuj pingować www.mit.edu. Jeśli to nie zadziała, coś jest nie tak dhcpd. Jeśli do tej pory wszystko jest w porządku, spróbuj przeglądać internet, wysyłać wiadomości e-mail itp. Używasz teraz Pi jako routera Wi-Fi!

Więcej!

Możliwe jest ustawienie routera na dostęp otwarty lub WEP, ale nie omawiamy tego tutaj (i nie jest to tak bezpieczne!) Możesz poszukać samouczków, takich jak ten, który obejmuje opcje hostapd.

Krok 12: Kompilowanie Hostapd

Być może zauważyłeś, że jednym krokiem jest pobranie kopii hostapd z adafruit.com i zamiana jej na swoją. W przypadku, gdy chcesz skompilować swój własny, oto jak to zrobić (jest to łatwe, ale nie konieczne, jeśli możesz korzystać z naszego pliku binarnego)

Przejdź na stronę pobierania Realtek http: //152.104.125.41/downloads/downloadsView.asp …

Pobierz linux 3.4.4_4749

Skopiuj zip na kartę SD za pomocą dowolnego komputera, który umieści go w katalogu Pi / boot (lub w jakiś sposób dostanie ten plik do Pi)

Uruchom Pi z karty SD

sudo mv /boot/RTL8192xC_USB_linux_v3.4.4_4749.20121105.zip.

rozpakuj RTL8192xC_USB_linux_v3.4.4_4749.20121105.zip

mv RTL8188C_8192C_USB_linux_v3.4.4_4749.20121105 / rtl

cd rtl

cd wpa_supplicant_hostapd

rozpakuj wpa_supplicant_hostapd-0.8_rtw_20120803.zip

cd wpa_supplicant_hostapd-0.8 /

cd hostapd

robić

* mieć kanapkę * po zakończeniu, plik binarny hostapd znajduje się w katalogu

Krok 13: UWAGA: Force Server nie jest jeszcze dostępny

Skrypt serwera Forcer i aplikacja są obecnie niedostępne.

Powinien zostać wkrótce wydany:)

Krok 14: Pobierz i skonfiguruj Force Server

Ściągnij

Teraz jest krok, w którym możesz pobrać Force Server, aby uruchomić na swoim Raspberry Pi.

Aby to zrobić, uruchom po prostu:

cd ~

git clone

Utwórz kopię szablonu do pracy

Po zakończeniu klonowania repozytorium Python ForceProject uruchom następujące polecenia:

cd Python

cp template.py myScript.py

Teraz właśnie utworzyłeś nowy plik o nazwie myScript.py z template.py. Od tego momentu powinieneś edytować myScript.py dla własnych celów. Plik template.py powinien pozostać nietknięty, ponieważ będzie działał jako szablon z wszystkimi wbudowanymi funkcjami delegatów i już istniejącym kodem szablonu.

Uruchom skrypt Force Server na starcie

Uruchom następujący kod, zakładając, że nazwy plików itp. Są takie same jak powyżej:

sudo crontab -e

na dole dodaj następującą linię:

sudo python /usr/pi/Python/myScript.py &

Teraz naciśnij Control-O, Control-X, aby zapisać i zamknąć plik crontab.

Krok 15: Skonfiguruj pilota siły

Teraz, po skonfigurowaniu Force Server, będziesz chciał skonfigurować pilota.

Pobierz aplikację Force z AppStore tutaj.

Po pobraniu uruchom aplikację i stuknij „Dodaj kontrolera”, aby utworzyć nowy kontroler. Możesz nazwać kontroler, czego chcesz, a opis jest opcjonalny. Jako adres IP wpisz 192.168.42.1 i dla typu portu w 5555 (jest to port domyślny). Możesz zmienić inne ustawienia, jak chcesz. Gdy skończysz, po prostu stuknij Zapisz w górnej prawej części ekranu, a następnie stuknij kontroler, który właśnie zrobiłeś, aby rozpocząć kontrolę projektu.

Aplikacja ma wbudowaną dokumentację struktur danych tego, co zostanie odebrane przez serwer w skrypcie, do którego można uzyskać dostęp poprzez ustawienia kafelków, przez długie naklejanie kafelków w zasobniku sekcji lub w sekcji „Dokumentacja kafelków” w sekcji Aplikacja.