hostapd "hizmet" ile başlamaz - ancak doğrudan başlar


19

hostapdHizmet olarak başlamakta güçlük çekiyorum . Başlatmaya çalıştığımda başarısız oluyor:

$ sudo service hostapd start
[FAIL] Starting advanced IEEE 802.11 management: hostapd failed!

Anladığım kadarıyla, bu yapılandırma kullanır /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"

Daemon yapılandırma dosyam aşağıdaki gibidir:

$ 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

Hizmet başlatılamamasına rağmen, hatasız olarak doğrudan kendi başıma başlatabiliyorum:

$ 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.

( ) hostapdAracılığıyla çalıştırmak için sorun yaşıyorsanız ve hiçbir şey olmuyor gibi görünüyorsa ... bu forum gönderisine bakın . init.dservice hostapd start

Yanıtlar:


14

Tek yapmanız gereken bu komutu yazmak:

sudo hostapd -d /etc/hostapd/hostapd.conf

size tüm hataları listeleyecektir, daha sonra bunları hostapd.confdosyada düzeltebilirsiniz

sudo nano /etc/hostapd/hostapd.conf

14

yapılandırmanız gerekir:

sudo nano /etc/default/hostapd

DAEMON_CONF="/etc/hostapd/hostapd.conf"

Yukarıdaki satırı bulun ve varsayılan yapılandırmaya nerede olduğunuzu söyleyin.


11

Bu benim için de bir problemdi ve hala var. Hosetd'i /etc/rc2.d/ ve /etc/networking/if-pre-up.d/ adresinden kaldırarak hataları düzelttim

/ etc / network / interfaces hostapd şimdi kontrol ..

iface wlan0 inet static
         post-up /usr/sbin/hostapd -B /etc/hostapd/hostapd.conf
         post-up service isc-dhcp-server restart
         address 192.168.10.1
         netmask 255.255.255.0

Yeniden başlatma, arayüzü getirdiğini doğruladı; ve İstasyonlar iyi bağlanır. Daha önce ben de ssh ve durdurma zorunda ISC ve hostapd ve ne sonrası yukarı (bu sırayla) artık yok


@lordvlad daha doğru, DAEMON_CONF ayarını kaçırmıştım, bu yüzden -B seçeneği benim için çalıştı.
Sir_Scofferoff

'Doğru' işe yarayan şeydir ve bu sistemd'de çalışır, diğerlerinin çözmediği bir dizi sorunu düzgünce kaldırır.
John Mee

1
@Teoma, tipik hostapd talimatlarını uygularsanız ve DAEMON_CONF'u /etc/defaults/hostapd@Matt (ben değil) başka bir yanıtta önerildiği gibi (vlad'ın önerdiği gibi kesmek yerine) aslında @lordvlad yanlıştır /etc/init.d/hostapd. Bununla birlikte, buradaki özel cevabınız, DAEMON_CONF ayarlandıktan sonra bile var olan bir yarış koşulunu ele alıyor, bu da hostapd'ın başlangıç ​​komut dosyalarının her şeyden çok nasıl uygulandığına dair bir hata. Bunun için teşekkürler !!
matt

1
Raspbian, rpi3 üzerinde çalışabilmemin tek yolu bu. Ve 15 yıldan fazla unix deneyimi ile. Systemd kaçırıldı start-stop-daemonve bir sysv daemon (hem udhcpd hem de hostapd) başlatma konusunda berbat bir iş yapıyor. Neyin yanlış olabileceğine dair hiçbir fikrim yok, çünkü systemd giderken işini yaptı (ve daemon "çıkıldı"). Bu yüzden post-up'ınız varsa kullanın.
Melvyn

3

Ben sadece bu problemle karşılaştım. Raspian wheezy'ime varsayılan kurulum, hostapd hizmetlerde S01 olarak başlatıldı. Bu, ifplugdeth0 ve wlan0'ı yapılandırmadan önce başlatır . Bunun nedeni, S01h[ostapd]< S01i[fplugd]komut dosyaları yürütme için alfabetik olarak sıralandığı için.

Köprünün her şeyden önce yapılandırılmakta zorlandığını düşünüyorum. S05'e taşımak da yardımcı olmadı, bunun yerine rc.local'a taşındım, her şeyden sonra "bir süre" idam edildi. Ayrıca tüm bağlantıları rc [2-5] .d'den kaldırdım hostapd. Ben dhclient düzgün bitirmek için S05 hala çok yakında olduğunu düşünüyorum. Bunun en iyi uygulamalara göre olduğundan emin değilim. Şimdi olan şey şu ki, ifplugd ortaya çıkamıyor br0ancak eth0daha işbirlikçi. Wpa_supplicant'ın neden başarısız olduğundan emin değilim, muhtemelen wlan0zaten vaat edildiğinden br0. Yine de devre dışı bırakılması gerekiyor. Daha sonra, hostapd br0tekrar ortaya çıkmaya çalışır ve eth0tamam olduğundan ve kimsenin kontrolünü ele geçirmediğinden başarılı olur wlan0.

