Wi-Fi в командной строке

Dec 17, 2010 By Joey Bernard
in command line HOW-TOs Wi-Fi

Всё больше людей используют беспроводную сеть как основную. В графических средах Linux имеются действительно качественные инструменты для управления беспроводной сетью. Как GNOME так и KDE содержат утилиты управления сетевыми соединениями, кроме того бывает весьма полезной утилита wicd. Но что же вам делать, если вы вообще не запускаете X11, и в то же время хотите разобраться со своими беспроводными устройствами? Здесь я не буду описывать, как установить в компьютер и проинициализировать беспроводную сетевую карту (гляньте на проекты, подобные madwifi или ndiswrapper). Я предполагаю, что ваша карточка уже установлена и имеет необходимые драйвера, и что она определяется как wlan0. Большинство утилит, упомянутых ниже, нуждаются в прямых обращениях к беспроводной карте (или как минимум, к драйверу карты), поэтому они должны быть запущены с правами суперпользователя. Просто помните о sudo.

Первый шаг - определить, какие имеются беспроводные сети вокруг. Утилита iwlist предоставляет возможности сканирования эфира в поисках информации всех видов о сетях. Для поиска доступных сетей выполните следующее:


sudo iwlist wlan0 scan

You'll see output resembling:


Cell 01 - Address: 00:11:22:33:44:55
          ESSID:"network-essid"
          Mode:Master
          Channel:11
          Frequency:2.462 GHz (Channel 11)
          Quality=100/100  Signal level:-47dBm  Noise level=-100dBm
          Encryption key:off
          .
          .
          .

Детали (адрес и essid) здесь скрыты для предотвращения злоупотреблений. Также точки представляют расширенный вывод, содержимое которого может быть, а может и не быть доступным, что зависит от конструкции оборудования. Будет получен отдельный вывод для каждой достижимой точки доступа во всём диапазоне охвата карты. Для каждой точки можно получить mac-адрес, essid и канал, на котором она работает. Также доступна информация о режиме (master или ad hoc). Обычно самое интересное - это essid и тип шифрования.

С момента получения информации о доступных сетях становится возможной операция конфигурирования беспроводной карты с помощью утилиты iwconfig. Первым делом установим essid желаемой сети:


sudo iwconfig wlan0 essid network-essid

В зависимости от типа карты и её драйвера может иметься возможность установить essid в специальное значение "any". В этом случае карточка подключится к первой точке доступа из всех возможных. Это называется "беспорядочный режим".

Также может понадобится установить режим работы карты. Режим зависит от топологии сети. Вы можете иметь центральную точку доступа, к которой подключаются все остальные устройства, или вы можете иметь беспроводную сеть ad hoc, в которой все устройства имеют возможность связи "точка-точка". Вы также можете заставить свой компьютер функционировать в режиме точки доступа. Если так, то установите с помощью iwconfig режим master. Или вы можете захотеть только прослушивать, что происходит вокруг. Это работает в режиме monitor. Частоту или канал можно установить так:


sudo iwconfig wlan0 freq 2.422G

Или так:


sudo iwconfig wlan0 channel 3

Остальные параметры могут устанавливаться, если вы имеете для этого действительно значительные основания. Одна из опций, например, задаёт чувствительность приёмника, однако при этом восприимчивость к шуму также меняется. Также можно менять количество попыток подключения. Задайте максимальное количество попыток с помощью команды:


sudo iwconfig wlan0 retry 16

Или же можно задать максимальное время, отведённое на попытки (в данном примере 300 миллисекунд):


sudo iwconfig wlan0 retry lifetime 300m

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


sudo iwconfig wlan0 frag 512

Некоторые карты не умеют применять этот параметр немедленно. В этом случае нужно сбросить параметры и применить новые:


sudo iwconfig wlan0 commit

Другие две полезные команды - iwspy и iwpriv. Если ваша карта их поддерживает, значит у вас есть возможность собирать статистику:


sudo iwspy wlan0

Вторая команда даёт доступ к опциональным параметрам, в то время как iwconfig управляет лишь наиболее общими. Если запустить команду без ключей, получим список всех дополнительных параметров конкретной карты. Если дополнительные параметры не поддерживаются, увидим вывод вроде следующего:


sudo iwpriv wlan0

wlan0      no private ioctls

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


sudo iwpriv wlan0 private-command [private parameters]

Теперь, когда ваша карта настроена и подключена к сети, нужно сделать необходимые сетевые настройки. Если в сети есть DHCP, можно просто запустить DHCP-клиент. Если все настройки нужно произвести вручную, тогда используется ifconfig.

Назад