Перейти к содержанию

Навигация

Wi-Fi Old: различия между версиями

Нет описания правки
 
(не показаны 24 промежуточные версии 5 участников)
Строка 1: Строка 1:
{{DISPLAYTITLE: Настройка Wi-Fi в релизах ПО wb-2207 и старее}}
==Режимы работы==
==Режимы работы==
{{note|warn| Эта инструкция по настройке сети устарела и мы не рекомендуем использовать ее в релизах [[wb-2304]] и новее. Актуальная инструкция находится по ссылке [[Networks |Настройка сети в контроллерах Wiren Board]].}}
'''Wi-Fi''' в Wiren Board можно настроить на работу в одном из двух или трёх режимов:
'''Wi-Fi''' в Wiren Board можно настроить на работу в одном из двух или трёх режимов:
* Режим точки доступа (включён по умолчанию). Работает относительно медленно. Скорости вполне хватит для работы с веб-интерфейсом, но не стоит использовать как замену роутера.
* Режим точки доступа (включён по умолчанию). Работает относительно медленно. Скорости вполне хватит для работы с веб-интерфейсом, но не стоит использовать как замену роутера.
Строка 25: Строка 27:
== Настройка Wi-Fi на контроллере Wiren Board ==  
== Настройка Wi-Fi на контроллере Wiren Board ==  


Настройка производится стандартным для Linux Debian способом - через файл <code>/etc/network/interfaces</code>. Краткие инструкции для типовых задач даны ниже, на сайте Linux Debian есть [https://wiki.debian.org/ru/NetworkConfiguration подробная документация].
Настройка производится стандартным для Linux Debian способом через файл <code>/etc/network/interfaces</code>. Краткие инструкции для типовых задач даны ниже, на сайте Linux Debian есть [https://wiki.debian.org/ru/NetworkConfiguration подробная документация].


=== Настройка в режиме точки доступа ===
=== Настройка в режиме точки доступа ===
Строка 51: Строка 53:
       netmask 255.255.255.0
       netmask 255.255.255.0
</syntaxhighlight>
</syntaxhighlight>
#:Если указываете другой адрес, отредактируйте файл /etc/dnsmasq.conf, укажите диапазон адресов в строке "dhcp-range"
# закомментируйте строки, относящиеся к работе в режиме клиента:
# закомментируйте строки, относящиеся к работе в режиме клиента:
#:<syntaxhighlight lang="bash">
#:<syntaxhighlight lang="bash">
Строка 81: Строка 84:
</pre>
</pre>


Придумайте свой пароль и замените в файле <code>your_password</code> на него. Сохраните файл нажатием клавиш <code>Ctrl+O</code> и выйдете из редактора <code>Ctrl+X</code>.
Придумайте свой пароль (не менее 8 символов) и замените в файле <code>your_password</code> на него. {{Wbincludes:Save nano}}


После этого выполните команду:
После этого выполните команду:


<syntaxhighlight lang="bash">
<syntaxhighlight lang="bash">
/etc/init.d/hostapd restart
systemctl restart hostapd
</syntaxhighlight>
 
Контроллер применит новые настройки и связь с ним будет потеряна. Нужно будет заново подключиться к контроллеру по WiFi с указанным паролем. Если изменения настроек вы не можете подключиться к контроллеру по WiFi — подключитесь к нему по Ethernet и проверьте настройки в файле <code>/etc/hostapd.conf</code>.
 
=== Настройка в режиме точки доступа и клиента одновременно ===
 
Режим одновременной работы модуля Wi-Fi и в режиме точки доступа, и в режиме клиента, называется ''Concurrent Mode'' или ''STA+SoftAP'', и поддерживается не всеми Wi-Fi модулями. Он работает на всех версиях Wiren Board 6 и на некоторых ревизиях WB5. Проверено, что он работает из коробки на Wiren Board с чипом Realtek 8723BU и ядром Linux 4.1.15. Чтобы проверить, выполняются ли эти условия, выполните команды:
<syntaxhighlight lang="bash">
uname -a
lsmod | grep 8723bu
</syntaxhighlight>
</syntaxhighlight>
''Если условия не выполнены, возможно, на вашем Wiren Board, всё равно, можно настроить Concurrent Mode. В качестве отправной точки используйте [http://randomstuffidosometimes.blogspot.ru/2016/03/rtl8192cu-and-rtl8188cus-in-station-and.html инструкцию].''
Если условия выполнены:
# Выполните команду
#:<syntaxhighlight lang="bash">
iwconfig
</syntaxhighlight>
#:В её выводе должны быть показаны два интерфейса Wi-Fi: ''wlan0'' и ''wlan1''.
# Настройте по двум предыдущим инструкциям подключение в режиме клиента и подключение в режиме точки доступа, но используйте для них разные интерфейсы. Например, оставьте ''wlan0'' для точки доступа, а клиента сделайте на ''wlan1''. Соответствующая часть файла ''/etc/network/interfaces'' должна выглядеть так:
#: <syntaxhighlight lang="bash">
# Wireless interfaces
auto wlan1
iface wlan1 inet dhcp
    wpa-ssid {ssid} # вместо {ssid} подставьте имя точки доступа
    wpa-psk {password} # вместо {password} подставьте пароль


auto wlan0
Контроллер применит новые настройки и связь с ним будет потеряна. Нужно будет заново подключиться к контроллеру по WiFi с указанным паролем. Если после изменения настроек вы не можете подключиться к контроллеру по WiFi — подключитесь к нему по Ethernet и проверьте настройки в файле <code>/etc/hostapd.conf</code>.
iface wlan0 inet static
  address 192.168.42.1
  netmask 255.255.255.0
</syntaxhighlight>


=== Отключение режима точки доступа ===
=== Отключение режима точки доступа ===
Строка 128: Строка 102:
#Остановите демон <code>hostapd</code>
#Остановите демон <code>hostapd</code>
#:<syntaxhighlight lang="bash">
#:<syntaxhighlight lang="bash">
service hostapd stop
systemctl stop hostapd
</syntaxhighlight>
</syntaxhighlight>
# Теперь закомментируйте настройки точки доступа и задайте настройки WiFi-клиента:
# Теперь закомментируйте настройки точки доступа и задайте настройки WiFi-клиента:
#* откройте файл для редактирования
#* откройте файл для редактирования
#:<syntaxhighlight lang="bash">
#:<syntaxhighlight lang="bash">
mcedit /etc/network/interfaces
nano /etc/network/interfaces
</syntaxhighlight>
</syntaxhighlight>
#* закомментируйте строки, относящиеся к настройке в режиме точки доступа: <syntaxhighlight lang="bash">
#* закомментируйте строки, относящиеся к настройке в режиме точки доступа: <syntaxhighlight lang="bash">
#allow-hotplug wlan0
#iface wlan0 inet static
#iface wlan0 inet static
#  address 192.168.42.1
#  address 192.168.42.1
Строка 150: Строка 125:


=== Настройка в режиме клиента ===
=== Настройка в режиме клиента ===
{{Anchor|client}}
{{note|note|После настройки точки доступа в режиме клиента, контроллер будет подключаться к точке доступа автоматически при каждой загрузке операционной системы.}}
{{note|note|После настройки точки доступа в режиме клиента, контроллер будет подключаться к точке доступа автоматически при каждой загрузке операционной системы.}}
Вы можете настроить автоматическое подключение контроллера к Wi-Fi точке доступа:
Вы можете настроить автоматическое подключение контроллера к Wi-Fi точке доступа:
Строка 155: Строка 131:
# Откройте файл настроек:
# Откройте файл настроек:
#: <syntaxhighlight lang="bash">
#: <syntaxhighlight lang="bash">
mcedit /etc/network/interfaces
nano /etc/network/interfaces
</syntaxhighlight>
</syntaxhighlight>
# Раскомментируйте и отредактируйте строки (или добавьте, если их не было):
# Раскомментируйте и отредактируйте строки (или добавьте, если их не было):
Строка 172: Строка 148:
#:<syntaxhighlight lang="bash">
#:<syntaxhighlight lang="bash">
ifdown wlan0 && ifup wlan0
ifdown wlan0 && ifup wlan0
</syntaxhighlight>
# Проверьте соединение командой:
#:<syntaxhighlight lang="bash">
iwconfig
</syntaxhighlight>
=== Настройка в режиме точки доступа и клиента одновременно ===
Режим одновременной работы модуля Wi-Fi и в режиме точки доступа, и в режиме клиента, называется ''Concurrent Mode'' или ''STA+SoftAP'', и поддерживается не всеми Wi-Fi модулями. Он работает на всех версиях Wiren Board 6 и Wiren Board 7.
Для настройки режима:
# Выполните команду
#:<syntaxhighlight lang="bash">
iwconfig
</syntaxhighlight>
#:В её выводе должны быть показаны два интерфейса Wi-Fi: ''wlan0'' и ''wlan1''.
# Настройте по двум предыдущим инструкциям подключение в режиме клиента и подключение в режиме точки доступа, но используйте для них разные интерфейсы. Например, оставьте ''wlan0'' для точки доступа, а клиента сделайте на ''wlan1''. Соответствующая часть файла ''/etc/network/interfaces'' должна выглядеть так:
#: <syntaxhighlight lang="bash">
# Wireless interfaces
auto wlan1
iface wlan1 inet dhcp
    wpa-ssid {ssid} # вместо {ssid} подставьте имя точки доступа
    wpa-psk {password} # вместо {password} подставьте пароль
auto wlan0
iface wlan0 inet static
  address 192.168.42.1
  netmask 255.255.255.0
</syntaxhighlight>
</syntaxhighlight>


Строка 229: Строка 233:
=== Универcальный файл настроек Wi-Fi ===  
=== Универcальный файл настроек Wi-Fi ===  


Ниже приведен текст файла с настройками для подключения к сетям с разными параметрами шифрования. Оригинал файла можно посмотреть [https://www.raspberrypi.org/forums/viewtopic.php?t=7592 на сайте www.raspberrypi.org].
Ниже приведен текст файла <code>/etc/network/interfaces</code> с настройками для подключения к сетям с разными параметрами шифрования. Оригинал файла можно посмотреть [https://www.raspberrypi.org/forums/viewtopic.php?t=7592 на сайте www.raspberrypi.org].
<syntaxhighlight lang="bash">
<syntaxhighlight lang="bash">
####################
####################
Строка 280: Строка 284:
</syntaxhighlight>
</syntaxhighlight>


=== Автоматическое переподключение при проблемах с соединением ===
=== Использование как роутер ===


Способ заимствован [http://alexba.in/blog/2015/01/14/automatically-reconnecting-wifi-on-a-raspberrypi/ на сайте alexba.in].
Не рекомендуется использовать, так как работает относительно медленно.


Допустим, контроллер подключён к роутеру с адресом <code>192.168.0.1</code> через интерфейс <code>wlan1</code>:
<syntaxhighlight lang="bash">
# Создайте в папке <code>/root</code> скрипт <code>wifi_autoconnect.sh</code>:
# apt install iptables
#:<syntaxhighlight lang="bash">mcedit /root/wifi_autoconnect.sh</syntaxhighlight>
# update-alternatives --set iptables /usr/sbin/iptables-legacy
#:с содержанием:
# modprobe ip_tables
#:<syntaxhighlight lang="bash">
# echo “net.ipv4.ip_forward=1” > /etc/sysctl.conf
#!/bin/bash
# echo 1 > /proc/sys/net/ipv4/ip_forward
 
# iptables -t nat -A POSTROUTING -o wlan1 -j MASQUERADE
# Подставьте имя интерфейса
# iptables -A FORWARD -i wlan1 -o wlan0 -m state --state RELATED,ESTABLISHED -j ACCEPT
WLANINTERFACE=wlan1
# iptables -A FORWARD -i wlan0 -o wlan1 -j ACCEPT
# Подставьте адрес роутера или сервера в интернете, доступ к которому будет проверяться
# iptables-save > /etc/iptables.ipv4.nat
SERVER=192.168.0.1
# echo "up iptables-restore < /etc/iptables.ipv4.nat" >> /etc/network/interfaces
 
# Only send two pings, sending output to /dev/null
ping -I ${WLANINTERFACE} -c2 ${SERVER} > /dev/null
 
# If the return code from ping ($?) is not 0 (meaning there was an error)
if [ $? != 0 ]
then
# Restart the wireless interface
ifdown --force ${WLANINTERFACE}
ifup ${WLANINTERFACE}
fi
</syntaxhighlight>
# Сделайте файл исполняемым, выполнив команду
#:<syntaxhighlight lang="bash">
chmod +x /root/wifi_autoconnect.sh
</syntaxhighlight>
# Запланируйте выполнение скрипта каждую минуту:
#* Если планировщик <code>cron</code> не установлен, установите его командой:
#*:<syntaxhighlight lang="bash">
apt-get install cron
</syntaxhighlight>
#* Добавьте в конец файла <code>/etc/crontab</code> строку
#*:<syntaxhighlight lang="bash">
*  * * * * root /root/wifi_autoconnect.sh
# Обязательно добавьте пустую строку в конец файла
</syntaxhighlight>
</syntaxhighlight>