Bir belirtebilirsiniz başka bir olası yapılandırma yoktur post-up/ pre-downseçeneği br0de /etc/network/interfaces(erkek arayüzleri). hostapdOradan başlayabilir / durabilirsiniz . Ancak işe yaramadı, ama bu çok daha temiz bir çözüm gibi görünüyor.


1

Bence sorun şu satırdaki alıntılarınızda /etc/default/hostapd:

”/etc/hostapd/hostapd.conf”

Aşağıdakileri okumalısınız:

"/etc/hostapd/hostapd.conf"

Gönderiniz aslında sorunumu çözmeme yardımcı oldu, bu yüzden teşekkürler!


1

Sen ayarlamanız gerekir DAEMON_CONFyılında /etc/init.d/hostpad.

İçine bakarsanız gerçekten çok açıktır /etc/init.d/hostapd, varsayılan şöyle görünür:

...
14 PATH=/sbin:/bin:/usr/sbin:/usr/bin
15 DAEMON_SBIN=/usr/sbin/hostapd
16 DAEMON_DEFS=/etc/default/hostapd
17 DAEMON_CONF=
18 NAME=hostapd
19 DESC="advanced IEEE 802.11 management"
20 PIDFILE=/var/run/hostapd.pid
21
22 [ -x "$DAEMON_SBIN" ] || exit 0
23 [ -s "$DAEMON_DEFS" ] && . /etc/default/hostapd
24 [ -n "$DAEMON_CONF" ] || exit 0
...

Çünkü DAEMON_CONF, çizgisinde komut çıkış 24. Çok kötü başlamak boş hiçbir hata mesajı ya da bir şey yoktur. Satır 17'yi

 DAEMON_CONF=/etc/hostapd/hostapd.conf

ve yapılandırmayı belirtilen dosyaya koymak benim için çalıştı.


1
Hostapd için tipik kurulum talimatlarını izlediyseniz, bu cevap yanlıştır ve karıştırılması muhtemeldir. Satır 23, DAEMON_DEFS tarafından başvuruda bulunulan dosyada tanımlanan ve genellikle DAEMON_CONF tanımlı değişkenleri çeker. Bu nedenle, bu komut dosyası yalnızca DAEMON_CONF ne tanımlanırsa /etc/init.d/hostapd(ilk satırınızda hostPAD olarak yanlış yazmışsanız) ne de satır 24'te çıkacaktır /etc/defaults/hostapd.
matt

0

Systemd'in rc / init.d üzerinde norm gibi göründüğü Arch linux'da da benzer bir sorun yaşadım. Bu cevap diğerlerinden aşağıdaki şekillerde farklılık gösterir:

  1. Yapılandırma dosyası içinde /etc/init.ddeğil, altında bir yerde bulunur /etc/systemd/system/. Özellikle /etc/systemd/system/multi-user.target.wants/hostapd, benim durumumda, ExecStartsatır kullanılan yapılandırma dosyasına işaret eder.

  2. Daha da önemlisi, bu yapılandırma dosyası kullanılan ikiliyi de gösterir /usr/bin/hostapd.

Düzeltme, gerçekte hangi hostapd dosyasını yürüttüğünüzü kontrol etmektir. yayınlamak whereissize hangi sürümlerin bulunduğunu ve nerede bulunduğunu söyleyecektir. Yani

whereis hostapd

gibi bir şey üretir

/sbin/hostapd /usr/bin/hostapd /usr/local/bin/hostapd

Sistematik arayarak her biri Test PATH/hostapd /etc/hostapd/hostapd.confher biri için PATHhangisinin gerçekte çağırma konum ve hangisinin systemd başlatıyordur gerektiğini tespit ettiği. Yine benim durumumda son yol, yumruk attığımda çağırdığım şeydi sudo hostapd /etc/hostapd/hostapd.conf. İkincisi, systemd'in çağırdığı şey.

Hüner gelen ikili kopya etmektir /usr/bin/localiçin /usr/binveya çalışma hostapd için systemd noktaya kadar. Birincisinin "daha güvenli" bir seçenek olduğuna inanıyorum.

sudo mv /usr/bin/hostapd /usr/bin hostapd.bkp     # delete later as necessary
sudo cp /usr/local/bin/hostapd /usr/bin

Yine benim durumumda altındaki ikili burada açıklanan /usr/bin/localşekilde Realtek sürücüsünü web sitelerinden kaynağından derlemekten geldi . Realtek'e Linux'u desteklediği için tebrikler.

Umarım bu yardımcı olur, Raspberry Pi B'deki sistemime (Arch (Arm) Linux) özgü değildir ve UE kurallarına göre uygun bir cevap olarak nitelendirilir.


0

Dosyaya 10 saniye uyku eklemek /etc/init.d/hostapdbenim için sorunu çözdü.

1) sudo nano /etc/init.d/hostapd 2) ekleyin sleepiçinde start)aşağıda benzeri bölümün

case "$1" in
  start)
        log_daemon_msg "Starting $DESC" "$NAME"
        sleep 10
        start-stop-daemon --start --oknodo --quiet --exec "$DAEMON_SBIN" \
                --pidfile "$PIDFILE" -- $DAEMON_OPTS >/dev/null
        log_end_msg "$?"
        ;;
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.