Настройка WiFi через командную строку

Включение вай-фай адаптера на компьютере или ноутбуке через командную строку

Наравне с «Панелью управления» можно использовать оболочку командной строки PowerShell для отключения или включения любых сетевых адаптеров, используемых на ПК или ноутбуке.

Чтобы включить его, понадобится выполнить:

  1. Вменю «Пуск» отыскать Windows PowerShell, кликнуть мышкой (правой кнопкой) по верхнему результату и выбрать «Запуск от имени администратора».
  2. Далее требуется ввести команду, чтобы определить имя адаптера, который нужно включить: Get-NetAdapter | format-table.
  1. Затем следует вписать в строку Enable-NetAdapter -Name «YOUR-ADAPTER-NAME» -Confirm: $false. В данной команде необходимо указать имя выбранного адаптера. Кавычки требуются лишь в случае, если в имени есть пробелы.

Чтобы отключить сетевой адаптер Wi-Fi или Ethernet в Windows посредством PowerShell, необходимо выполнить:

  1. В меню «Пуск» отыскать Windows PowerShell, кликнуть мышкой (правой кнопкой) по отобразившемуся результату вверху и выбрать «Запуск от имени администратора».

2.Ввести: Get-NetAdapter | format-table.

  1. Далее в консоли нужно вписать Disable-NetAdapter -Name «YOUR-ADAPTER-NAME» -Confirm: $false, указав имя адаптера.

Включение общего доступа

Теперь готовой точке надо дать общий доступ. Без него любое подключаемое устройство не будет иметь прав на получение данных от ПК по беспроводному сетевому соединению.

Что нужно сделать:

  1. Открыть «Центр управления сетями и общим доступом»;
  2. В левой части окна выбрать параметры девайса;
  3. Теперь нужно найти искомое подключение. Выбирать надо то подключение, через которое компьютер выходит в интернет, т.е. Wi-Fi адаптер или Ethernet-кабель;
  1. Откроется новое окно. В верхней части будут две вкладки. Надо переключиться на «Доступ»;
  2. Здесь нужно включить разрешение для других пользователей Wi-Fi на подключение к интернету через текущий компьютер;
  3. В этом же окне понадобится выбрать правильный девайс. После запуска произойдет подключение через командную строку, оно отображается в списке вместе с остальными устройствами.

Теперь спот станет «открытым» и начнет раздавать интернет на все устройства. Если интернет не появился, то компьютер нужно перезагрузить.

После перезагрузки потребуется снова запустить интернет, делается это тем же запросом:

netsh wlan start hostednetwork

А если потребуется выключить спот, то для этого в командной строке вводится:

netsh wlan stop hostednetwork

Для проверки статуса интернета используется команда:

netsh wlan show hostednetwork

Настройка 802.1x для офиса

Стандарт IEEE 802.1X определяет более строгую модель подключения к WiFi сети. Вместо psk пароля необходимо предъявить серверный сертификат.

  • ca_cert — Абсолютный путь к CA-сертификату в формате PEM или DER, необходим для возможности подтверждения сертификата сервера.
  • ca_path — Абсолютный путь к директории, где хранятся файлы CA-сертификатов (в формате PEM), которые вы хотите добавить в список доверенных.
  • client_cert — Абсолютный путь к клиентскому сертификату в формате PEM или DER.
  • eap — Разделенный пробелами список поддерживаемых методов EAP: MD5, MSCHAPV2, OTP, GTC, TLS, PEAP, или TTLS.
  • identity — Идентификации EAP, например имя пользователя.
  • password — Пароль EAP.

Так может выглядеть блок, настроенный для подключения к сети в режиме WPA-Enterprise с аутентификацией 802.1X PEAP, в котором требуется ввод данных учетной записи пользователя:

Настройка wifi через командную строку

Тема нашей заметки не совсем обычна – применение опций консоли (командной строки Windows) для настройки и манипулирования беспроводными сетями WiFi. Более конкретно речь идет о раздаче вайфай с ноутбука, оснащенного встроенным модулем беспроводной сети.

