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

EnismanY / linux_wifi.md

This provides details including, frequency of WiFi, BSSID, SSID, encryption (for WPA2-PSK, should see pairwise_cipher and group_cipher are CCMP ) MAC address and IP address.

There are several options for turning off WiFi, what works will be dependent on how the system is configured. Assuming the WiFi interface is wlan0 , options are:

sudo ip link set wlan0 down 

    First list all devices using:

0: phy0: Wireless LAN Soft blocked: no Hard blocked: no 1: hci0: Bluetooth Soft blocked: no Hard blocked: no 

Again, there are multiple options:

sudo ip link set wlan0 up 

Alternatively, assuming the number of the device has been ascertained using rfkill list ( 0 in the example below) execute:

Display information about the WiFi interface

Assuming WiFi interface is wlan0 :

Finding WiFi link quality & signal level

iwconfig wlan0 | grep -i --color "Quality\|Signal" 

The numbers reported for quality will be WiFi driver dependent.

Continous update of link quality

The file /proc/net/wireless contains information about the WiFi signal. This can be viewed continually using a combination of the cat and watch commands.

watch -n 1 cat /proc/net/wireless 

Alternatively, the ncurses-based monitoring application wavemon can be used. This will likely need installing, which in Debian based distributions can be achieved using:

To use the application simply run:

Setting a prefered WiFi band

It is possible to set a preferred WiFi band, ie 2.5 or 5 GHz. This may be desirable to avoid interference from other devices or to improve range/speed. Remember, 2.5 GHz has the better range and 5 GHz the better speed.

First check the network interface is capable of using both bands. There are at least two methods to determine this.

sudo iwlist wlan0 scan | grep -i "Frequency\|Address\|ESSID" 

THe output will be similar to:

Cell 01 - Address: ab:12:cd:34:ef:56 Frequency:2.412 GHz ESSID:"DESIRED SSID" Cell 02 - Address: gh:78:ij:90:kl:12 Frequency:5.70 GHz ESSID:"DESIRED SSID" . 
iw list | grep -i "Frequencies\|MHz\|GHz" 

In the output look for the section(s) entitles Frequencies, which will be similar to:

Frequencies: * 5180 MHz [36] (22.0 dBm) (no IR) * 5200 MHz [40] (22.0 dBm) (no IR) * 5220 MHz [44] (22.0 dBm) (no IR) * 5240 MHz [48] (22.0 dBm) (no IR) . 

The frequencies are the centre of the band.

Both the SSID and BSSID are required, the BSSID is the MAC address for a particular band of the access point. To obtain this information, enter the wpa command line interface by running the following, where wlan0 is the name of the wireless network interface:

Читайте также:  Лицензирование сервера 1с линукс

Once in the iteractive mode, indicated by:

run the following two commands, letting the first command complete execution (indicated by a return of the > prompt) before running the second.

The output will be similar to:

bssid / frequency / signal level / flags / ssid ab:12:cd:34:ef:56 2412 -79 [WPA2-PSK-CCMP][WPA2-PSK-CCMP][ESS] DESIRED SSID gh:78:ij:90:kl:12 5700 -84 [WPA2-PSK-CCMP][WPA2-PSK-CCMP][ESS] DESIRED SSID . 

This shows the desired SSID and the frequencies, 2.5 and 5 GHz, along with their respective BSSIDs.

Quit the interactive mode by entering q .

To modify the settings

Kill network-manager and wpa_supplicant:

sudo service network-manager stop && sudo killall wpa_supplicant 

On the Raspberry Pi (August 2020) networking this can be achieved using:

sudo service networking stop && sudo killall wpa_supplicant 

If /etc/wpa_supplicant.conf does not exist, create the file using:

sudo wpa_passphrase > /etc/wpa_supplicant 

must be replaced with the SSID of the WiFi network. A blank prompt will be received awaiting the user to enter the password for the WiFi. Once this has been done edit the file using:

sudo nano /etc/wpa_supplicant.conf 

Add the following to the file.

ctrl_interface=/var/run/wpa_supplicant #settings for an AP using preshared keys, PSK network= < ssid=ssid scan_ssid=1 key_mgmt=WPA-PSK #psk==Password psk="Passkey generated by wpa_passphrase" bssid=gh:78:ij:90:kl:12 #the important part >#settings for an open AP. if you use this then don't use the above settings network=

ssid and psk will be those entered when using the wpa_passphrase command.

Delete the commented line containing the password, and ensure the bssid matches that of the access point and the desired band you wish to connect to, ie 2.5 or 5 GHz.

Now start the daemon in the background by running:

sudo wpa_supplicant -B -c /etc/wpa_supplicant/wpa_supplicant.conf -i wlan0 

If this fails, debug problems by running:

sudo wpa_supplicant -c /etc/wpa_supplicant/wpa_supplicant.conf -i wlan0 -d 

Unsure about the dhclient section (next two commands)

After authentication, tell dhclient to release the current lease ie IP address, it has from the server:

Request a dynamic IPv4 address (DHCP):

Finally, reconfigure the interface with:

wpa_cli -i wlan0 reconfigure 

Verify whether WiFi has successfully connected and the correct band is being used by executing:

sudo wpa_cli -i wlan0 status 

If the ip_address is not populated, the device has not connected to the network, check that thr password and ESSID are correct.

Источник

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

Предполагается, что у вас имеется беспроводное сетевое устройство (адаптер), который работает под Linux. Если вы вдруг обнаружили, что ваше устройство не работает, можно предложить, как один из вариантов для новичков, поставить последнюю версию дистрибутива Ubuntu и установить проприетарные драйвера для своей беспроводной карточки. Предложенный случай является наиболее простым и действенным, по сравнению с попытками заставить работать адаптер через драйвер ndiswrapper.

Читайте также:  Show usb device in linux

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

Wicd

Wicd — графическое приложение, написанное на Python. Гибкая и удобная в использовании программа, предлагающая большой функционал. Wicd легко устанавливается и им также легко пользоваться. Достаточно всего нескольких минут для ознакомления с программой. Стоит также заметить, что Wicd, помимо графического интерфейса, имеет и консольный вариант «исполнения», не уступающий по функциональности.

Main window Wicd

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

Давайте теперь посмотрим, как настроить wifi-соединение через командную строку. К слову сказать, такой способ является универсальным, так как используются утилиты, являющиеся стандартными для всех дистрибутивов Linux. Более того, все приложения с графическим интерфейсом (GUI) основаны на работе именно этих утилит. Образно говоря, если мы «снимем» «крышу» GUI у любого графического приложения, то под ней мы увидим скромных и незаметных тружеников консоли: ifconfig, wireless-tools, wpa_supplicant, ping, nmap и многих других.

Для выполнения нашей задачи понадобятся следующие утилиты:

  • — ifconfig : полностью управляет работой любого сетевого адаптера вашего компьютера (будь то проводной или беспроводной интерфейс);
  • — iwlist : выдает список доступных для подключения (находящихся в радиусе досягаемости) беспроводных дочек доступа;
  • — iwconfig : утилита управления и конфигурирования беспроводных сетевых устройств (адаптеров);
  • — dhclient (или его налоги): автоматически получает IP-адрес от dhcp-сервера беспроводной точки;
  • — wpa_supplicant : утилита для настройки шифрованных соединений.
  • — which ifconfig
  • — which iwlist
  • — which iwconfig
  • — which dhclient
  • — which wpa_supplicant

При выполнении каждой из этих команд вы увидите путь, по которому они располагаются в файловой системе. Если вдруг не увидите — вам придется установить отсутствующие. Наиболее простой и рекомендуемый — это менеджером пакетов того дистрибутива Linux, которым вы пользуетесь. Как альтернатива — можно предложить установку из исходников, но такой путь требует достаточного опыта от пользователя.

Рассмотрим пример подключения к wifi-точке с шифрованием WEP

1 . Первое, что мы сделаем — посмотрим, какие сетевые адаптеры имеются у нас на компьютере:

