3

Я в основном пытаюсь настроить ноутбук Linux в качестве маршрутизатора Wi-Fi, к которому могут подключаться другие ноутбуки и мобильные устройства, а затем я могу манипулировать трафиком для тестирования сетевого трафика (с более низкой пропускной способностью, ограничениями и т.д.)

Мой файл конфигурации hostapd,

interface=wlan0
driver=nl80211
ssid=atest
hw_mode=g
channel=1
macaddr_acl=0
auth_algs=1
ignore_broadcast_ssid=0
wpa=3
wpa_passphrase=1234567890
wpa_key_mgmt=WPA-PSK
wpa_pairwise=TKIP
rsn_pairwise=CCMP

но hostapd всегда терпит неудачу, с опцией -d я вижу это,

random: Trying to read entropy from /dev/random
Configuration file: /etc/hostapd/hostapd.conf
nl80211: interface wlan0 in phy phy0
rfkill: initial event: idx=1 type=2 op=0 soft=1 hard=0
rfkill: initial event: idx=2 type=1 op=0 soft=0 hard=0
nl80211: Using driver-based off-channel TX
nl80211: Register frame command failed (type=208): ret=-114 (Operation already in progress)
nl80211: Register frame match - hexdump(len=2): 04 0a
nl80211: Failed to register Action frame processing - ignore for now
nl80211: Add own interface ifindex 4
nl80211: Set mode ifindex 4 iftype 3 (AP)
nl80211: Failed to set interface 4 to mode 3: -95 (Operation not supported)
nl80211: Interface already in requested mode - ignore error
nl80211: Create interface iftype 6 (MONITOR)
nl80211: New interface mon.wlan0 created: ifindex=16
nl80211: Add own interface ifindex 16
BSS count 1, BSSID mask 00:00:00:00:00:00 (0 bits)
nl80211: Regulatory information - country=00
nl80211: 2402-2472 @ 40 MHz
nl80211: 2457-2482 @ 20 MHz
nl80211: 2474-2494 @ 20 MHz
nl80211: 5170-5250 @ 40 MHz
nl80211: 5735-5835 @ 40 MHz
nl80211: Added 802.11b mode based on 802.11g information
Completing interface initialization
Mode: IEEE 802.11g  Channel: 1  Frequency: 2412 MHz
nl80211: Set freq 2412 (ht_enabled=0 sec_channel_offset=0)
nl80211: Failed to set channel (freq=2412): -16 (Device or resource busy)
Could not set channel for kernel driver
wlan0: Unable to setup interface.
Flushing old station entries
Could not connect to kernel driver.
Deauthenticate all stations
nl80211: Remove interface ifindex=16
netlink: Operstate: linkmode=0, operstate=6
nl80211: Set mode ifindex 4 iftype 2 (STATION)

Любая помощь в получении этого будет очень признательна.

4 ответа4

4

https://stackoverflow.com/a/22845597 )

Похоже, что проблема в том, что hostapd 2.1 теперь выходит из-за ошибки, которую он ранее игнорировал. Это воспроизводимо на настольных версиях Ubuntu, так как ресурс (WLAN) занят.

Если кто-то отключает программы, обращающиеся к ресурсу, у hostapd есть шанс взять его и работать.

В Ubuntu desktop 14.04 beta решение состоит в том, чтобы отключить программы, использующие данный wlan.

Это сработало для меня:

sudo nmcli nm wifi off
sudo rfkill unblock wlan

Затем hostapd может нормально запускаться из командной строки. Конечно, если вы хотите, чтобы hostapd запускался при загрузке, вы должны убедиться, что сетевой менеджер не захватывает ресурс заранее.

2

У меня была такая же проблема, при запуске pidora 2014 (ремикс Fedora 20 для Raspberry Pi). Ответ в основном такой же, как и у двух других, приведенных здесь: wpa_supplicant был запущен, что не позволило hostapd использовать устройство.

Но в случае, если кто-то найдет это полезным, вот процедура, которую я использовал для ее решения.

В моем случае, wpa_supplicant запускался NetworkManager, который является демоном, используемым в большинстве современных дистрибутивов Linux для управления сетью. Хотя он хорошо работает в среде рабочего стола, он, похоже, не поддерживает настройку точки доступа и постоянно запускает wpa_supplicant, даже когда я пытался остановить его вручную.

Решением было отключить службу NetworkManager и включить "устаревшую" сетевую службу, которая использует простые сценарии инициализации для управления сетевыми интерфейсами:

sudo systemctl disable NetworkManager.service 
sudo systemctl enable network.service

После этого hostapd запустился и работал правильно.

1

Hostapd не может установить канал на сетевой карте через драйвер nl80211:

Mode: IEEE 802.11g  Channel: 1  Frequency: 2412 MHz
nl80211: Set freq 2412 (ht_enabled=0 sec_channel_offset=0)
nl80211: Failed to set channel (freq=2412): -16 (Device or resource busy)

Код ошибки указывает на то, что устройство использует что-то другое, поэтому изменение канала запрещено - возможно, wpa_supplicant работает в фоновом режиме?

-1

Используйте systemctl --force stop wpa_supplicant.service , затем запустите hostapd v2.1 как обычно.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .