В общем, я бы хотел использовать iwconfig
для подключения к моей сети Wi-Fi, когда я не в X. Но я просто не вижу способа сделать это на странице руководства. Любая идея?
В общем, я бы хотел использовать iwconfig
для подключения к моей сети Wi-Fi, когда я не в X. Но я просто не вижу способа сделать это на странице руководства. Любая идея?
Ответы:
iw
(list / config) может обрабатывать только 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 wext
sudo 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 driver
roboswitch wpa_supplicant Broadcom switch driver
bsd BSD 802.11 support (Atheros, etc.).
ndis Windows NDIS driver.
wpa_supplicant -B -iwlan0 -c/etc/wpa_supplicant.conf -Dwext && dhclient wlan0
не подключен к беспроводной сети, хотя по умолчанию NetworkManager подключает меня к сети. Я хочу попробовать способ командной строки. Есть ли какая-то ошибка, которую я делаю?
root
(системный администратор). Так что sudo wpa_supplicant -B -iwlan0 -c/etc/wpa_supplicant.conf -Dwext && sudo dhclient wlan0
или разделите их на две команды вокруг &&
.
Эта ссылка показывает все это и прекрасно работает для меня: http://linux.icydog.net/wpa.php
Я копирую содержимое здесь, поэтому оно у нас есть на тот случай, если сайт отключится.
Командная строка WPA
Иногда вы будете в командной строке без доступа к сетевым инструментам GUI - но ваша точка доступа защищена с помощью 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 будет ждать, пока вы наберете парольную фразу с последующим вводом:
$ wpa_passphrase myrouter > wpa.conf
mypassphrase
Вы должны получить файл, похожий на этот:
network={
ssid="myrouter"
#psk="mypassphrase"
psk=8ada1f8dbea59704ac379538b4d9191f6a72390581b4cd7a72864cea685b1a7f
}
На связи
Теперь мы фактически запустим wpa_supplicant для подключения к беспроводной сети. Во-первых, если ваш маршрутизатор передает свой SSID (они все делают по умолчанию), вы, вероятно, захотите убедиться, что ваша беспроводная карта действительно его видит:
$ iwlist scan
Возможно, вам придется запустить это как root, чтобы принудительно обновить.
Далее вам нужно знать три элемента информации:
wpa_supplicant --help
список различных драйверов, которые у него есть (в разделе «драйверы:»). По состоянию на 0.5.8, полезные варианты: wext
, hostap
, madwifi
, atmel
, ndiswrapper
, и ipw
(фш это только для старых ядер;> = 2.6.13 следует использовать wext). Если вы не видите конкретного соответствия для вашей карты, попробуйте wext, так как это своего рода универсальное решение.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 .
wpa_cli - это клиент командной строки wpa_suplicant для управления сетями Wi-Fi.
Редактировать : я только что нашел этот пост, объясняющий, как использовать nmcli, и он намного лучше, чем wpa_cli, поскольку он совместим с менеджером сети GUI, их настройками и сохраненными сетями Wi-Fi.
Пример использования wpa_cli :
Проверьте, что у меня уже есть сетевой интерфейс с поддержкой Wi-Fi:
# iwconfig
wlan0 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 wpa
1881 ? 00:00:07 wpa_supplicant
Войдите в интерактивный режим клиента wpa:
# wpa_cli
Список доступных точек доступа:
> scan
> scan_results
... и вы получите что-то вроде этого:
bssid / frequency / signal level / flags / ssid
e0:60:66:7c:81:7f 2417 -66 [WPA2-PSK-CCMP][ESS] vodafone817E
e0:60:66:61:83:4b 2452 -76 [WPA2-PSK-CCMP][WPS][ESS] vodafone834A
f8:8e:85:c5:65:c2 2462 -76 [WPA-PSK-CCMP+TKIP][WPS][ESS] MOVISTAR_65C1
a8: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_cli
а потом пишешь wpa_client
? На Kubuntu 18.10, wpa_client
кажется, не существует как команда
Сначала поднимите карту, если она не запущена:
ifconfig wlan0 up
Установите параметры в соответствии с вашей сетью
iwlist wlan0 scan
iwconfig wlan0 essid NETWORK_ID key WIRELESS_KEY
На самом деле есть способ сделать это с помощью NetworkManager, если у вас установлен checkbox
пакет.
sudo /usr/share/checkbox/create_connection SSID --security=wpa -key=WPA-KEY
(Кредит: ошибка 923836 , которая появилась в моих поисках по теме.)
Все ответы, предлагающие wpa_supplicant, неверны. Да, он может подключить вас к сети WPA, но в конечном итоге это плохое решение, потому что его будет очень сложно поддерживать и он не будет хорошо работать с проводным соединением. Прочитайте этот ответ и сделайте свою жизнь проще, используя Network Manager из командной строки. Я потратил впустую часы, пытаясь настроить wpa_supplicant, затем попробовал nmcli, и он "просто работал".
Вы можете использовать VSWM - Very Simple Wireless Manager. Вы помещаете свои известные точки доступа в простой файл cfg (/etc/vswm.cfg) и при запуске vswm
сканируете доступные сети и подключаете свою карту с первым, который появляется в /etc/vswm.cfg.
VSWM доступен по адресу https://github.com/dmelo/vswm . Вот как выглядит файл конфигурации vswm.cfg:
[global]
dev = wlan0
dns = ["4.2.2.1","8.8.8.8"]
[wlan0-0]
ssid = Network1
psk = netpassword
protocol = WPA
net = dhcp
[wlan0-1]
ssid = Network2
protocol = WEP
net = static
address = 192.168.0.15/24
Под капотом он использует стандартные инструменты командной строки: iwlist, wpa_supplicant, iwconfig, dhclient ... Только это автоматизирует работу.
У меня были проблемы с использованием wpa_supplicant
напрямую, чтобы войти в беспроводную сеть. Мой идентификатор сети и пароль генерировали ошибки, когда я использовал wpa_supplicant.conf
файл в wpa_supplicant
командной строке, например
sudo wpa_supplicant -iwlan0 -c/etc/wpa_supplicant.conf -B
Я смог обойти это wpa_cli
. Последовательность команд, которую я должен был использовать, поскольку я использую драйвер Windows с Linux ndiswrapper, выглядит следующим образом:
sudo modprobe ndiswrapper
sudo iwconfig wlan0 essid "<My Network ID>" mode managed
sudo wpa_cli identity "<My Network ID>" password "<My password>"
Я настроил сеть, добавив ее в раздел беспроводных сетей в графическом интерфейсе, чтобы я мог щелкнуть значок проводной или беспроводной сети и выбрать поставщика услуг беспроводной связи (который иногда требовался для завершения входа в систему).
Версия nmcli
командной строки стандартного приложения сетевого менеджера в Ubuntu.
Некоторые из преимуществ заключаются в том, что он использует конфигурацию, уже имеющуюся у вас в графическом интерфейсе, и ему не требуется root-доступ.
Вы можете запустить, nmcli
чтобы показать доступные варианты.
Пример подключения к Wi-Fi с именем MYESSID:
nmcli c up MYESSID