Linux WiFi от командния ред с wpa_supplicant

В тази статия ще разгледаме как можете да конфигурирате WiFi чрез wpa_supplicant. без Xorg / X11 комунални услуги. Това е да се гарантира, че основните услуги се изпълняват редовно работят с минимален набор от технически средства за отдалечен достъп. Програмата ще се изпълнява като услуга, настройките се извършват редактиране на конфигурационния файл.

В бързо се установи връзка с открита точка за достъп може по този начин.

Ако е необходимо за дълго време, моля вътре.

Обща информация за wpa_supplicant

Каква е wpa_supplicant?


  • Cross-платформа, отворен код за изпълнението на стандарта IEEE 802.11 за Linux, BSD *, Windows, Mac OS X и други системи.
  • Пълна подкрепа за WPA2, WPA и по-възрастните безжична LAN протокол за сигурност.
  • Заявление потребителското пространство, което действа като молител и оператора на МСП изпълнение инструкции MLME.


  • WPA и пълна IEEE 802.11i / RSN / WPA2.
  • WPA-PSK и WPA2-PSK (предварително споделен ключ) ( "WPA-Personal").
  • WPA с EAP (т.е. RADIUS сървър за разпознаване) ( "WPA-Enterprise"), за управление на CCMP, TKIP, WEP (104/128 и 40/64 бита).
  • Кеширане RSN, PMKSA: предварително удостоверяване.

Linux WiFi от командния ред с wpa_supplicant

Както wpa_supplicant установява връзка с точка за достъп?


  • Интерфейсът на мрежата трябва да функционира правилно с шофьора инсталиран, преди да започнете wpa_supplicant.
  • Wpa_supplicant шофьор искания ядрото за сканиране на разположение Основен набор услуги (BSS).
  • Wpa_supplicant избира по БДС в съответствие с настройките.
  • Wpa_supplicant пита шофьора на ядрото да се установи връзка с избрания БДС.
  • За WPA-EAP: EAP автентификация произвежда вградена IEEE 802.1X молител, или пък Xsupplicant сървъра външно удостоверяване.
  • За WPA-EAP: получена главен ключ от IEEE 802.1X молител.
  • За WPA-PSK wpa_supplicant използва PSK парола като главния ключ на сесията.
  • Wpa_supplicant произвежда за удостоверяване точки за достъп с 4 ръкостискане [1] и съгласие ключова група.
  • Wpa_supplicant криптира единично разпръскване и множествено предаване пакети [2]. След това започва редовен обмен на данни.

Основната и голям плюс wpa_supplicant - това yuniksveynost. т.е. съответствие с принципа на Unix Way. когато програмата прави едно нещо, но го прави добре. В известен смисъл, тъй като wpa_supplicant Gentoo Way. Тя изисква известно внимание и търпение в началото, но по-късно тя може да бъде напълно забравена. След като програмата е инсталирана и пусната в материята, той попада напълно извън потока на събитията, като се обърна в няколко реда от -EF на електроенергийната система. Тя не блести и не мига в системния трей, не уведоми проучени, свързани и несвързани безжични мрежи. Това просто не е толкова дълго, колкото да не го търсим.

От минусите - сложността на настройка и конфигурация. Много по-трудно в сравнение с Tyrke-Tyrke-Tyrke в прозореца на Network Manager. да не говорим за WiFi връзка от всяко Android устройство. Ако ще на екскурзия с лаптоп Linux, най-вероятно предпочитате по-лесни за използване на предния край безжична мрежови настройки бързо да се свърже с безплатни WiFi точки за достъп в летища, хотели, или на работното място. За по произход като безжичен интернет - най-много него.

Ако не изберете графичен фронтенд, програмата почти дърпа не зависимости. За Gentoo Linux инсталация ще се побере с вдигнат, както е показано.


  • появят -av wpa_supplicant #Gentoo
  • правоспособност инсталирате wpasupplicant #Debian
  • Yum инсталирате wpa_supplicant #Redhat
  • Pacman -S wpa_supplicant #Arch

Свързване без конфигурационния файл

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

Пример за отворена мрежа е показано в началото. За затворен WPA мрежа бърза връзка глади така:

В началото е необходимо да се работи на самата програма и придружаващата wpa_supplicant wpa_cli.

След това, за създаване на интерактивен интерфейс wpa_cli.

