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