- Как настроить Wifi-соединение на любом Linux-десктопе
- Вступление
- Командная строка
- Рассмотрим пример подключения к wifi-точке с шифрованием WEP
- Рассмотрим более сложный случай — соединение с точкой доступа по WPA-шифрованию
- Заключение
- Software access point (Русский)
- Contents
- Требования
- Поддержка режима AP устройством Wi-Fi
- Беспроводной клиент и программная точка доступа на одном Wi-Fi устройстве
- Конфигурация
- Канальный уровень Wi-Fi
- Конфигурация сети
- Настройка моста
- Настройка NAT
- Инструменты
- linux-wifi-hotspot
- RADIUS
- Решение проблем
- WLAN очень медленно работает
- Вмешательство NetworkManager
- Не удаётся запустить режим AP в диапазоне 5Ghz
Как настроить Wifi-соединение на любом Linux-десктопе
Если вы владелец какого-либо мобильного устройства под управлением OS Linux, то вам в первую очередь придется задуматься над выполнением задачи номер один — настройка соединения с беспроводной точкой доступа Wifi. По умолчанию, стандартные инструменты для Linux-десктопов надежны и удобны в использовании. Например, Wifi Radar , Network Manager , Wicd и многие другие программы этого класса. Конечно, подразумевается, что вы используете окружения типа Gnome или KDE, обладающих очень богатым функционалом и выбором.
Но как быть, если у вас нечто другое и более редкое — E17, Fluxbox, ION или вообще «голая» консоль? В этом случае вам стоит применить классический способ настройки — командная строка.
Давайте рассмотрим два случая настройки соединения с беспроводной точкой доступа:
— графическое приложение Wicd ( для примера );
— консольные утилиты.
Вступление
Предполагается, что у вас имеется беспроводное сетевое устройство (адаптер), который работает под Linux. Если вы вдруг обнаружили, что ваше устройство не работает, можно предложить, как один из вариантов для новичков, поставить последнюю версию дистрибутива Ubuntu и установить проприетарные драйвера для своей беспроводной карточки. Предложенный случай является наиболее простым и действенным, по сравнению с попытками заставить работать адаптер через драйвер ndiswrapper.
Также предполагается, что у вас имеются в наличии два параметра для подключения к беспроводной точке: SSID и идентификационный ключ. Без них (особенно — без второго, так как первый еще можно легко узнать) вы не сможете установить соединение.
Wicd — графическое приложение, написанное на Python. Гибкая и удобная в использовании программа, предлагающая большой функционал. Wicd легко устанавливается и им также легко пользоваться. Достаточно всего нескольких минут для ознакомления с программой. Стоит также заметить, что Wicd, помимо графического интерфейса, имеет и консольный вариант «исполнения», не уступающий по функциональности.
Командная строка
Давайте теперь посмотрим, как настроить wifi-соединение через командную строку. К слову сказать, такой способ является универсальным, так как используются утилиты, являющиеся стандартными для всех дистрибутивов Linux. Более того, все приложения с графическим интерфейсом (GUI) основаны на работе именно этих утилит. Образно говоря, если мы «снимем» «крышу» GUI у любого графического приложения, то под ней мы увидим скромных и незаметных тружеников консоли: ifconfig, wireless-tools, wpa_supplicant, ping, nmap и многих других.
Для выполнения нашей задачи понадобятся следующие утилиты:
- — ifconfig : полностью управляет работой любого сетевого адаптера вашего компьютера (будь то проводной или беспроводной интерфейс);
- — iwlist : выдает список доступных для подключения (находящихся в радиусе досягаемости) беспроводных дочек доступа;
- — iwconfig : утилита управления и конфигурирования беспроводных сетевых устройств (адаптеров);
- — dhclient (или его налоги): автоматически получает IP-адрес от dhcp-сервера беспроводной точки;
- — wpa_supplicant : утилита для настройки шифрованных соединений.
Перед началом настройки wifi-соединения логичным было бы проверить наличие всех этих утилит в системе (хотя, почти все они входят в стандартный набор Linux-дистрибутивов). Давайте, все же, убедимся в том, что они есть у нас, выполнив совсем несложные команды (см. man which):
- — 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-точке мы будем подключаться.
4 . Выполняем подключение:
— wlan0 — сетевой адаптер, на котором настраивается соединение;
— essid — задаем имя точки доступа, к которой подключаемся;
— key — указываем ключ шифрования, использующийся этой точкой доступа для передачи данных.
Команда iwconfig по умолчанию использует для ключа шифрования данные в шестнадцатеричном виде HEX. Если вы хотите указать ключ в виде простого текста (ASCII), вам необходимо использовать опцию s .
5 . Последний шаг — получаем от dhcp-сервера wifi-точки IP-адрес:
Естественно, вышеуказанные шаги выполнять каждый раз утомительно. Можно упростить процесс установки соединения, написав скрипт подключения, в котором мы объединим все эти команды в одно целое:
Здесь мы добавили еще одну команду sleep с параметром 10 секунд. Это рекомендуется делать перед получением IP-адреса для надежности установки соединения.
Сохраняем этот файл под каким-либо именем (например, wireless_up) и делаем его исполняемым командой:
Переносим wireless_up по пути /usr/local/bin, чтобы сделать его глобально видимым всей системой.
Теперь вам достаточно набрать в командной строке:
. и соединение будет установлено.
Рассмотрим более сложный случай — соединение с точкой доступа по WPA-шифрованию
Соединение с таким шифрованием поддерживает только утилита wpa_supplicant, поэтому она нам понадобиться. Также, опять таки, предполагаем, что мы знаем ключ (пароль) шифрования этой точки доступа.
1 . Генерируем пароль на основе этого ключа с помощью утилиты wpa_passphrase, которая входит в состав пакета wpa_supplicant. Дело в том, что пароль, который мы будем использовать далее, должен быть в виде шестнадцатиричного числа:
Утилита выдаст сгенерированную строку psk, которую мы вставим в конфигурационный файл wpa_supplicant.conf:
Это очень упрощенный файл конфигурации, но он будет работать. Возможно, вам потребуется добавить в шапку этого файла еще одну строку:
для предоставления необходимых прав доступа.
2 . «Поднимаем» интерфейс wlan0:
3. Указываем, к какой точке мы хотим подключиться:
4 . Запускаем утилиту wpa_supplicant на установку соединения:
здесь :
— 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 на уровне драйверов. Но это уже зависит главным образом от разработчиков операционных систем.
Источник
Software access point (Русский)
Программная точка доступа используется, если вы хотите чтобы Ваш компьютер выступал в качестве точки доступа для беспроводной локальной сети. Это решит проблему выбора отдельного беспроводного маршрутизатора(WI-FI).
Contents
Требования
Поддержка режима AP устройством Wi-Fi
Вам понадобится nl80211 совместимое беспроводное устройство, поддерживающее рабочий режим AP. Это можно проверить, выполнив команду iw list , которая должна вывести AP в секции Supported interface modes :
Беспроводной клиент и программная точка доступа на одном Wi-Fi устройстве
Создание программной AP не зависит от конкретного типа устройства (Ethernet, Wi-Fi, . ). Многие беспроводные устройства даже могут быть одновременно использованы как точки доступа и как беспроводные «клиенты». Используя эту возможность вы можете создавать программые AP действующие как «беспроводной ретранслятор» для существующей сети, используя единственное Wi-Fi устройство. Эта возможность указана в следующей секции вывода iw list :
Ограничение #channels означает, что ваша программная AP должна работать на том же канале, что и ваше Wi-Fi клиентскоее соединение; смотрите channel свойство в hostapd.conf ниже.
Если вы собираетесь использовать этот способ, возможно потому что Ethernet-соединение недоступно, вам необходимо создать два отдельных виртуальных интерфейса. Виртуальные интерфейсы для физического устройства wlan0 могут быть созданы так: сначала, «виртуальные интерфейсы» создаются непосредственно для самого сетевого соединения ( wlan0_sta ) и для программной AP/hostapd «беспроводного ретранслятора»:
Случайные MAC адреса могут быть сгенерированы при использовании macchanger.
Конфигурация
Настройка точки доступа включает в себя два основных пункта:
- Настройка канального уровня Wi-Fi, так что беспроводные клиенты могут использовать вашу «программную точку доступа» и принимать/отправлять IP пакеты от/до вашей машины; это то, что пакет hostapd должен сделать за вас.
- Настройка сетевой конфигурации на вашем компьютере, так что ваша машина будет правильно передавать IP пакеты от/до вашего собственного интернет соединения от/до беспроводных клиентов.
Канальный уровень Wi-Fi
Точку доступа Wi-Fi можно поднять с помощью пакета hostapd , который также поддерживает WPA2.
Скорректируйте настройки hostapd конфигурационного файла, если необходимо. В первую очередь измените ssid и wpa_passphrase . Больше информации на hostapd Linux documentation page.
Для автозапуска hostapd в качестве службы запустите hostapd.service .
Если вы запускаете hostapd в момент загрузки системы, убедитесь в том, что беспроводной сетевой интерфейс поднялся первым, иначе это не удастся. Для этого отредактируйте конфигурацию юнита, указав привязку и время запуска после поднятия вашего сетевого интерфейса:
Также убедитесь, что интерфейс не управляется другими менеджерами сети. Если вы используете NetworkManager, смотрите NetworkManager#Ignore specific devices.
Конфигурация сети
Есть два основных способа реализации:
- bridge: создав сеть типа мост на своём компьютере (беспроводные клиенты будут подключаться для доступа к тому же сетевому интерфейсу и к той же подсети, которые используются на вашем компьютере)
- NAT: используя IP перенаправление/маскарадинг и DHCP сервис (беспроводные клиенты будут использовать выделенные подсети, данные от/до этих подсетей будут обработаны NAT — подобно тому как это используется в обычном Wi-Fi роутере, который подключён по DSL или проводному модему)
Обращаться с мостом проще, но он требует, чтобы любой сервис который нужен вашим беспроводным клиентам (вроде DHCP) был доступен на внешнем интерфейсе вашего компьютера. Это означает, что он не будет работать если у вас dial-up соединение (например, через PPPoE или 3G modem), или если вы используете проводной модем, который поддерживает всего один IP адрес до вас посредством DHCP.
NAT более универсален, так как он явно разделяет Wi-Fi клиентов вашего компьютера и полностью проницаем наружу. Он будет работать с любым видом сетевого соединения, и (если необходимо) вы можете ввести политики использования трафика используя обычные методы iptables.
Конечно, возможно скомбинировать оба способа. Для этого изучение обеих статей будет необходимым. Например, имея мост, связанный с ethernet-устройством и беспроводным устройством, имеющим статический ip и раздающий адреса при помощи DHCP, можно создать NAT настроенный на клонирование трафика на дополнительное сетевое устройство — это может быть ppp или ethernet.
Настройка моста
Вам необходимо создать сетевой «мост» и присоединить к нему свой интерфейс (например, eth0 ). Вам не следует добавлять к мосту беспроводной интерфейс (например, wlan0 ); hostapd добавит его самостоятельно.
Настройка NAT
Смотрите Раздача интернета для получения дополнительной информации.
Учтите, что в той статье используется устройство net0 для подключения к локальной сети. В нашем случае в качестве его будет выступать беспроводное устройство (напр. wlan0 ).
Инструменты
linux-wifi-hotspot
Пакет linux-wifi-hotspot AUR включает в себя скрипт, который может создать точку доступа для раздачи интернета посредством моста/NAT. Он сочитает в себе hostapd, dnsmasq и iptables для создания точки доступа. Поддерживает интерфейс командной строки и графический интерфейс. Базовый синтаксис для создания виртуальной сети посредством NAT следующий:
Другой подход с использованием шаблона конфигурации, который предложен в /etc/create_ap.conf , может быть адаптирован под ваши нужды и запущен со скриптом:
Чтобы использовать графический интерфейс, запустите в терминале:
Включите/запустите службу create_ap.service для запуска скрипта в момент загрузки системы с конфигурацией, описанной в /etc/create_ap.conf .
RADIUS
Смотрите [1] инструкции для запуска сервера FreeRADIUS для WPA2 Enterprise.
This article or section needs expansion.
Решение проблем
WLAN очень медленно работает
Частые причины более низкой, чем ожидалось, пропускной способности включают:
- Неправильный режим работы с hw_mode ниже поддерживаемого может искусственно ограничивать маршрутизатор. Убедитесь, что выбран современный режим работы.
- Переполненный или нагруженный другими шумами канал channel может сильно ухудшить производительность, особенно в густонаселенных областях. Попробуйте изменить канал или даже переключать частоты.
- Это может быть вызвано наличием слабой энтропией. Попробуйте установить haveged.
Вмешательство NetworkManager
hostapd может не работать, если устройство управляется NetworkManager. Вы можете замаскировать устройство используя MAC:
Либо имя интерфейса:
Не удаётся запустить режим AP в диапазоне 5Ghz
По-видимому, со специальным кодом страны 00 (глобальный), все доступные частоты в диапазоне 5Ghz будут с установленным флагом no-ir (no-initiating-radiation), тем самым предотвратив hostapd использовать их. Вам понадобится установить crda и выставить код вашей страны, чтобы hostapd стали доступны разрешённые в вашей стране частоты.
Источник