WPA2 за затворена мрежа:

В края на краищата, трябва ръчно да стартирате DHCP демона.

Същото нещо с IW.

Настройка на домашна мрежа

Сега най-интересното - настройка. Този процес се документира за Arch Wiki. Debian Wiki и Gentoo Wiki. но всички подробности там, разбира се, че не.

Програмата е обикновено слагам в директорията / и т.н. / wpa_supplicant /. и нашата задача - да зададете правилно wpa_supplicant.conf конфигурационния файл. и да го свърже с безжична мрежа интерфейс Autorun.

Нека започнем с wpa_supplicant.conf. Ако се свързвате от вкъщи до WPA / WPA2, вероятно използвате парола за WiFi връзка, която съответства на WPA-PSK ( "WPA-Personal"). Ние няма да се обмисли варианта с WEP, защото тя не е много по-добре, отколкото отворена мрежа.

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

се изисква от първия ред. без ctrl_interface програма дори не се стартира. GROUP = колело трябва да се управлява от обикновен потребител в wpa_gui графичен интерфейс, но това не е нашият начин. Така че аз бях на улица GROUP = 0.

Всяка мрежова конфигурация файл трябва да съответства на единица мрежа <>. Ровя в изходния код, открих намери Полезна писмено променлива ap_scan в config.h файл. и потребителя и упътване за употреба описанието му е много оскъдна.

ap_scan - AP сканиране / селекция

По подразбиране, wpa_supplicant искания водача да изпълнява AP сканиране и след това използва резултатите от сканирането, за да изберете подходящ AP. Друга алтернатива е да се даде възможност на водача да се грижи за AP сканиране и подбор и използване wpa_supplicant просто да обработва EAPOL рамки, базирани на IEEE 802.11 информация асоциация от страна на водача.

1: wpa_supplicant започва сканиране и селекция AP (по подразбиране).
0: шофьора се грижи за сканиране избор AP и IEEE 802.11 параметри асоцииране (например WPA IE поколение); този режим може да се използва с водачи, които не са WPA, когато използвате режим IEEE 802.1X;
Не се опитвайте да се асоциира с точки за достъп (т.е. външна програма трябва да се контролира асоциация). Този режим трябва да се използва и при използване на жични Ethernet драйвери.

2: 0 като, но свързват с точки за достъп, използващи политика за сигурност и SSID (но не BSSID); това може да се използва, например с ndiswrapper и NDIS шофьорите да се даде възможност на работа със скрити идентификатори SSID и оптимизиран роуминг;
В този режим, мрежовите блокове в конфигурацията са се опитали един по един, докато докладите на драйвера за успешното асоцииране; всяка мрежа блок трябва да има ясна политика за сигурност (т.е. само един
опция в списъците) за key_mgmt, по двойки, групи, прото променливи.

Забележка: ap_scan = 2 не трябва да се използва с интерфейса на nl80211 шофьор (текущата Linux интерфейс). ap_scan = 1 се оптимизира работата работа с nl80211. За намиране на мрежи с помощта на скрит SSID, scan_ssid = 1 в блока на мрежата може да се използва с nl80211.

Ръководство Настройки

група: списък на приетите група (радиопредаване / радиопредаване) шифри за WPA
CCMP = AES в Counter режим с CBC-MAC [RFC 3610, IEEE 802.11i / D7.0]
TKIP = временен интегритет на ключа протокол [IEEE 802.11i / D7.0]
WEP104 = WEP (Wired Equivalent Privacy) с 104-битов ключ
WEP40 = WEP (Wired Equivalent Privacy), с 40-битов ключ [IEEE 802.11]
Ако не е зададено, това по подразбиране е: CCMP TKIP WEP104 WEP40

двойки: списък на приетите по двойки (единично) шифри за WPA
CCMP = AES в Counter режим с CBC-MAC [RFC 3610, IEEE 802.11i / D7.0]
TKIP = временен интегритет на ключа протокол [IEEE 802.11i / D7.0]
NONE = Използвайте само Група Keys (оттеглено, не трябва да се включва, ако АР подкрепят двойки ключове)

прото: списък на приетите протоколи
WPA = WPA / IEEE 802.11i / D3.0
RSN = WPA2 / IEEE 802.11i (също WPA2 може да се използва като псевдоним за RSN)
Ако не е зададено, това по подразбиране е: WPA RSN

key_mgmt: списък на приетите заверени протоколи за управление на ключовите
WPA-PSK = WPA предварително споделен ключ (това изисква "PSK" поле)
WPA-EAP = WPA използване EAP удостоверяване (това може да се използва външна програма, например Xsupplicant, за IEEE 802.1X EAP удостоверяване
IEEE8021X = IEEE 802.1X използване EAP удостоверяване и (по избор) динамично генерирани ключове WEP
НЯМА = WPA не се използва; прав текст или статично WEP може да се използва
Ако не е зададено, че по подразбиране това: WPA-PSK WPA-EAP

Създаване на парола хашиш за PSK:

Всичко е готово за създаване на конфигурацията на мрежата. Получената файла трябва да изглежда по следния начин.

Валидните стойности за BSSID. група. прото двойки и може да се определи чрез сканиране на безжичната мрежа.

iwlist командването на набор от безжични инструменти, LLC, своето място сега IW.

Конфигуриране на 802.1X Офис

Стандартът IEEE 802.1X дефинира по-строг модел на WiFi мрежа. Вместо PSK парола са длъжни да представят удостоверение за сървър.


  • ca_cert - абсолютен път до CA-сертификата в PEM или DER формат, трябва да бъде в състояние да потвърди сертификата на сървъра.
  • ca_path - абсолютен път до директорията, в която се съхраняват файловете на CA-сертификат (в PEM формат), които искате да добавите към списъка с надеждни.
  • client_cert - Абсолютно път към клиентски сертификат в PEM или DER формат.
  • EAP - разделени с интервал списък на поддържаните методи EAP A: MD5, MSCHAPv2, ОТП, GTC, TLS, PEAP или TTLS.
  • идентичност - идентичност EAP, като потребителското име.
  • парола - парола EAP.

Така може да изглежда единица, която е конфигурирана да се свърже с мрежата при удостоверяване WPA-Enterprise Mode 802.1X PEAP, където искате да въведете потребителски акаунт:

И това е пример за устройството, който е конфигуриран да се свърже с мрежата при удостоверяване режим WPA-Enterprise 802.1X EAP-TLS, която изисква сървър и клиент сертификати:

Wpa_supplicant свързване с мрежовата карта

За Gentoo Linux трябва да добавите 2 реда в /etc/conf.d/net.

Поддържани -D шофьори. За съвременните чипове и ядрото версии подходящ nl80211. На стар хардуер може да лети wext.


  • nl80211 - Нов шофьор.
  • wext - Linux безжични разширения (генерични).
  • кабелен - wpa_supplicant кабелен Ethernet драйвер.
  • roboswitch - wpa_supplicant превключвател шофьор Broadcom.
  • BSD - BSD 802.11 подкрепа (Atheros и т.н.).
  • NDIS - Windows NDIS шофьор.

Мрежа wlan0 карта трябва да бъде zalinkovana с lo0.

Трябва също да се добавят към стартиране wpa_supplicant на.

потребители на Debian добавите запис във файла / и т.н. / мрежа / интерфейси.

Потребителите RedHat се добавят към / и т.н. / sysconfig / wpa_supplicant

и в файл / и т.н. / sysconfig / мрежа скриптове / ifcfg-wlan0

След wpa_supplicant е свързана успешно към точката за достъп, можете да видите в dmesg протокол за провеждане на обаждането.

Ако вместо това виждате грешка:

най-вероятно, че е необходимо да се използва драйвер вместо wext nl80211. И с тази грешка:

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

използваните материали

Можете да използвате и dhcpcd.service systemd-демон за всички интерфейси и dhcpcd @ интерфейс .service за определен интерфейс.
Аз лично как работи. Wi-Fi интернет на лаптопа се свържете ръчно чрез wpa_supplicant. Аз не знам защо се е случило това, изглежда много отдавна, аз не са овладели NetworkManager (по някаква причина той не работи), и е необходимо мрежата. Това е свързано посредством wpa_supplicant. И тогава аз използвах, много удобен и лаптоп няма да се свърже без мое знание, в

/ WPA са конфигурации за желаната точки.

Хе, имам EEE-PC 701 на стойност Ubuntu 10.04 (!) - няма systemd, но О, добре, аз ще направя през Баш-скрипт.
И като цяло - където можете да прочетете за концепцията на systemd? Е, така че да не изсъхне език на преподаване ...