О том, как сделать это при помощи графического интерфейса Windows, написано немало. Тем же, кто дружит с командной строкой, наверняка понравится описываемый нами способ. Перед тем как начинать вводить инструкции в командную строку, нужно будет проделать следующее:

Подготовительный этап нашей работы можно считать завершенным, теперь другие компьютеры и мобильные устройства потенциально готовы принимать сигнал WiFi с ноутбука. Но это еще далеко не все.

«Расшарив» доступ, необходимо его правильно настроить, чтобы раздавать сетевой ресурс ноутбука прочим устройствам. Именно для этого мы и задействуем командную строку.

Для запуска консоли нужно воспользоваться одним из двух нижеприведенных способов:

  • Нажать комбинацию клавиш «Win» «X». При этом может всплыть окошко настройки прав, где нужно будет указать загрузку от имени администратора системы.
  • Соответствующий консоли ярлык легко обнаруживается в меню «Пуск». Запуск от имени администратора осуществляется из пункта контекстного меню ярлыка с одноименным названием.

Перед нами появится окно с приглашением к вводу команд. Как раздать WiFi с его помощью? Очевидно, нужно вводить в командную строку инструкции, активирующие те или иные функции беспроводной сети. Именно этим мы и займемся дальше. Первым делом нужно убедиться в том, что данная возможность в принципе поддерживается ноутбуком.

Сделать это можно так: вводим в приглашение консоли команду «netsh wlan show drivers», то есть просим систему показать драйвера имеющихся устройств воздушной передачи интернета. В результате будет выдан список такого оборудования, сопровождаемый некоторой дополнительной информацией. Выглядит этот список так, как на картинке ниже:

:/>  Как запаролить папку на внешнем жестком диске

Список оборудованияЗеленым подсвечена строка, в которой после двоеточия должно стоять слово «Да».

Чтобы наделить ноутбук функцией роутера, нужно воспользоваться другой командой: «netsh wlan set hostednetwork mode = allow ssid = … key = …», где вместо троеточий нужно ввести произвольные имя будущей «сетки» и пароль для доступа к ее ресурсам. То есть команда имеет два параметра, задаваемых самим пользователем. Первый «ssid» – имя, второй «key» — пароль. Для ясности приведем иллюстрацию:

Два параметраСистема сообщила нам, что сеть ею создана. Как раздать вайфай другим аппаратам? Для этого предназначена команда запуска, вводимая без параметров: «netsh wlan start hostednetwork». Если все сделано правильно, то система сообщит нам об этом фразой «Размещенная сеть запущена»:

«Размещенная сеть запущена»В принципе, этого для наших целей вполне достаточно. Уже сейчас можно подключаться к вайфаю раздающего ноутбука и просматривать веб-страницы. Но нельзя не упомянуть о еще одной полезной функции: возможности просмотра текущих подключений абонентов и статистики таких подключений. Делается это командой «netsh wlan show hostednetwork». Результат будет похож на тот, что изображен на рисунке:

«netsh wlan show hostednetwork»Вот, пожалуй, и все о том, как управлять WiFi ноутбука через командную строку.

Видео по теме

Настройка для домашней сети

Теперь самое интересное — настройка. Этот процесс задокументирован для Arch Wiki, Debian Wiki и Gentoo Wiki, но всех деталей там естественно нет.

Программа обычно ставится в директорию /etc/wpa_supplicant/, и наша задача — правильно настроить конфигурационный файлwpa_supplicant.conf, и привязать его к автозапуску беспроводного сетевого интерфейса.

Начнем с wpa_supplicant.conf. Если вы подключаетесь из дома к WPA/WPA2, то скорее всего используете пароль для WiFi соединения, что соответствует режиму WPA-PSK (“WPA-Personal”). Мы не будет рассматривать варианты с WEP шифрованием, так как оно ненамного лучше открытой сети.

Возьмем типовой конфиг из документации. Например такой.

ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=wheel
#
# home network; allow all valid ciphers network={ ssid="home" scan_ssid=1 key_mgmt=WPA-PSK psk="very secret passphrase" }

