Raspberry Pi може да се свърже с Wi-Fi мрежа с помощта на USB dongle, но с помощта на същия хардуер можете да превърнете Вашия Raspberry Pi в безжична точка за достъп. След като веднъж сте настроили правилно, това ще позволи на други безжични устройства да се свържат с вашия Pi и по желание можете да пренасочите всеки трафик през Ethernet порта и към интернет (през маршрутизатора от вашия ISP).

Въпреки това, преди да погледнем стъпките, необходими за това да работи, предупредителна дума. Необходимата конфигурация може да е малко сложна и ако нещата не работят както трябва, тогава отстраняването на проблема може да е трудно. Също така, за да работи правилно, се нуждаете от WiFi USB dongle, който може да работи като точка за достъп. Най-доброто място за намиране на информация за конкретния ви dongle и Raspberry Pi е на страницата за адаптери, вградена в Linux Raspberry Pi Wi-Fi адаптер.

За да конфигурирате hotspot, трябва да направите няколко стъпки:

  • Конфигурирайте безжичния адаптер със статичен IP адрес
  • Инсталирайте и конфигурирайте DHCP сървър
  • Инсталирайте и конфигурирайте демона на точка за достъп
  • Конфигурирайте IP маршрутизацията между безжичната и Ethernet

В този пример безжичната мрежа ще използва диапазона на адреси 192.168.42.n и кабелната Ethernet ще използва диапазона на адреси 192.168.1.n

Конфигурирайте безжичния адаптер със статичен IP адрес

Редактирайте "/ etc / network / interfaces" и добавете статичната IP адресна информация за wlan0 . Можете да научите за статични IP адреси в нашия SSH и статичен IP адрес урок.

 sudo nano / etc / мрежа / интерфейси 

Поставете знак "#" пред всички линии, които споменават wlan0 и wpa, с изключение на " allow hotplug wlan0 ". След това добавете следните линии към файла:

 iface wlan0 inet статичен адрес 192.168.42.1 мрежова маска 255.255.255.0 

Долната половина на файла ще изглежда по следния начин:

Сега рестартирайте.

Инсталирайте и конфигурирайте DHCP сървър

Инсталирайте DHCP сървъра:

 sudo apt-get инсталирате isc-dhcp-сървър 

Можете да игнорирате безопасно всички грешки, свързани с това, че не можете да стартирате DHCP сървъра в този момент. Сега редактирайте неговия конфигурационен файл:

 sudo nano /etc/dhcp/dhcpd.conf 

Добавете знак "#" пред линиите " option domain-name ", както следва:

 #option име на домейн "example.org"; #option домейн-име-сървъри ns1.example.org, ns2.example.org; 

Премахнете знака "#" пред " authoritative; "Изявление по следния начин:

 # Ако DHCP сървърът е официален DHCP сървър за локалната # мрежа, не трябва да се препоръчва авторитетната директива. авторитетен; 

В долната част на файла добавете следните редове:

 подмрежа 192.168.42.0 мрежова маска 255.255.255.0 {обхват 192.168.42.10 192.168.42.50; опционен излъчващ адрес 192.168.42.255; възможност рутери 192.168.42.1; стандартно време за отдаване под наем 600; максимално време на отдаване под наем 7200; име на домейн име "местен"; опция домейн-име-сървъри 8.8.8.8, 8.8.4.4; } 

Излезте от нано с "Ctrl + X".

Направете безжичния адаптер по подразбиране за заявката за DHCP:

 sudo nano / etc / default / isc-dhcp-сървър 

Промяна на " INTERFACES="" " до " INTERFACES="wlan0" "

Излезте от нано с "Ctrl + X".

Рестартирайте DHCP сървъра:

 sudo услугата isc-dhcp-сървър рестартиране 

Инсталирайте и конфигурирайте демона на точка за достъп

Инсталиране на hostapd:

 sudo apt-get инсталирате hostapd 

Редактирайте конфигурационния файл hostapd и създайте безжична мрежа:

 sudo nano /etc/hostapd/hostapd.conf 

