Настройка WIFI-подключения в Linux-консоли и тестирование пропускной способности подключения

    Общий рейтинг статьи: 4 (проголосовало 1 )
    Опубликовано:  [просмотров 696]


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

    Наверное каждому хоть раз, но приходилось настраивать WIFI подключение и вы знаете, что для настройки требуется знать SSID сети, пароль подключения и алгоритм защиты. В Windows и Linux для настройки WIFI созданы графические утилиты которые упрощают настройку сети. Сегодня мы будем учиться настраивать WIFI подключение в консоли Linux и вас уверяю, это не намного сложнее использования графических утилит.

    Установка необходимого программного обеспечения

    Для управления wifi вам необходимо установить пакет wireless-tools при помощи команды:

    # apt-get install wireless-tools

    Диагностика WIFI-оборудования

    Прежде всего проверьте ваши сетевые интерфейсы и определите какой из них поддерживает wifi-расширения. Для этого используется команда iwconfig:

    # iwconfig

    wlx802689733607  IEEE 802.11  ESSID:off/any  
              Mode:Managed  Access Point: Not-Associated   Tx-Power=20 dBm   
              Retry short limit:7   RTS thr=2347 B   Fragment thr:off
              Encryption key:off
              Power Management:off
              
    enp4s0    no wireless extensions.

    lo        no wireless extensions.

    Из консольного вывода команды стало понятно, что наша wifi-карта называется wlx802689733607.

    Поиск доступной сети и подключение

    Активируем сетевой интерфейс (без этого операции сканирования вызовут ошибку):

    # ifconfig wlx802689733607 up

    Сканируем доступные SSID wifi-сетей при помощи команды iwlist:

    # iwlist wlx802689733607 scan

    wlx802689733607  Scan completed :
              Cell 01 - Address: FA:F0:82:4F:0E:D8
                        Channel:3
                        Frequency:2.422 GHz (Channel 3)
                        Quality=10/70  Signal level=-100 dBm  
                        Encryption key:on
                        ESSID:"MYTTK-WIFI"
                        Bit Rates:6 Mb/s; 9 Mb/s; 12 Mb/s; 18 Mb/s; 24 Mb/s
                                  36 Mb/s; 48 Mb/s; 54 Mb/s
                        Mode:Master
                        Extra:tsf=0000010f0d93b966
                        Extra: Last beacon: 973ms ago
                        ...

    Команда выдает максимально подробный список доступных WIFI-сетей и их параметров, но нас в первую очередь интересуют ESSID сети, канал и алгоритм шифрования.

    Подключение к требуемой сети и авторизация.

    Сейчас я приведу последовательность команд которые потребуется ввести для подключения к WIFI-сети вручную и такая относительно сложная последовательность требуется только на этапе диагностики.

    Подготовка к подключению:

    # iwconfig wlx802689733607 mode managed
    # iwconfig wlx802689733607 channel 2
    # iwconfig wlx802689733607 essid SILA-V-LUKE

    Авторизация:

    Авторизация, зависит от типа шифрования wifi-сети и для WEP (устаревший тип зашиты который уже практически не используется, так как довольно легко ломается) вам необходимо просто задать параметр key:

    # iwconfig wlx802689733607 key FEAACAFEDA

    В случае использования WPA и WPA2-PSK вам потребуется установить дополнительный пакет wpasupplicant:

    # apt-get install wpasupplicant

    В конфигурационный файл /etc/wpa_supplicant.conf мы прописываем нашу связку SSID/пароль, но обратите внимание, что параметр psk вы можете задать в открытом виде или сгенерировать при помощи команды wpa_passphrase.

    # wpa_passphrase SILA-V-LUKE
    # reading passphrase from stdin
    network={
            ssid="SILA-V-LUKE"
            #psk="Seliva12345"
            psk=ee9ab4493c2e7722224c26bb054b35b9617642283c48dcaeb7b1a91f82a72943
    }

    Причем,  результат выполнения команды представляет собой содержимое конфигурационный файла /etc/wpa_supplicant.conf и вы можете перенаправить вывод результата работы сразу в файл настроек:

    # wpa_passphrase SILA-V-LUKE > /etc/wpa_supplicant.conf

    Подключаемся к WIFI-сети защищенной при помощи WPA-PSK командой:

    # wpa_supplicant -B -iwlx802689733607 -c/etc/wpa_supplicant.conf -Dwext

    Обратите внимание на параметр -D. Он задает тип используемого драйвера и все варианты вы можете посмотреть выполнив команду:

    # wpa_supplicant -h

    В моем случае wpa_supplicant поддерживает следующие типы драйверов:

    drivers:
      nl80211 = Linux nl80211/cfg80211
      wext = Linux wireless extensions (generic)
      wired = Wired Ethernet driver
      none = no driver (RADIUS server/WPS ER)

    Теперь вы можете попробовать получить IP-адрес если конечно ваша WIFI-сеть поддерживает DHCP:

    # dhclient wlx802689733607

    Диагностика сложных случаев

    Вы можете перевести wpa_suplicant в режим отладки для диагностики сложных случаев, для этого используйте следующий набор параметров командной строки:

    # wpa_supplicant -Bdd -i wlx802689733607 -c /etc/wpa_supplicant.conf

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

    Настройка автоматического подключения при старте сервера

    Представленная выше последовательность действий легко отпугнет начинающих пользователей Linux, но как я и говорил эти операции используются только на этапе диагностики нештатных ситуаций.

    Для автоматической настройки WIFI-сети предусмотрены простые и понятные параметры в файле /etc/network/interfaces и все описанные выше манипуляции сводятся к нескольким строкам в конфигурационном файле:

    auto wlx802689733607
    iface wlx802689733607 inet static
        address 192.168.3.95
        netmask 255.255.255.0
        gateway 192.168.3.1
        wpa-essid SILA-V-LUKE
        wpa-psk Luk2321P

    Согласитесь, что такой метод гораздо проще и особо не отличается от настройки других типов сетевых интерфейсов, за настройку wifi-подключения отвечают параметры:

    • wpa-essid  - SSID сети
    • wpa-psk - Пароль подключения

    Тестирование пропускной способности WIFI-сети

    При обсуждении WIFI-адаптера DWA-131N, который я приобрел в рамках эксперимента с домашним WIFI, меня спрашивали про реальную пропускную способность этого свистка за 390 рублей.

    Для нагрузочного тестирования пропускной способности сети в Linux используется утилита  iperf. Она используется для эмуляции сетевого трафика между источником и приемником и при этом один из компьютеров выступает сервером, а второй клиентом.

    Естественно, что iperf должен быть установлен на всех компьютерах участвующих в тестировании, а устанавливается утилита командой:

    # aptitude install iperf

    Для тестирования запускаем на компьютере подключенном по кабелю к wifi-роутеру серверную часть iperf:

    # iperf -s

    На компьютере на котором собственно установлен wifi-адаптер запускаем клиентскую часть:

    # iperf -c 192.168.3.204

    Через некоторое время мы получим результаты замера:

    ------------------------------------------------------------
    Client connecting to 192.168.3.204, TCP port 5001
    TCP window size: 85.0 KByte (default)
    ------------------------------------------------------------
    [  3] local 192.168.3.95 port 43104 connected with 192.168.3.204 port 5001
    [ ID] Interval       Transfer     Bandwidth
    [  3]  0.0-10.1 sec  41.8 MBytes  34.7 Mbits/sec

    Настройка WIFI-адаптера D-Link DWA-131N в Linux

    Сетевой адаптер DWA-131N не поддерживается штатными Linux-драйверами, а драйвера представленные на официальном сайте не поддерживаются современными ядрами.

    На GitHub имеется набор патчей для сборки официальных драйверов на современных ядрах и проект находится по адресу https://github.com/Mange/rtl8192eu-linux-driver.

    Для сборки модуля ядра выполните следующие команды:

    # git clone https://github.com/Mange/rtl8192eu-linux-driver.git
    # cd rtl8192eu-linux-driver
    # sudo make
    # sudo make install

    Обратите внимание, что собрав ядро вам необходимо будет отключить загрузку по умолчания модуля rtl8xxxu который автоматически назначается устройству при старте системы. Для этого добавьте следующую запись в файл /etc/modprobe.d/blacklist.conf:

    blacklist rtl8xxxu

    После перезагрузки проверьте какой модуль ядра был назначен usb-устройству:

    # lsusb -t
    /:  Bus 10.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/2p, 5000M
    ...
        |__ Port 5: Dev 4, If 0, Class=Hub, Driver=hub/4p, 480M
            |__ Port 1: Dev 6, If 0, Class=Hub, Driver=hub/4p, 480M
            |__ Port 4: Dev 8, If 0, Class=Vendor Specific Class, Driver=rtl8192eu, 480M

     


    Связанные записи в блоге

    Обсуждение статьи

    Ваш комментарий: