- Software access point (Русский)
- Требования
- Поддержка режима AP устройством Wi-Fi
- Беспроводной клиент и программная точка доступа на одном Wi-Fi устройстве
- Конфигурация
- Канальный уровень Wi-Fi
- Конфигурация сети
- Настройка моста
- Настройка NAT
- Инструменты
- linux-wifi-hotspot
- RADIUS
- Решение проблем
- WLAN очень медленно работает
- Вмешательство NetworkManager
- Не удаётся запустить режим AP в диапазоне 5Ghz
- Смотрите также
Software access point (Русский)
Состояние перевода: На этой странице представлен перевод статьи Software access point. Дата последней синхронизации: 12 сентября 2021. Вы можете помочь синхронизировать перевод, если в английской версии произошли изменения.
Программная точка доступа используется, если вы хотите чтобы Ваш компьютер выступал в качестве точки доступа для беспроводной локальной сети. Это решит проблему выбора отдельного беспроводного маршрутизатора(WI-FI).
Требования
Поддержка режима AP устройством Wi-Fi
Вам понадобится nl80211 совместимое беспроводное устройство, поддерживающее рабочий режим AP. Это можно проверить, выполнив команду iw list , которая должна вывести AP в секции Supported interface modes :
Wiphy phy1 . Supported interface modes: * IBSS * managed * AP * AP/VLAN * WDS * monitor * mesh point .
Беспроводной клиент и программная точка доступа на одном Wi-Fi устройстве
Создание программной AP не зависит от конкретного типа устройства (Ethernet, Wi-Fi, . ). Многие беспроводные устройства даже могут быть одновременно использованы как точки доступа и как беспроводные «клиенты». Используя эту возможность вы можете создавать программые AP действующие как «беспроводной ретранслятор» для существующей сети, используя единственное Wi-Fi устройство. Эта возможность указана в следующей секции вывода iw list :
Wiphy phy1 . valid interface combinations: * # < managed >Если вы собираетесь использовать этот способ, возможно потому что Ethernet-соединение недоступно, вам необходимо создать два отдельных виртуальных интерфейса. Виртуальные интерфейсы для физического устройства wlan0 могут быть созданы так: сначала, "виртуальные интерфейсы" создаются непосредственно для самого сетевого соединения ( wlan0_sta ) и для программной AP/hostapd "беспроводного ретранслятора":
# iw dev wlan0 interface add wlan0_sta type managed addr 12:34:56:78:ab:cd # iw dev wlan0 interface add wlan0_ap type managed addr 12:34:56:78:ab:ceСлучайные MAC адреса могут быть сгенерированы при использовании macchanger.
Конфигурация
Настройка точки доступа включает в себя два основных пункта:
- Настройка канального уровня Wi-Fi, так что беспроводные клиенты могут использовать вашу "программную точку доступа" и принимать/отправлять IP пакеты от/до вашей машины; это то, что пакет hostapd должен сделать за вас.
- Настройка сетевой конфигурации на вашем компьютере, так что ваша машина будет правильно передавать IP пакеты от/до вашего собственного интернет соединения от/до беспроводных клиентов.
Канальный уровень Wi-Fi
Точку доступа Wi-Fi можно поднять с помощью пакета hostapd , который также поддерживает WPA2.
Скорректируйте настройки hostapd конфигурационного файла, если необходимо. В первую очередь измените ssid и wpa_passphrase . Больше информации на hostapd Linux documentation page.
interface=wlan0_ap bridge=br0 # SSID to be used in IEEE 802.11 management frames ssid=YourWiFiName # Driver interface type (hostap/wired/none/nl80211/bsd) driver=nl80211 # Country code (ISO/IEC 3166-1) country_code=US # Operation mode (a = IEEE 802.11a (5 GHz), b = IEEE 802.11b (2.4 GHz) hw_mode=g # Channel number channel=7 # Maximum number of stations allowed max_num_sta=5 # Bit field: bit0 = WPA, bit1 = WPA2 wpa=2 # Bit field: 1=wpa, 2=wep, 3=both auth_algs=1 # Set of accepted cipher suites; disabling insecure TKIP wpa_pairwise=CCMP # Set of accepted key management algorithms wpa_key_mgmt=WPA-PSK wpa_passphrase=Somepassphrase # hostapd event logger configuration logger_stdout=-1 logger_stdout_level=2 # Uncomment and modify the following section if your device supports 802.11n ## Enable 802.11n support #ieee80211n=1 ## QoS support #wmm_enabled=1 ## Use "iw list" to show device capabilities and modify ht_capab accordingly #ht_capab=[HT40+][SHORT-GI-40][TX-STBC][RX-STBC1][DSSS_CCK-40]
Совет: Вы можете установить SSID с символами UTF-8, международные символы будут отображаться правильно. Это возможно при включении опции utf8_ssid=1 . Некоторые клиенты могут распознать кодировку некорректно (например wpa_supplicant или Windows 7).
Для автозапуска hostapd в качестве службы запустите hostapd.service .
Если вы запускаете hostapd в момент загрузки системы, убедитесь в том, что беспроводной сетевой интерфейс поднялся первым, иначе это не удастся. Для этого отредактируйте конфигурацию юнита, указав привязку и время запуска после поднятия вашего сетевого интерфейса:
/etc/systemd/system/hostapd.service.d/override.conf
[Unit] BindsTo=sys-subsystem-net-devices-wlan0.device After=sys-subsystem-net-devices-wlan0.device
Также убедитесь, что интерфейс не управляется другими менеджерами сети. Если вы используете NetworkManager, смотрите NetworkManager#Ignore specific devices.
Важно: Беспроводные каналы разрешённые для точки доступа отличаются в зависимости от вашего расположения. Если прошивка вашего беспроводного устройства позволяет, вы можете настроить свой регион чтобы использовать разрешённые каналы. Не выбирайте другой регион, так как это может стать запрещённым распространением сетевого трафика, затрагивающим функциональность вашего устройства и других в зоне покрытия! Для установки региона смотрите Настройка беспроводной сети#Соответствие регламентам.
Примечание: Если ваша сетевая карта имеет чипсет RTL8192CU, установите hostapd-rtl871xdrv AUR и в hostapd.conf замените driver=nl80211 на driver=rtl871xdrv .
Конфигурация сети
Есть два основных способа реализации:
- 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 следующий:
# create_ap wlan0 eth0 MyAccessPoint MyPassPhrase
Другой подход с использованием шаблона конфигурации, который предложен в /etc/create_ap.conf , может быть адаптирован под ваши нужды и запущен со скриптом:
# create_ap --config /etc/create_ap.conf
Чтобы использовать графический интерфейс, запустите в терминале:
Включите/запустите службу create_ap.service для запуска скрипта в момент загрузки системы с конфигурацией, описанной в /etc/create_ap.conf .
Примечание: В режиме моста create_ap может конфликтовать во время загрузки системы с текущей настройкой сети. В таком случае, для лучшего связывания с мостом, не конфигурируйте IP адрес езернет интерфейса ни статический, ни посредством DHCP.
RADIUS
Смотрите [1] инструкции для запуска сервера FreeRADIUS для WPA2 Enterprise.
This article or section needs expansion.
Reason: Предположительно, проще создать точку доступа можно через Network Manager. (Discuss in Talk:Software access point (Русский))
Решение проблем
WLAN очень медленно работает
Частые причины более низкой, чем ожидалось, пропускной способности включают:
- Неправильный режим работы с hw_mode ниже поддерживаемого может искусственно ограничивать маршрутизатор. Убедитесь, что выбран современный режим работы.
- Переполненный или нагруженный другими шумами канал channel может сильно ухудшить производительность, особенно в густонаселенных областях. Попробуйте изменить канал или даже переключать частоты.
- Это может быть вызвано наличием слабой энтропией. Попробуйте установить haveged.
Вмешательство NetworkManager
hostapd может не работать, если устройство управляется NetworkManager. Вы можете замаскировать устройство используя MAC:
/etc/NetworkManager/conf.d/unmanaged.conf
Локальная wifi сеть linux unmanaged-devices=mac:hwaddr
/etc/NetworkManager/conf.d/unmanaged.conf
Локальная wifi сеть linux unmanaged-devices=interface-name:ifname
Не удаётся запустить режим AP в диапазоне 5Ghz
По-видимому, со специальным кодом страны 00 (глобальный), все доступные частоты в диапазоне 5Ghz будут с установленным флагом no-ir (no-initiating-radiation), тем самым предотвратив hostapd использовать их. Вам понадобится установить wireless-regdb и выставить код вашей страны, чтобы hostapd стали доступны разрешённые в вашей стране частоты.