Використання Raspberry Pi 3 як точки доступу Wi-Fi з hostapd
User Rating: / 4
PoorBest 
There are no translations available.

RPi_3_WiFiНовий Raspberry Pi має на борту Wi-Fi. Це робить його подвійно цікавим, адже його можна використовувати як SoftAP для деяких вузлів датчиків ESP8266.
І це не так вже й складно, так як мікросхема BCM43438 підтримується драйвером brcmfmac з відкритим вихідним кодом!
WiFi_Antenna
Встановлення необхідних пакетів
Першим кроком є ​​встановлення необхідних пакетів:
sudo apt-get install dnsmasq hostapd
Деякі деталі про них:
hostapd - пакет, який дозволяє використовувати вбудований Wi-Fi як точку доступу
dnsmasq - комбінований DHCP і DNS-сервер, який дуже легко налаштувати
Якщо хочете трохи "важковаговиків", то можете використати isc-dhcp-server і пакети bind9 для DHCP і DNS, відповідно, але для наших цілей, dnsmasq працює просто відмінно.
Налаштування інтерфейсів
Перше, що тепер потрібно зробити, це налаштувати інтерфейс wlan0 для статичної IP-адреси.
Якщо ви підключені до Pi через Wi-Fi, то, в першу чергу, підключіться через ethernet/ послідовний порт/клавіатуру.
У новіших версіях Raspian конфігурація інтерфейсу обробляється dhcpcd, тому відкрийте файл конфігурації dhcpcd:
sudo nano /etc/dhcpcd.conf
Ми повинні вказати йому, що наш wlan0 має статичну IP-адресу, тому додайте наступні рядки в кінець файлу:
interface wlan0  
    static ip_address=192.168.1.1/24
Примітка: Ми також повинні запобігти запуску wpa_supplicant, щоб це не було перешкодою налаштуванню wlan0 в режимі точки доступу. Для цього відкрийте файл конфігурації інтерфейсу за допомогою:
sudo nano /etc/network/interfaces
і закоментуйте рядок, що містить wpa-conf в секції wlan0, так щоб він виглядав наступним чином:
allow-hotplug wlan0  
iface wlan0 inet manual  
#    wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf
Перезапустіть dhcpcd :
sudo service dhcpcd restart
і він повинен призначити статичну IP-адресу вашому інтерфейсу wlan0.
Налаштування hostapd
Далі нам потрібно налаштувати hostapd. Створіть новий конфігураційний файл:
sudo nano /etc/hostapd/hostapd.conf
наступного змісту:
# This is the name of the WiFi interface we configured above
interface=wlan0

# Use the nl80211 driver with the brcmfmac driver
driver=nl80211

# This is the name of the network
ssid=Pi3-AP

# Use the 2.4GHz band
hw_mode=g

# Use channel 6
channel=6

# Enable 802.11n
ieee80211n=1

# Enable WMM
wmm_enabled=1

# Enable 40MHz channels with 20ns guard interval
ht_capab=[HT40][SHORT-GI-20][DSSS_CCK-40]

# Accept all MAC addresses
macaddr_acl=0

# Use WPA authentication
auth_algs=1

# Require clients to know the network name
ignore_broadcast_ssid=0

# Use WPA2
wpa=2

# Use a pre-shared key
wpa_key_mgmt=WPA-PSK

# The network passphrase
wpa_passphrase=raspberry

# Use AES, instead of TKIP
rsn_pairwise=CCMP
Можемо перевірити, чи все працює на даному етапі, запустивши
sudo /usr/sbin/hostapd /etc/hostapd/hostapd.conf
Якщо досі все пройшло добре, то ви повинні побачити в мережі PI3-AP! При спробі підключення до нього, побачите деяке повідомлення з Pi, але ви не зможете приймати і отримати IP-адресу, бо ще не створили dnsmasq. Це на наступній стадії. Використайте Ctrl+C, щоб зупинити його.
Ми ще не все зробили, тому також треба вказати hostapd, де шукати конфігураційний файл при запуску, коли завантажується система. Відкрийте файл конфігурації за замовчуванням:
sudo nano /etc/default/hostapd
і знайдіть в ньому рядок #DAEMON_CONF="" та замініть його на DAEMON_CONF="/etc/hostapd/hostapd.conf"
Налаштування dnsmasq
Файл конфігурації dnsmasq, що поставляється, містить величезну кількість інформації про те, як його використовувати, але більшість її, в значній мірі, надлишкова для наших цілей. Автор порадив би перемістити файл (не видаляючи) і створити новий:
sudo mv /etc/dnsmasq.conf /etc/dnsmasq.conf.orig  
sudo nano /etc/dnsmasq.conf
Вставте наступний код в новий файл:
interface=wlan0      # Use interface wlan0  
bind-interfaces      # Bind to the interface to make sure we aren't sending things elsewhere  
server=8.8.8.8       # Forward DNS requests to Google DNS  
domain-needed        # Don't forward short names  
bogus-priv           # Never forward addresses in the non-routed address spaces.  
dhcp-range=192.168.1.50,192.168.1.150,12h # Assign IP addresses between 192.168.1.50 and 192.168.1.150 with a 12 hour lease time  
Налаштування IPv4 переадресації
Одне з останніх, що нам потрібно зробити, перш ніж посилати трафік в будь-яке місце, це дозволити пересилання пакетів.
Для цього відкрийте файл sysctl.conf за допомогою:
sudo nano /etc/sysctl.conf
і видаліть # на початку рядка, що містить net.ipv4.ip_forward=1. При наступному перезавантаженні буде наданий дозвіл для пересилання, але тому, що нам не терпиться, активуємо його негайно:
sudo sh -c "echo 1 > /proc/sys/net/ipv4/ip_forward"
Нам також необхідно спільно використовувати підключення до Інтернету через Pi  пристроїв, підключених через Wi-Fi за допомогою налаштування NAT між нашим інтерфейсом wlan0 і нашим інтерфейсом eth0. Ми можемо зробити це за допомогою наступних команд:
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 ACCEPT
Але нам потрібно, щоб ці правила застосовувалися щоразу, коли ми перезавантажує Pi, тому запускаємо:
sudo sh -c "iptables-save > /etc/iptables.ipv4.nat"
щоб зберегти правила в файлі /etc/iptables.ipv4.nat. Тепер нам потрібно вказати dhcpcd запустити це, тому створимо новий файл:
sudo nano /lib/dhcpcd/dhcpcd-hooks/70-ipv4-nat
зі змістом:
iptables-restore < /etc/iptables.ipv4.nat
Ми майже на фініші!
Для запуску наших сервісів просто треба виконати команди:
sudo service hostapd start  
sudo service dnsmasq start
І це все! Тепер ви повинні мати можливість підключитися до Інтернету через Pi, використовуючи Wi-Fi на його борту!
Для подвійної перевірки, що ми отримали все правильно налаштованим, перезавантажтеся з
sudo reboot
(Джерело EN: frillip.com)
 
>
BookNewsPractice SearchPartnersAbout
Підтримка та дизайн: Могильний С.С. Шаблон: Joomla Templates by BuyHTTP Joomla Hosting