Mam problem hostapd
z uruchomieniem usługi. Nie udaje się, gdy próbuję go uruchomić:
$ sudo service hostapd start
[FAIL] Starting advanced IEEE 802.11 management: hostapd failed!
Z tego, co rozumiem, używa konfiguracji w /etc/default/hostapd
:
$ cat /etc/default/hostapd
# Defaults for hostapd initscript
#
# See /usr/share/doc/hostapd/README.Debian for information about alternative
# methods of managing hostapd.
#
# Uncomment and set DAEMON_CONF to the absolute path of a hostapd configuration
# file and hostapd will be started during system boot. An example configuration
# file can be found at /usr/share/doc/hostapd/examples/hostapd.conf.gz
#
#DAEMON_CONF=""
DAEMON_CONF=”/etc/hostapd/hostapd.conf”
# Additional daemon options to be appended to hostapd command:-
# -d show more debug messages (-dd for even more)
# -K include key data in debug messages
# -t include timestamps in some debug messages
#
# Note that -B (daemon mode) and -P (pidfile) options are automatically
# configured by the init.d script and must not be added to DAEMON_OPTS.
#
DAEMON_OPTS="-d"
Mój plik konfiguracyjny demona jest następujący:
$ cat /etc/hostapd/hostapd.conf
interface=wlan0
bridge=br0
driver=rtl871xdrv
country_code=USA
ctrl_interface=wlan0
ctrl_interface_group=0
ssid=KITT
hw_mode=g
channel=1
wpa=3
wpa_passphrase=georgeisyourfriend
wpa_key_mgmt=WPA-PSK
wpa_pairwise=TKIP
rsn_pairwise=CCMP
beacon_int=100
auth_algs=3
macaddr_acl=0
wmm_enabled=1
eap_reauth_period=360000000
Pomimo, że usługa nie uruchamia się, jestem w stanie uruchomić ją samodzielnie bez błędu:
$ sudo hostapd -d /etc/hostapd/hostapd.conf
random: Trying to read entropy from /dev/random
Configuration file: /etc/hostapd/hostapd.conf
ctrl_interface_group=0
drv->ifindex=3
Configure bridge br0 for EAPOL traffic.
BSS count 1, BSSID mask 00:00:00:00:00:00 (0 bits)
Completing interface initialization
Mode: IEEE 802.11g Channel: 1 Frequency: 2412 MHz
RATE[0] rate=10 flags=0x1
RATE[1] rate=20 flags=0x1
RATE[2] rate=55 flags=0x1
RATE[3] rate=110 flags=0x1
RATE[4] rate=60 flags=0x0
RATE[5] rate=90 flags=0x0
RATE[6] rate=120 flags=0x0
RATE[7] rate=180 flags=0x0
RATE[8] rate=240 flags=0x0
RATE[9] rate=360 flags=0x0
RATE[10] rate=480 flags=0x0
RATE[11] rate=540 flags=0x0
Flushing old station entries
Deauthenticate all stations
+rtl871x_sta_deauth_ops, ff:ff:ff:ff:ff:ff is deauth, reason=2
rtl871x_set_key_ops
rtl871x_set_key_ops
rtl871x_set_key_ops
rtl871x_set_key_ops
Using interface wlan0 with hwaddr 80:1f:02:d3:cb:b8 and ssid 'KITT'
Deriving WPA PSK based on passphrase
SSID - hexdump_ascii(len=4):
4b 49 54 54 KITT
PSK (ASCII passphrase) - hexdump_ascii(len=18): [REMOVED]
PSK (from passphrase) - hexdump(len=32): [REMOVED]
rtl871x_set_wps_assoc_resp_ie
rtl871x_set_wps_beacon_ie
rtl871x_set_wps_probe_resp_ie
urandom: Got 20/20 bytes from /dev/urandom
GMK - hexdump(len=32): [REMOVED]
Key Counter - hexdump(len=32): [REMOVED]
WPA: group state machine entering state GTK_INIT (VLAN-ID 0)
GTK - hexdump(len=32): [REMOVED]
WPA: group state machine entering state SETKEYSDONE (VLAN-ID 0)
rtl871x_set_key_ops
rtl871x_set_beacon_ops
rtl871x_set_hidden_ssid ignore_broadcast_ssid:0, KITT,4
rtl871x_set_acl
wlan0: Setup of interface done.
networking
services
init-script
init.d
hostapd
gnychis
źródło
źródło
hostapd
z uruchomieniem przezinit.d
(service hostapd start
) i wydaje się, że nic się nie dzieje ... zapoznaj się z tym postem na forum .Odpowiedzi:
Wszystko, co musisz zrobić, to napisać to polecenie:
wyświetli listę wszystkich błędów, możesz je następnie poprawić w
hostapd.conf
plikuźródło
musisz skonfigurować:
Znajdź wiersz powyżej i powiedz domyślnej konfiguracji, gdzie jest twój.
źródło
To był również problem dla mnie i oczywiście nadal istnieje. Naprawiłem błędy, usuwając hostapd z /etc/rc2.d/ i /etc/networking/if-pre-up.d/
/ etc / network / interfaces kontroluje hostapd teraz ..
Ponowne uruchomienie potwierdziło, że wyświetla interfejs; i stacje łączą się dobrze. Wcześniej musiałem ssh in i zatrzymać isc i hostapd i zrobić to, co teraz robi post-up (w tej kolejności)
źródło
/etc/defaults/hostapd
jako, jak @Matt (nie ja) sugeruje w innej odpowiedzi (zamiast hakującego wstawiania go,/etc/init.d/hostapd
jak sugeruje vlad). To powiedziawszy, twoja szczególna odpowiedź tutaj odnosi się do warunków wyścigu, które istnieją nawet po ustawieniu DAEMON_CONF, co jest większym błędem w sposobie implementacji skryptów startowych hostapd niż cokolwiek innego. Więc dziękuję za to!!start-stop-daemon
i wykonuje kiepską pracę podczas uruchamiania demona sysv (zarówno udhcpd, jak i hostapd). Nie mam pojęcia, co może być nie tak, ponieważ z systemd wykonało swoją robotę (a demon „wyszedł”). Więc jeśli masz post-up, użyj go.Właśnie natrafiłem na ten problem. Domyślnie instaluj na moim raspian wheezy, hostapd jest uruchamiany jako S01 w usługach. Powoduje to uruchomienie, przed
ifplugd
którym konfiguruje eth0 i wlan0. Powodem tego jest to, żeS01h[ostapd]
<S01i[fplugd]
ponieważ skrypty są sortowane w kolejności alfabetycznej w celu wykonania.Myślę, że konfiguracja mostu jest trudna, zanim wszystko inne. Przeniesienie go do S05 również nie pomogło, więc przeniosłem go do rc.local, który jest wykonywany „chwilę” po wszystkim innym. Usunąłem również wszystkie linki z rc [2-5] .d do
hostapd
. Myślę, że S05 jest wciąż za wcześnie, aby dhclient mógł poprawnie zakończyć. Nie jestem pewien, czy jest to zgodne z najlepszymi praktykami. Wydaje się, że teraz zdarza się, że ifplugd nie wychowujebr0
się, aleeth0
jest bardziej współpracujący. Nie jestem pewien, dlaczego wpa_supplicant zawodzi tutaj, prawdopodobnie dlatego, żewlan0
jest już obiecanybr0
. W każdym razie należy go wyłączyć. Później hostapd próbujebr0
ponownie uruchomić program i kończy się powodzeniem, ponieważeth0
jest w porządku i nikt nie przejął kontroliwlan0
.Istnieje inna możliwa konfiguracja, w której można określić opcję
post-up
/pre-down
dlabr0
in/etc/network/interfaces
(interfejsy man). Możesz zacząć / zatrzymaćhostapd
od tego momentu. Nie udało mi się jednak uruchomić go, ale wygląda to na znacznie czystsze rozwiązanie.źródło
Myślę, że problem tkwi w twoich cytatach w linii 11
/etc/default/hostapd
:Który powinien brzmieć:
Twój post pomógł mi rozwiązać mój problem, więc dziękuję!
źródło
Trzeba ustawić
DAEMON_CONF
w/etc/init.d/hostpad
.To naprawdę dość oczywiste, jeśli spojrzysz
/etc/init.d/hostapd
, domyślnie wygląda to tak:ponieważ
DAEMON_CONF
na początek jest pusty, skrypt kończy działanie w linii 24. Szkoda, że nie ma komunikatu o błędzie ani nic. Zmiana linii 17 nai umieszczenie konfiguracji w określonym pliku działało dla mnie.
źródło
/etc/init.d/hostapd
(który błędnie napisałeś jako hostPAD w pierwszym wierszu) ani/etc/defaults/hostapd
.Na Arch Linux, gdzie systemd wydaje się być normą w stosunku do rc / init.d miałem podobny problem. Ta odpowiedź różni się od pozostałych w następujący sposób:
Plik konfiguracyjny nie znajduje się w,
/etc/init.d
ale gdzieś poniżej/etc/systemd/system/
. W szczególności/etc/systemd/system/multi-user.target.wants/hostapd
w moim przypadku, gdzieExecStart
linia wskazuje na użyty plik konfiguracyjny.Co ważne, ten plik konfiguracyjny wskazuje również na używany plik binarny, a mianowicie
/usr/bin/hostapd
.Poprawka polega na sprawdzeniu, który plik hostapd faktycznie wykonuje. Uruchomienie
whereis
powie ci, jakie wersje są dostępne i gdzie się znajdują. Więcprodukuje coś podobnego
Testowanie każdego z nich poprzez systematyczne wywoływanie
PATH/hostapd /etc/hostapd/hostapd.conf
każdegoPATH
identyfikuje, który z nich faktycznie wywołujesz, a który systemd wywołuje. Ponownie w moim przypadku przywołałem ostatnią ścieżkęsudo hostapd /etc/hostapd/hostapd.conf
. Drugi to to, co przywołał systemd.Sztuką jest, aby skopiować z pliku binarnego
/usr/bin/local
do/usr/bin
lub z punktem Systemd do hostapd roboczej. Uważam, że ta pierwsza opcja jest „bezpieczniejsza”.Ponownie w moim przypadku plik binarny
/usr/bin/local
pochodzi z kompilacji sterownika Realtek ze źródła poza ich witryną, jak opisano tutaj . Gratulacje dla Realtek za obsługę Linuksa.Mam nadzieję, że to pomaga, nie jest specyficzne dla mojego systemu (Arch (Arm) Linux na Raspberry Pi B) i kwalifikuje się jako odpowiednia odpowiedź zgodnie z regułami UE.
źródło
Dodanie 10 sekund snu w pliku
/etc/init.d/hostapd
rozwiązało problem.1),
sudo nano /etc/init.d/hostapd
2) dodaniesleep
wstart)
przekroju jak niżejźródło