Как мне подключиться к сети WPA WiFi с помощью командной строки?

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

iw (список / конфигурация) может обрабатывать только WEP.

Вам нужен wpasupplicant пакет, который обеспечивает wpa_supplicant команду, установите, если необходимо, через sudo apt-get install wpasupplicant.

Вы вводите свой SSID и пароль в /etc/wpa_supplicant.conf (требуется sudo).

Пример:

network={    ssid="ssid_name"    psk="password"}

Предполагая, что ваш интерфейс - wlan0, вы можете подключиться с:

sudo wpa_supplicant -B -i wlan0 -c /etc/wpa_supplicant.conf -D wextsudo dhclient wlan0

"wext" - это драйвер, который будет специфичен для каждой карты; см. wpa_supplicant -h. Примеры:

hostap (default) Host AP driver (Intersil Prism2/2.5/3). (this can also be used with Linuxant DriverLoader).hermes Agere Systems Inc. driver (Hermes-I/Hermes-II).madwifi MADWIFI 802.11 support (Atheros, etc.).atmel ATMEL AT76C5XXx (USB, PCMCIA).wext Linux wireless extensions (generic).ndiswrapper Linux ndiswrapper.broadcom Broadcom wl.o driver.ipw Intel ipw2100/2200 driver.wired wpa_supplicant wired Ethernet driverroboswitch wpa_supplicant Broadcom switch driverbsd BSD 802.11 support (Atheros, etc.).ndis Windows NDIS driver.

Эта ссылка показывает все это и отлично работает для меня: http://linux.icydog.net/wpa.php

Я копирую содержимое здесь, так что оно у нас есть на случай, если этот сайт отключится.

Командная строка WPA

Иногда вы будете находиться в командной строке без доступа к сетевым инструментам с графическим интерфейсом, но ваша точка доступа защищена с помощью WPA. Что ты делаешь?

Предполагая, что ваша беспроводная карта действительно работает (т.Е. iwconfig может видеть ее и взаимодействовать с ней), использование wpa_supplicant на самом деле довольно просто.Установка wpa_supplicant

В настоящее время в большинстве дистрибутивов по умолчанию установлен wpa_supplicant. Если у вас есть доступные команды wpa_passphrase и wpa_supplicant, тогда все готово. В противном случае вам нужно будет установить пакет, выполнив что-то вроде (для Ubuntu):

$ sudo apt-get install wpasupplicant

Или (для Fedora):

# yum install wpa_supplicant

Или какая бы ни была команда для вашего дистрибутива.

Создание конфигурационного файла

Теперь, когда wpa_supplicant установлен, мы создадим его конфигурационный файл. Как только вы узнаете SSID и пароль WPA, все, что вам нужно сделать, это запустить:

$ wpa_passphrase myrouter mypassphrase > wpa.conf

Конечно, замените "myrouter" на SSID вашего маршрутизатора, "mypassphrase" на вашу парольную фразу WPA, а "wpa.conf" на любой файл, в котором вы хотите сохранить конфигурацию. Это имя файла не обязательно должно соответствовать определенному формату или иметь определенное расширение.

В качестве альтернативы, чтобы избежать ввода ключевой фразы в командной строке (чтобы она не сохранялась в истории командной оболочки), вы можете указать только SSID в командной строке. wpa_passphrase будет ждать, пока вы введете пароль, за которым следует enter:

$ wpa_passphrase myrouter > wpa.confmypassphrase

В итоге у вас должен получиться файл, выглядящий примерно так:

network={    ssid="myrouter"    #psk="mypassphrase"    psk=8ada1f8dbea59704ac379538b4d9191f6a72390581b4cd7a72864cea685b1a7f}

Подключение к интернету

Теперь мы фактически запустим wpa_supplicant для подключения к беспроводной сети. Во-первых, если ваш маршрутизатор передает свой SSID (все они по умолчанию), вы, вероятно, захотите убедиться, что ваша беспроводная карта действительно может его видеть:

$ iwlist scan

Возможно, вам придется запустить его от имени root, чтобы принудительно обновить.

Далее вам нужно будет знать три части информации:

  1. Какие драйверы беспроводной сети wpa_supplicant использовать для вашей карты. Бегущий wpa_supplicant --help перечислены различные драйверы, которые у него есть (в разделе "драйверы:"). Начиная с версии 0.5.8, полезными вариантами являются: wext, hostap, madwifi, atmel, ndiswrapper, и ipw> (ipw предназначен только для старых ядер; =2.6.13 следует использовать wext). Если вы не видите конкретного соответствия для своей карты, попробуйте wext, так как это своего рода универсальный вариант.
  2. Сетевое устройство вашей карты. Обычно это eth1 или wlan0, но если вы не уверены, вы можете просто запустить iwconfig. Он сообщит "нет беспроводных расширений" для не беспроводных устройств и отобразит некоторые данные для любых беспроводных устройств.
  3. Путь к файлу конфигурации, который вы создали на предыдущем шаге.

Теперь, когда у вас есть эти данные, запустите (от имени root):

# wpa_supplicant -D[driver] -i[device] -c[/path/to/config]

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

# wpa_supplicant -Dwext -ieth1 -c/root/wpa.conf

Вы также можете запустить его в фоновом режиме, используя -B опция, чтобы она не занимала вашу консоль.

Теперь вы подключены к сети.

Выход в Интернет

Чтобы действительно выйти в Интернет, вам придется каким-то образом получить IP-адрес. Большинство людей просто захотят получить динамический IP-адрес с DHCP-сервера, возможно, встроенного в маршрутизатор. (Я не собираюсь описывать настройку статического IP-адреса и таблицы маршрутизации, потому что это само по себе чудовищно.)

Чтобы получить аренду DHCP, сначала освободите все права аренды, которые вы все еще удерживаете (как root).:

# dhclient -r

Затем запросите новую аренду (конечно, заменив eth1 именем вашего сетевого устройства, тем же, которое вы использовали в предыдущем разделе).:

# dhclient eth1

Теперь у вас есть IP-адрес, по крайней мере теоретически. Счастливого серфинга!

В Debian и других дистрибутивах wpa_suplicant по умолчанию запущен как служба для управления сетями Wi-Fi. wpa_suplicant может обрабатываться различными клиентами / интерфейсами, такими как графический интерфейс сетевого менеджера. Это лучше объясняется в этом debian wiki.

wpa_cli - это клиент командной строки wpa_suplicant для управления сетями Wi-Fi.

Редактировать: Я только что нашел этот пост, объясняющий как использовать nmcli и это намного лучше, чем wpa_cli, поскольку оно совместимо с сетевым менеджером GUI и их настройками и сохраненными сетями Wi-Fi.

Пример использования wpa_cli:

Проверьте, что у меня уже есть сетевой интерфейс с поддержкой Wi-Fi:

# iwconfigwlan0     IEEE 802.11bgn  ESSID:off/any            Mode:Managed  Access Point: Not-Associated   Tx-Power=22 dBm             Retry short limit:7   RTS thr:off   Fragment thr:off          Encryption key:off          Power Management:on

Проверьте, запущен ли процесс wpa_suplicant:

# ps -e | grep wpa1881 ?        00:00:07 wpa_supplicant

Войдите в интерактивный режим wpa-клиента:

# wpa_cli

Список доступных точек доступа:

> scan> scan_results

... и вы получаете что-то вроде этого:

bssid / frequency / signal level / flags / sside0:60:66:7c:81:7f       2417    -66     [WPA2-PSK-CCMP][ESS]    vodafone817Ee0:60:66:61:83:4b       2452    -76     [WPA2-PSK-CCMP][WPS][ESS]       vodafone834Af8:8e:85:c5:65:c2       2462    -76     [WPA-PSK-CCMP+TKIP][WPS][ESS]   MOVISTAR_65C1a8:d3:f7:46:0c:be       2472    -83     [WPA-PSK-CCMP+TKIP][WPA2-PSK-CCMP+TKIP][WPS][ESS]       Orange-0CBC...

Добавьте свой AP:

> add_network> set_network 0 ssid "vodafone817E"> set_network 0 psk "my-pass-phrase"

Выберите его как текущий:

> enable_network 0

Подключитесь к нему:

> reconnect

Проверьте статус:

> status

Выйти из wpa_cli:

> quit

Из командной оболочки запросите DHCP для IP-адреса и сетевых настроек:

# dhclient -r# dhclient wlan0

Все ответы, предполагающие wpa_supplicant, неверны. Да, он может подключить вас к сети WPA, но в долгосрочной перспективе это плохое решение, потому что его будет очень сложно поддерживать и оно не будет хорошо работать с проводным подключением. Прочитай этот ответ и облегчите себе жизнь, используя Network Manager из командной строки. Я потратил часы впустую, пытаясь настроить wpa_supplicant, затем попробовал nmcli, и это "просто сработало".

То nmcli это версия командной строки приложения network manager по умолчанию в Ubuntu.

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

Ты можешь бежать nmcli чтобы показать доступные опции.

Пример подключения к Wi-Fi с именем MYESSID:

    nmcli c up MYESSID   

Сначала поднимите свою карточку, если она еще не закончилась.:

ifconfig wlan0 up

Установите параметры в соответствии с вашей сетью

iwlist wlan0 scaniwconfig wlan0 essid NETWORK_ID key WIRELESS_KEY

Вы можете использовать VSWM - Очень простой беспроводной менеджер. Вы размещаете свои известные точки доступа в простом файле cfg (/etc/vswm.cfg) и при запуске vswm он сканирует доступные сети и подключает вашу карту к первой, которая появляется в /etc/vswm.cfg.

VSWM доступен по адресу https://github.com/dmelo/vswm . Вот пример того, как выглядит конфигурационный файл vswm.cfg:

[global]dev = wlan0dns = ["4.2.2.1","8.8.8.8"][wlan0-0]ssid = Network1psk = netpasswordprotocol = WPAnet = dhcp[wlan0-1]ssid = Network2protocol = WEPnet = staticaddress = 192.168.0.15/24

Под капотом он использует стандартные инструменты командной строки: iwlist, wpa_supplicant, iwconfig, dhclient... Только это автоматизирует работу.

На самом деле есть способ сделать это с помощью NetworkManager, если у вас есть checkbox пакет установлен.

sudo /usr/share/checkbox/create_connection SSID --security=wpa -key=WPA-KEY

(Кредит: ошибка 923836, который всплыл в моих поисках по этой теме.)

У меня были проблемы с использованием wpa_supplicant непосредственно для подключения к беспроводной сети. Мой сетевой идентификатор и пароль генерировали ошибки, когда я использовал wpa_supplicant.conf досье на wpa_supplicant командная строка, например

sudo wpa_supplicant -iwlan0 -c/etc/wpa_supplicant.conf -B

Я смог обойти это с помощью wpa_cli. Последовательность команд, которую мне пришлось использовать, поскольку я использую драйвер Windows с Linux ndiswrapper, такова:

sudo modprobe ndiswrappersudo iwconfig wlan0 essid "<My Network ID>" mode managedsudo wpa_cli identity "<My Network ID>" password "<My password>"

Я настроил сеть, добавив ее в раздел беспроводной сети в графическом интерфейсе, чтобы я мог нажать на значок проводной или беспроводной сети и выбрать поставщика беспроводной связи (что иногда было необходимо для завершения входа в систему).

По теме: Инструмент командной строки для легкого изменения фактического беспроводного “подключенного к” network? в softwarerecs SE