Библиотека сайта rus-linux.net
Wi-Fi из командной строки
Оригинал: "Wi-Fi on the Command Line"Автор: Joey Bernard
Дата публикации: December 17, 2010
Перевод: Н.Ромоданов
Дата перевода: декабрь 2010 г.
Сейчас все больше людей используют беспроводные сети в качестве своего основного средства доступа в сеть. В X11 есть замечательные программы, которые предоставляют пользователям графический интерфейс для доступа к беспроводным картам. Как в GNOME, так и в KDE, есть утилиты управления сетями, а независимая утилита wicd, работающая в среде рабочего стола, предоставляет достаточно много функциональных возможностей. Но что, если вы не используете X11 и хотите управлять своей беспроводной картой? В настоящей статье не рассказываться, как установить и заставить работать беспроводную карту (для этого, обратите внимание на проекты madwifi или ndiswrapper). Предполагается, что карта правильно установлена и настроена, и ей назначено имя wlan0. Большинство из упомянутых ниже утилит могут работать напрямую с вашей беспроводной картой (или, по крайней мере, с драйвером карты), поэтому их нужно запускать с привилегиями root (просто не забудьте использовать sudo).
Первое, что нужно, это увидеть, какие беспроводные сети есть поблизости. Утилита, называющаяся iwlist, может предоставить всю информацию о всех имеющихся беспроводных сетях. Чтобы просканировать имеющиеся в наличии сети, выполните следующее:
sudo iwlist wlan0 scan
Результат может быть, например, следующим:
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) были изменены с целью обеспечить конфиденциальность. Кроме того, ... в зависимости от имеющихся у вас аппаратных средств, в результате может быть предоставлена дополнительная информация. Вы получите отдельную запись cell для каждой точки доступа в диапазоне, в котором может работать ваша карта. Для каждой точки доступа может указываться аппаратный адрес (адрес MAC - прим.пер.), идентификатор essid и канал, на котором работает точка доступа. Кроме того, вы можете узнать, в каком режиме работает точка доступа (например, master или ad hoc). Как правило, вас больше будет интересовать идентификатор essid и то, используется ли шифрование.
После того как вы узнаете, что вас непосредственно окружает, с помощью утилиты iwconfig настройте параметры вашей беспроводной карты так, чтобы сконфигурировать ее для работы с одной из точек доступа. Во-первых, установите значение идентификатора essid, который определяет, к какой точке доступа вы хотите подключиться:
sudo iwconfig wlan0 essid network-essid
В зависимости от того, какая у вас карта и ее драйвер, у вас может быть возможность указывать для essid специальное значение "any" (любая точка). В этом случае ваша карта выберет первую доступную точку доступа. Этот режим называется режимом случайного доступа.
Вам также, возможно, потребуется установить режим использования вашей карты. Он зависит от топологии сети. У вас, возможно, есть центральная точка доступа, к которой подключаются все другие устройства, либо у вас может быть беспроводная сеть вида ad hoc, где все устройства взаимодействуют друг с другом на равных (одноранговая беспроводная сеть — прим.пер.). В качестве точки доступа у вас может использоваться компьютер. Если это так, то вы можете с помощью утилиты iwconfig задать режим master. Либо можно просто "понюхать", что происходит вокруг вас. Это можно сделать, если установить режим мониторинга и пассивно следить за всеми пакетами на той частоте, которая установлена для вашей карты. Вы можете задать частоту, или канал, выполнив следующую команду:
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 [конкретные параметры]
Теперь, когда ваша карта настроена и подключена к беспроводной сети, вам нужно сконфигурировать сетевые настройки с тем, чтобы можно было пользоваться сетью. Если в сети есть служба DHCP, вы можете просто запустить dhclient
и запросить адрес IP и другие сетевые настройки с сервера DHCP. Если вы хотите установить эти параметры вручную, воспользуйтесь командой Ifconfig
(дополнительную информацию смотрите на справочной странице man).