Первая строка необходима, без ctrl_interface программа даже не запустится. GROUP=wheel нужно для того, чтобы запускать из под обычного пользователя в графическом интерфейсе wpa_gui, но это не наш путь. Поэтому меняем на рутовый GROUP=0.

ctrl_interface_group=0
ctrl_interface=/var/run/wpa_supplicant
ap_scan=1

Каждой сети в файле настроек должен соответствовать блок network {}. Покопавшись в исходниках, обнаружил нашел годное писание переменной ap_scan в файле config.h, а в мануале и руководстве пользователя ее описание очень скудное.

ap_scan=0 #драйвер сканирует точку доступа
ap_scan=1 #wpa_supplicant сканирует точку доступа, используется по-умолчанию
ap_scan=2 #как 0, но еще учитывает политики безопасности и SSID, работает с ndiswrapper
Полное описание

ap_scan — AP scanning/selection

By default, wpa_supplicant requests driver to perform AP scanning and then uses the scan results to select a suitable AP. Another alternative is to allow the driver to take care of AP scanning and selection and use wpa_supplicant just to process EAPOL frames based on IEEE 802.11 association information from the driver.

1: wpa_supplicant initiates scanning and AP selection (default).
0: Driver takes care of scanning, AP selection, and IEEE 802.11 association parameters (e.g., WPA IE generation); this mode can also be used with non-WPA drivers when using IEEE 802.1X mode;
do not try to associate with APs (i.e., external program needs to control association). This mode must also be used when using wired Ethernet drivers.

2: like 0, but associate with APs using security policy and SSID (but not BSSID); this can be used, e.g., with ndiswrapper and NDIS drivers to enable operation with hidden SSIDs and optimized roaming;
in this mode, the network blocks in the configuration are tried one by one until the driver reports successful association; each network block should have explicit security policy (i.e., only one
option in the lists) for key_mgmt, pairwise, group, proto variables.

Note: ap_scan=2 should not be used with the nl80211 driver interface (the current Linux interface). ap_scan=1 is optimized work working with nl80211. For finding networks using hidden SSID, scan_ssid=1 in the network block can be used with nl80211.

Остальные опции взяты из руководства конфиг файла.

  • bssid — The Basic Service Set Identifier (BSSID), физический адрес точки доступа.
  • key_mgmt — Протоколы аутентификации.
  • pairwise — Для WPA2 укажите CCMP, а для WPA — TKIP.
  • proto — WPA/WPA2.
  • psk — Хэш пароля PreShared Key.
руководство по настройкам

group: list of accepted group (broadcast/multicast) ciphers for WPA
CCMP = AES in Counter mode with CBC-MAC [RFC 3610, IEEE 802.11i/D7.0]TKIP = Temporal Key Integrity Protocol [IEEE 802.11i/D7.0]WEP104 = WEP (Wired Equivalent Privacy) with 104-bit key
WEP40 = WEP (Wired Equivalent Privacy) with 40-bit key [IEEE 802.11]If not set, this defaults to: CCMP TKIP WEP104 WEP40

:/>  Сдвинулся экран на ноутбуке вправо что делать? - О компьютерах, ноутбуках и программах

pairwise: list of accepted pairwise (unicast) ciphers for WPA
CCMP = AES in Counter mode with CBC-MAC [RFC 3610, IEEE 802.11i/D7.0]TKIP = Temporal Key Integrity Protocol [IEEE 802.11i/D7.0]NONE = Use only Group Keys (deprecated, should not be included if APs support pairwise keys)

proto: list of accepted protocols
WPA = WPA/IEEE 802.11i/D3.0
RSN = WPA2/IEEE 802.11i (also WPA2 can be used as an alias for RSN)
If not set, this defaults to: WPA RSN