Вывод будет содержать имена и подробное описание всех сетевых интерфейсов, которые удалось обнаружить утилите ifconfig. Если не был обнаружен желаемый, то причина заключается только в одном — нет драйверов для него и не включена поддержка этого интерфейса в ядре Linux.

2 . Запускаем беспроводной сетевой адаптер:

здесь :
— wlan0 — стандартное в большинстве Linux-систем имя wifi-карточки;
— up — опция говорит команде ifconfig запустить для работы («поднять») сетевое устройство.

3 . Теперь нам надо сканировать эфир вокруг себя на наличие доступных hot-spot’ов:

— wlan0 — имя беспроводного адаптера;
— scan — команда iwlist запускается в режиме сканирования.

Результатом работы iwlist будет детальный отчет, из которого на данном этапе нас интересует только одна строчка: ESSID:»Some_Name». Значение параметра ESSID («Some_Name») — это имя беспроводной точки доступа. Теперь мы знаем, к какой конкретно wifi-точке мы будем подключаться.

# iwconfig wlan0 essid Some_Name key Wireless_Key

— wlan0 — сетевой адаптер, на котором настраивается соединение;
— essid — задаем имя точки доступа, к которой подключаемся;
— key — указываем ключ шифрования, использующийся этой точкой доступа для передачи данных.

Читайте также:  Редактор растровой графики linux

Команда iwconfig по умолчанию использует для ключа шифрования данные в шестнадцатеричном виде HEX. Если вы хотите указать ключ в виде простого текста (ASCII), вам необходимо использовать опцию s .

# iwconfig wlan0 essid Some_Name key s:Wireless_Key

5 . Последний шаг — получаем от dhcp-сервера wifi-точки IP-адрес:

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

Здесь мы добавили еще одну команду sleep с параметром 10 секунд. Это рекомендуется делать перед получением IP-адреса для надежности установки соединения.

Сохраняем этот файл под каким-либо именем (например, wireless_up) и делаем его исполняемым командой:

Переносим wireless_up по пути /usr/local/bin, чтобы сделать его глобально видимым всей системой.

Теперь вам достаточно набрать в командной строке:

. и соединение будет установлено.

Рассмотрим более сложный случай — соединение с точкой доступа по WPA-шифрованию

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

1 . Генерируем пароль на основе этого ключа с помощью утилиты wpa_passphrase, которая входит в состав пакета wpa_supplicant. Дело в том, что пароль, который мы будем использовать далее, должен быть в виде шестнадцатиричного числа:

# wpa_passphrase ssid password

Утилита выдаст сгенерированную строку psk, которую мы вставим в конфигурационный файл wpa_supplicant.conf:

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

ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=wheel

для предоставления необходимых прав доступа.

2 . «Поднимаем» интерфейс wlan0:

3. Указываем, к какой точке мы хотим подключиться:

# iwconfig wlan0 essid ssid

4 . Запускаем утилиту wpa_supplicant на установку соединения:

# wpa_supplicant -B -Dwext -i wlan0 -c /etc/wpa_supplicant.conf

здесь :
— B — запускать команду wpa_supplicant в фоновом режиме;
— Dwext — говорим утилите wpa_supplicant использовать драйвер wext для интерфейса wlan0;
— i — задаем настраиваемый сетевой интерфейс (wlan0 в нашем случае);
— с — указываем путь к конфигурационному файлу wpa_supplicant.conf.

5 . Проверяем, что соединение установлено:

На выводе увидим подробную информацию по указанному интерфейсу wlan0.

6 . Получаем локальный IP-адрес:

7 .Упрощаем процесс, создав по пути /etc/network/interfaces запись следующего вида:

Заключение

В зависимости от дистрибутива Linux, существует множество способов настройки wifi-соединений. Именно благодаря такому разнообразию настроить соединение можно практически в любой Linux-системе.
Главное, чтобы сам беспроводной адаптер поддерживался в Linux на уровне драйверов. Но это уже зависит главным образом от разработчиков операционных систем.

Источник

Оцените статью
Adblock
detector