Добавете следните редове:

 интерфейс = wlan0 driver = nl80211 # driver = rtl871xdrv ssid = MyPi hw_mode = g канал = 6 macaddr_acl = 0 auth_algs = 1 ignore_broadcast_ssid = 0 wpa = 2 wpa_passphrase = мащерка wpa_key_mgmt = WPA-PSK wpa_pairwise = TKIP rsn_pairwise = CCMP 

Това ще създаде защитена с парола мрежа, наречена MyPi на канал 6 с парола raspberry .

Кажете на hostapd къде да намери конфигурационния си файл, като зададете местоположението по подразбиране:

 sudo nano / etc / default / hostapd 

Премахнете "#" пред " DAEMON_CONF " и променете реда, за да прочетете:

 DAEMON_CONF = "/ и т.н. / hostapd / hostapd.conf" 

Конфигурирайте IP маршрутизацията между безжичната и Ethernet

Редактирайте " /etc/sysctl.conf ", за да активирате пренасочването на IP адреси:

 sudo nano /etc/sysctl.conf 

Намерете реда, който гласи " Uncomment the next line to enable packet forwarding for IPv4 ", и размагнете следващия ред така:

 # Отключете следващия ред, за да активирате пренасочването на пакети за IPv4 net.ipv4.ip_forward = 1 

Изпълнете следната команда, за да активирате пренасочването сега:

 sudo sh -c "ехо 1> / proc / sys / net / ipv4 / ip_forward" 

Сега обърнете Pi в маршрутизатор със следните команди:

 sudo iptables -t nat -А ПРИСЪЕДИНЯВАНЕ -o eth0 -j MASQUERADE sudo iptables -A FORWARD -i eth0 -o wlan0 -m state -state СВЪРЗАНИ, УСТАНОВЕНИ -j ПРИЕМ sudo iptables -A FORWARD -i wlan0 -o eth0 -j ACCEPT 

И запазете таблиците за маршрутизиране във файла " /etc/iptables.ipv4.nat "

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

Редактиране на " /etc/network/interfaces ":

 sudo nano / etc / мрежа / интерфейси 

И добавете следния ред в края на файла. Тази линия ще възстанови таблицата за маршрутиране всеки път, когато се стартира Pi:

 предварително задаване на iptables-restore </etc/iptables.ipv4.nat 

След това трябва да рестартирате устройството си Pi и да тествате безжичния достъп с помощта на лаптоп, смартфон, таблет или друго устройство с активирано Wi-Fi устройство.

Отстраняване на проблеми

Тъй като тази конфигурация е доста сложна, нещата лесно могат да се объркат. Ако имате проблеми, проверете всички конфигурационни файлове. Също така си струва да се движите с пикапи, тъй като е възможно USB донгълът да влезе в неопределено състояние.

Възможно е да сте забелязали, че файлът "hostapd.conf" има два реда " driver= " и един от тях е коментиран. Ако вашият USB Wi-Fi dongle използва драйвера nl80211, тогава горната конфигурация трябва да работи добре. Ако обаче вашият dongle използва rtl871xdrv който го прави за адаптери, базирани на чипсета Realtek RTL8188CUS, тогава са необходими допълнителни стъпки.

Първо инсталирайте пакета iw :

 sudo apt-get инсталирате iw 

Сега изпълнете следната команда:

 iw списък 

Ако изходът на командата " nl80211 not found ", тогава трябва да използвате драйвера rtl871xdrv . Ще ви е необходима и специална версия на hostapd.

Adafruit разполага с предварително компилирана версия на hostapd за драйвера rtl871xdrv . За да го инсталирате, използвайте следните команди:

 wget http://www.adafruit.com/downloads/adafruit_hostapd.zip unzip adafruit_hostapd.zip sudo mv / usr / sbin / hostapd /usr/sbin/hostapd.ORIG sudo mv hostapd / usr / sbin sudo chmod 755 / usr / sbin / hostapd 

Ако имате някакви въпроси относно превръщането на Pi в безжична точка за достъп, моля, попитайте по-долу и ние ще се постараем да помогнем!