key_mgmt: list of accepted authenticated key management protocols
WPA-PSK = WPA pre-shared key (this requires ‘psk’ field)
WPA-EAP = WPA using EAP authentication (this can use an external program, e.g., Xsupplicant, for IEEE 802.1X EAP Authentication
IEEE8021X = IEEE 802.1X using EAP authentication and (optionally) dynamically generated WEP keys
NONE = WPA is not used; plaintext or static WEP could be used
If not set, this defaults to: WPA-PSK WPA-EAP

Создаем хэш пароля для psk:

$ wpa_passphrase MYSSID passphrase

Все готово, чтобы создать конфиг сети. Итоговый файл должен выглядеть как-то так.

ctrl_interface_group=0
ap_scan=1
ctrl_interface=/var/run/wpa_supplicant
network={ proto=WPA2 pairwise=CCMP key_mgmt=WPA-PSK priority=5 ssid="MYSSID" bssid=44:b0:51:dc:ba:f8 psk=ce55977186ae1df2dffeb571acee8dacd92f49edddbdef53623132e3c24567ae
}

Верные значения для bssid, group, proto и pairwise можно определить, сканируя беспроводную сеть.

[root@home ~]$ iwlist <wlan_interface> scan

Команда iwlist из набора Wireless Tools устарела, вместо нее сейчас iw.

[root@home ~]$ iw dev <wlan_interface> scan

Настройка раздачи wi-fi в windows с помощью командной строки

ПК на Windows, имеющий проводное подключение к интернету, может раздать сеть другим девайсам. Это выполняется посредством небольшого набора конфигураций командной строки.

Хотя технически это было возможно еще некоторое время назад, процесс конфигурации изменился за последние годы.

Общие сведения о wpa_supplicant

Что из себя представляет wpa_supplicant?

Wpa_supplicant поддерживает

  • WPA и полностью IEEE 802.11i/RSN/WPA2.
  • WPA-PSK и WPA2-PSK (pre-shared key) (“WPA-Personal”).
  • WPA вместе с EAP (т.е., сервером аутентификации RADIUS) (“WPA-Enterprise”) управление ключами CCMP, TKIP, WEP (104/128 и 40/64 бит).
  • Кэширование RSN, PMKSA: предварительную аутентификацию.

Настройка WiFi через командную строку

Как wpa_supplicant устанавливает связь с точкой доступа?

Главный и большой плюс wpa_supplicant — его юниксвейность, то есть соответствие принципу Unix Way, когда программа делает что-то одно, но делает это хорошо. В каком-то смысле wpa_supplicant также Gentoo Way.

Она требует некоторого внимания и терпения вначале, но затем о ней можно напрочь забыть. После того как программа настроена и пущена в дело, она полностью выпадает из потока событий, превращаясь в пару строк из ps -ef. Она не сверкает и не мигает в системном трее, не оповещает о разведанных, подключенных и отключенных беспроводных сетях. Ее просто нет, пока вы сами ее не поищите.

Из минусов — сложность настройки и конфигурации. Много возни по сравнению с тырк-тырк-тырк в окне Network Manager, не говоря уже о WiFi подключении с любого Андроид устройства. Если вы собираетесь в поездку с Linux ноутбуком, то наверняка предпочтете более дружественный фронтенд настройки беспроводной сети, чтобы быстро подключаться к бесплатным точкам доступа WiFi в аэропорту, гостинице или в рабочей обстановке. Для домашнего же беспроводного интернета — самое то.

Отладка

После того как wpa_supplicant успешно подключилась к точке доступа, в dmesg можно увидеть протокол установки соединения.

[243960.587] cfg80211: World regulatory domain updated:
[243960.587] cfg80211: DFS Master region: unset
[243960.587] cfg80211: (start_freq - end_freq @ bandwidth), (max_antenna_gain, max_eirp), (dfs_cac_time)
[243960.587] cfg80211: (2402000 KHz - 2472000 KHz @ 40000 KHz), (N/A, 2000 mBm), (N/A)
[243960.587] cfg80211: (2457000 KHz - 2482000 KHz @ 20000 KHz, 92000 KHz AUTO), (2000 mBm), (N/A)
[243960.587] cfg80211: (2474000 KHz - 2494000 KHz @ 20000 KHz), (N/A, 2000 mBm), (N/A)
[243960.587] cfg80211: (5170000 KHz - 5250000 KHz @ 80000 KHz, 160000 KHz AUTO), (2000 mBm), (N/A)
[243960.587] cfg80211: (5250000 KHz - 5330000 KHz @ 80000 KHz, 160000 KHz AUTO), (2000 mBm), (0 s)
[243960.587] cfg80211: (5490000 KHz - 5730000 KHz @ 160000 KHz), (N/A, 2000 mBm), (0 s)
[243960.587] cfg80211: (5735000 KHz - 5835000 KHz @ 80000 KHz), (N/A, 2000 mBm),
[243960.587] cfg80211: (57240000 KHz - 63720000 KHz @ 2160000 KHz), (N/A, 0 mBm),
[243963.070] wlan0: authenticate with aa:bb:cc:dd:ee
[243963.075] wlan0: send auth to aa:bb:cc:dd:ee (try 1/3)
[243963.077] wlan0: authenticated
[243963.084] wlan0: associate with aa:bb:cc:dd:ee (try 1/3)
[243963.088] wlan0: RX AssocResp from aa:bb:cc:dd:ee (capab=0x411 status=0 aid=3)
[243963.090] wlan0: associated

Если же вместо этого вы увидите ошибку:

Successfully initialized wpa_supplicant
nl80211: Driver does not support authentication/association or connect commands
wlan0: Failed to initialize driver interface

то скорее всего, надо использовать драйвер wext вместо nl80211. А с ошибкой:

WEXT: Driver did not support SIOCSIWAUTH for AUTH_ALG, trying SIOCSIWENCODE

наоборот, вместо wext надо подставить nl80211.В ситуации, когда вы не можете определить ошибку, запустите wpa_supllicant напрямую с ключем -dd.

[root@home ~]$ wpa_supplicant -Dnl80211 -iwlan0 -C/var/run/wpa_supplicant/ -c/etc/wpa_supplicant/wpa_supplicant.conf -dd

Подключение без конфиг файла

Если вам нужно подключиться только один раз, то необходимости создавать файл конфигурации и вникать во все тонкости настройки, нет. Достаточно набрать несколько инструкций из командной строки.

:/>  Ven dev устройства

Пример для открытой сети был показан в самом начале. Для закрытой WPA сети быстрое подключение выгладит так:

В начале надо запустить саму программу wpa_supplicant и сопутствующую wpa_cli.

[root@home ~]$ wpa_supplicant -Dnl80211 -iwlan0 -C/var/run -u &
[root@home ~]$ wpa_cli -p/var/run

Затем настройка из интерактивного интерфейса wpa_cli.

> add_network
> set_network 0 ssid "name of AP"
> set_network 0 key_mgmt WPA-PSK
> set_network 0 pairwise TKIP
> set_network 0 psk "key"
> enable_network 0

Для закрытой WPA2 сети:

> add_network
> set_network 0 ssid "name of AP"
> set_network 0 key_mgmt WPA-PSK
> set_network 0 pairwise CCMP
> set_network 0 psk "key"
> enable_network 0

В конце необходимо вручную запустить демон DHCP.

[root@home ~]$ dhcpcd wlan0

Подключение к ad-hoc сети

Никогда с такой не сталкивался, но готовым нужно быть ко всему. Подключение к открытой ad-hoc.

> add_network
> set_network 0 ssid "adhoc-ssid"
> set_network 0 mode 1
> set_network 0 frequency 2412
> set_network 0 key_mgmt NONE
> enable_network 0

То же самое с помощью iw.

> iw dev wlan0 del
> iw phy phy0 interface add wlan0 type ibss
> ifconfig wlan0 up
> iw dev wlan0 scan
> iw dev wlan0 ibss join AdHocNetworkName 2412 

Привязка wpa_supplicant к сетевой карте

Для Gentoo Linux надо добавить 2 строки в /etc/conf.d/net.

modules=( "wpa_supplicant" )
wpa_supplicant_wlan0="-Dnl80211"

Список поддерживаемых -D<driver> драйверов. Для современных чипов и версий ядра подойдет nl80211. На старом железе может взлететь wext.

  • nl80211 — New driver.
  • wext — Linux wireless extensions (generic).
  • wired — wpa_supplicant wired Ethernet driver.
  • roboswitch — wpa_supplicant Broadcom switch driver.
  • bsd — BSD 802.11 support (Atheros, etc.).
  • ndis — Windows NDIS driver.

Сетевая карта wlan0 должна быть залинкована с lo0.

lrwxrwxrwx 1 root root 6 ноя 29 2021 /etc/init.d/net.wlan0 -> net.lo

Следует также добавить wpa_supplicant в автозапуск.

 [root@home ~]$ rc-update add wpa_supplicant default

Пользователи Debian добавляют запись в файл /etc/network/interfaces.

auto wlan0
iface wlan0 inet dhcp wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf

Пользователи RedHat добавляют в /etc/sysconfig/wpa_supplicant

INTERFACES="-iwlan0"

а в файл /etc/sysconfig/network-scripts/ifcfg-wlan0

ESSID="home"
NAME=wlan0
MODE=Managed
KEY_MGMT=WPA-PSK
TYPE=Wireless
BOOTPROTO=dhcp
DEFROUTE=yes
ONBOOT=yes
HWADDR=aa:bb:cc:dd:ee
IPV6INIT=yes
IPV6_AUTOCONF=yes

Самые распространенные проблемы

Многие пользователи сталкиваются с конфликтом интернета и брандмауэра. Если сеть создана, все настройки сделаны, а интернета по-прежнему нет, то скорее всего брандмауэр операционной системы или же антивирус заблокировал подключение

Проще всего отключить их на время работы. Но если сеть будет работать долго, да и в целях безопасности, лучшим вариантом будет добавить соединение в список доверенных или исключений.

Помимо этого, ошибки могут возникнуть и в процессе создания сети. Если на этапе регистрации данных нового спота возникают ошибки, то нужно проверить драйвера на Wi-Fi адаптер.

Это делает запрос:

netsh wlan show drivers

В результате исполнения на экране будет выведена подробная информация о драйверах сетевого устройства, через которое в данный момент компьютер получает выход в интернет.Требуется проверить поле «Поддержка размещенной сети». Если там написано «нет», то драйверы не актуальны, не соответствуют девайсу или дали сбой.

В таком случае их необходимо переустановить и заново ввести запрос. Если ошибка устранена, то в том же поле появится надпись «Да».

Установка

Если не выбирать графический фронтенд, то программа почти не тянет за собой никаких зависимостей. Для Gentoo Linux сгодится установка с выставленными флагами как показано.

(5:562)$ equery uses wpa_supplicant
[ Legend : U - final flag setting for installation]
[ : I - package is installed with flag ]
[ Colors : set, unset ] * Found these USE flags for net-wireless/wpa_supplicant-2.6: U I - - ap : Add support for access point mode dbus : Enable dbus support for anything that needs it (gpsd, gnomemeeting, etc) - - eap-sim : Add support for EAP-SIM authentication algorithm - - fasteap : Add support for FAST-EAP authentication algorithm - - gnutls : Add support for net-libs/gnutls (TLS 1.0 and SSL 3.0 support) hs2-0 : Add support for 802.11u and Passpoint for HotSpot 2.0 - - p2p : Add support for Wi-Fi Direct mode - - qt4 : Add support for the Qt GUI/Application Toolkit version 4.x - - qt5 : Add support for the Qt 5 application and UI framework readline : Enable support for libreadline, a GNU line-editing library that almost everyone wants - - smartcard : Add support for smartcards ssl : Add support for Secure Socket Layer connections - - tdls : Add support for Tunneled Direct Link Setup (802.11z) - - uncommon-eap-types : Add support for GPSK, SAKE, GPSK_SHA256, IKEV2 and EKE - - wps : Add support for Wi-Fi Protected Setup

Устанавливаем.

  • emerge -av wpa_supplicant #Gentoo
  • aptitude install wpasupplicant #Debian
  • yum install wpa_supplicant #Redhat
  • pacman -S wpa_supplicant #Arch