Настройка Wi-Fi
Wi-Fi адаптер на Raspberry Pi имеет два основных режима работы:
- Режим клиента – RPi подключается к существующей Wi-Fi сети.
- Режим точки доступа – RPi создает Wi-Fi сеть, к которой вы можете подключиться.
При использовании образа для RPi по умолчанию Wi-Fi адаптер работает в режиме точки доступа.
Изменение пароля или SSID (имени сети)
Отредактируйте файл
/etc/wpa_supplicant/wpa_supplicant.conf
(используя SSH-соединение):sudo nano /etc/wpa_supplicant/wpa_supplicant.conf
Измените значение параметра
ssid
, чтобы изменить название Wi-Fi сети, и параметраpsk
, чтобы изменить пароль. Например:network={ ssid="my-ssid" psk="dronewifi123" mode=2 proto=RSN key_mgmt=WPA-PSK pairwise=CCMP group=CCMP auth_alg=OPEN }
Перезагрузите Raspberry Pi.
Длина пароля для Wi-Fi сети должна быть не менее 8 символов.
При некорректных настройках
wpa_supplicant.conf
Raspberry Pi перестанет раздавать Wi-Fi!
Переключение адаптера в режим клиента
Для редактирования некоторых файлов, к которым у вас не будет доступа, необходимо использовать sudo nano, вместо nano.
Выключите службу
dnsmasq
.sudo systemctl stop dnsmasq sudo systemctl disable dnsmasq
Включите получение IP адреса на беспроводном интерфейсе DHCP клиентом. Для этого удалите из файла
/etc/dhcpcd.conf
строки:interface wlan0 static ip_address=192.168.11.1/24
Настройте
wpa_supplicant
для подключения к существующей точке доступа. Для этого замените содержимое файла/etc/wpa_supplicant/wpa_supplicant.conf
на:ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev update_config=1 country=GB network={ ssid="SSID" psk="password" }
где
SSID
– название сети, аpassword
– пароль.Перезапустите службу
dhcpcd
.sudo systemctl restart dhcpcd
Переключение адаптера в режим точки доступа
Включите статический IP адрес на беспроводном интерфейсе. Для этого добавьте в файл
/etc/dhcpcd.conf
строки:interface wlan0 static ip_address=192.168.11.1/24
Настроите
wpa_supplicant
на работу в режиме точки доступа. Для этого замените содержимое файла/etc/wpa_supplicant/wpa_supplicant.conf
на:ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev update_config=1 country=GB network={ ssid="drone-1234" psk="dronewifi" mode=2 proto=RSN key_mgmt=WPA-PSK pairwise=CCMP group=CCMP auth_alg=OPEN }
где
drone-1234
– название сети, аdronewifi
– пароль.Включите службу
dnsmasq
.sudo systemctl enable dnsmasq sudo systemctl start dnsmasq
Перезапустите службу
dhcpcd
.sudo systemctl start dhcpcd
Ниже вы можете узнать больше о том, как устроена работа с сетью на RPi.
Устройство сети RPi
Работа сети на образе поддерживается двумя предустановленными службами:
- networking — служба включает все сетевые интерфейсы в момент запуска.
- dhcpcd — служба обеспечивает настройку адресации и маршрутизации на интерфейсах, полученных динамически или указанных в файле настроек статически.
Для работы в режиме роутера (точки доступа) RPi необходим DHCP сервер. Он служит для автоматической выдачи настроек текущей сети подключившимся клиентам. В роли такого сервера может выступать isc-dhcp-server
или dnsmasq
.
dhcpcd
Начиная с Raspbian Jessie настройки сети больше не задаются в файле /etc/network/interfaces
. Теперь за выдачу адресации и настройку маршрутизации отвечает dhcpcd
.
По умолчанию на всех интерфейсах включен dhcp-клиент. Настройки интерфейсов меняются в файле /etc/dhcpcd.conf
. Для того, чтобы поднять точку доступа необходимо прописать статический ip-адрес. Для этого в конец файла необходимо добавить следующие строки:
interface wlan0
static ip_address=192.168.11.1/24
Если интерфейс является беспроводным (wlan), то служба
dhcpcd
триггеритwpa_supplicant
, который в свою очередь работает непосредственно с wifi-адаптером и переводит его в заданное состояние.
wpa_supplicant
wpa_supplicant – служба конфигурирует Wi-Fi адаптер. Служба wpa_supplicant
работает не как самостоятельная (хотя как таковая существует), а запускается как дочерний процесс от dhcpcd
.
Конфигурационный файл по умолчанию должен иметь путь /etc/wpa_supplicant/wpa_supplicant.conf
.
Пример конфигурационного файла:
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
country=GB
network={
ssid=\"my-drone\"
psk=\"dronewifi\"
mode=2
proto=RSN
key_mgmt=WPA-PSK
pairwise=CCMP
group=CCMP
auth_alg=OPEN
}
Внутри конфига указываются общие настройки wpa_supplicant
и параметры для настройки адаптера. Также конфигурационный файл содержит секции network
– основные настройки Wi-Fi сети такие как SSID сети, пароль, режим работы адаптера. Таких блоков может быть несколько, но используется первый рабочий. Например, если вы указали в первом блоке подключение к некоторой недоступной сети, то адаптер будет настроен следующей удачной секцией, если такая есть. Подробнее о синтаксисе wpa_supplicant.conf
.
wpa_passphrase
wpa_passphrase
– утилита для создания секции network
.
wpa_passphrase SSID PASSWORD
После выполнения команды скопируйте полученную секцию в ваш конфигурационный файл. Можно удалить закомментированное поле psk
и оставить только поле с хешем пароля, либо наоборот.
network={
ssid="SSID"
#psk="PASSWORD"
psk=c2161655c6ba444d8df94cbbf4e9c5c4c61fc37702b9c66ed37aee1545a5a333
}
Ссылки
- habr.com: Linux WiFi из командной строки с wpa_supplicant
- wiki.archlinux.org: WPA supplicant (Русский)
- blog.hoxnox.com: WiFi access point with wpa_supplicant
- dmitrysnotes.ru: Raspberry Pi 3. Присвоение статического IP-адреса
- thegeekdiary.com: Linux OS Service ‘network’
- frillip.com: Using your new Raspberry Pi 3 as a Wi-Fi access point with hostapt (также здесь есть инструкция по настройке форвардинга для использования RPi в качестве шлюза для выхода в интернет)
- expert-orda.ru: Настройка DHCP-сервера на Ubuntu (Настройка isc-dhcp-server)
- academicfox.com: Raspberry Pi беспроводная точка доступа (WiFi access point) (Настройка маршрутов, hostapd, isc-dhcp-server)
- weworkweplay.com: Automatically connect a Raspberry Pi to a Wifi network (Есть настройки для создания открытой точки доступа)
- wiki.archlinux.org: WPA supplicant