hostapd "सेवा" के माध्यम से शुरू नहीं होगा - लेकिन सीधे शुरू होगा


19

मुझे hostapdसेवा के रूप में शुरुआत करने में परेशानी हो रही है। यह विफल रहता है जब मैं इसे शुरू करने की कोशिश करता हूं:

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

मैं जो कुछ समझता हूं, वह इसमें कॉन्फ़िगरेशन का उपयोग करता है /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"

मेरा डेमन विन्यास फाइल इस प्रकार है:

$ 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

सेवा शुरू करने में विफल रहने के बावजूद, मैं इसे बिना किसी त्रुटि के सीधे अपने दम पर शुरू करने में सक्षम हूं:

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

आप मुद्दों हो रही हो रही है hostapdके माध्यम से चलाने के लिए init.d( service hostapd start) और कुछ भी नहीं होने वाली प्रतीत हो रहा है ... इस का उल्लेख मंच पोस्ट

जवाबों:


14

इस कमांड को लिखने के लिए आपको बस इतना करना है:

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

यह आपको सभी त्रुटियों को सूचीबद्ध करेगा, फिर आप उन्हें hostapd.confफ़ाइल में सही कर सकते हैं

sudo nano /etc/hostapd/hostapd.conf

14

आपको कॉन्फ़िगर करना होगा:

sudo nano /etc/default/hostapd

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

ऊपर की लाइन ढूंढें और डिफॉल कॉन्फिग को बताएं कि आपका कहां है।


11

यह मेरे लिए भी एक समस्या थी और जाहिर है अभी भी मौजूद है। मैंने /etc/rc2.d/ और /etc/networking/if-pre-up.d/ से hostapd को हटाकर त्रुटियों को ठीक किया

/ etc / नेटवर्क / इंटरफेस अब hostapd को नियंत्रित करता है ..

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

एक रिबूट ने पुष्टि की कि यह इंटरफ़ेस लाता है; और स्टेशन ठीक जुड़ते हैं। पहले मुझे isc और hostapd में ssh और रोकना पड़ता था और अब पोस्ट-अप क्या होता है (उस क्रम में)


@lordvlad अधिक सही है, मैंने DAEMON_CONF सेटिंग को मिस कर दिया था, यही वजह है कि -B विकल्प ने मेरे लिए काम किया।
Sir_Scofferoff

'सही' वह है जो काम करता है, और यह सिस्टमड पर काम करता है, बड़े करीने से अन्य मुद्दों का एक गुच्छा नहीं है जो दूसरों को हल नहीं करता है।
जॉन मी

1
@Teoma, वास्तव में @lordvlad गलत है यदि आप विशिष्ट hostapd निर्देशों का पालन करते हैं और DAEMON_CONF को @Matt /etc/defaults/hostapd(मुझे नहीं) के रूप में सेट करते हैं (किसी अन्य उत्तर में सुझाव देते हैं (बजाय हैक के /etc/init.d/hostapdरूप में इसे vlad से पता चलता है)। उस ने कहा, यहां आपका विशेष जवाब एक दौड़ की स्थिति को संबोधित करता है जो उसके बाद भी मौजूद है DAEMON_CONF सेट है, जो कि होस्टपैड की स्टार्टअप स्क्रिप्ट को किसी भी चीज़ से कैसे लागू किया जाता है, यह एक बग से अधिक है। तो इसके लिए आपका शुक्रिया!!
मैट

1
यह एकमात्र तरीका है जिससे मैं इसे raspbian, rpi3 पर काम करने के लिए प्राप्त कर सका। और वह> 15 साल के यूनिक्स के अनुभव के साथ। सिस्टमड ने अपहरण कर लिया start-stop-daemonऔर एक sysv डेमन (udhcpd और शत्रुता दोनों) शुरू करने पर एक भद्दा काम करता है। मुझे कोई सुराग नहीं है कि क्या गलत हो सकता है, क्योंकि जहाँ तक सिस्टमड जाता है उसने यह काम किया है (और डेमन "बाहर निकल गया")। इसलिए यदि आपके पास पोस्ट-अप है, तो इसका उपयोग करें।
मेल्विन

3

मैं बस इस समस्या में भाग गया। डिफ़ॉल्ट रूप से मेरे रास्पियन मट्ठे पर स्थापित करके, होस्टपैड को सेवाओं में S01 के रूप में शुरू किया जाता है। इससे यह शुरू होता है, ifplugdजिसमें eth0 और wlan0 को कॉन्फ़िगर करता है। इसका कारण यह है कि S01h[ostapd]< S01i[fplugd]चूंकि स्क्रिप्ट निष्पादन के लिए वर्णानुक्रम में क्रमबद्ध हैं।

मुझे लगता है कि पुल को हर चीज से पहले कॉन्फ़िगर करने में कठिन समय मिलता है। इसे S05 में ले जाने से या तो मदद नहीं मिली इसलिए मैंने इसे r के बजाय इसे स्थानांतरित कर दिया, जो कि बाकी सब के बाद "थोड़ी देर" निष्पादित हो जाता है। मैंने आरसी [2-5] .d से सभी लिंक भी हटा दिए हैं hostapd। मुझे लगता है कि S05 अभी भी जल्द ही ठीक से खत्म करने के लिए dhclient के लिए है। मुझे यकीन नहीं है कि यह सर्वोत्तम प्रथाओं के अनुसार है। अब जो होने लगा है वह यह है कि अगर इप्लुगड लाने में विफल रहता है br0लेकिन eth0अधिक सहकारी है। मुझे यकीन नहीं है कि क्यों wpa_supplicant यहाँ विफल रहता है, शायद इसलिए क्योंकि wlan0पहले से ही वादा किया गया है br0। इसे वैसे भी अक्षम करने की आवश्यकता है। बाद में, hostapd br0फिर से लाने की कोशिश करता है और तब से सफल होता है जब तक eth0कोई ठीक नहीं होता और किसी ने नियंत्रण नहीं किया wlan0

एक और संभव विन्यास जहाँ आप एक निर्दिष्ट कर सकते है post-up/ pre-downके लिए विकल्प br0में /etc/network/interfaces(आदमी इंटरफेस)। आप hostapdवहां से शुरू / रोक सकते हैं। हालांकि, मैंने इसे काम करने के लिए प्रबंधित नहीं किया, लेकिन यह बहुत क्लीनर समाधान की तरह दिखता है।


1

मुझे लगता है कि समस्या 11 के लाइन पर आपके उद्धरण के साथ है /etc/default/hostapd:

”/etc/hostapd/hostapd.conf”

जो पढ़ना चाहिए:

"/etc/hostapd/hostapd.conf"

आपकी पोस्ट ने वास्तव में मेरी समस्या को हल करने में मेरी मदद की, इसलिए धन्यवाद!


1

आप स्थापित करने की आवश्यकता DAEMON_CONFमें /etc/init.d/hostpad

यह वास्तव में काफी स्पष्ट है यदि आप देखते हैं /etc/init.d/hostapd, तो डिफ़ॉल्ट इस तरह दिखता है:

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

क्योंकि DAEMON_CONFशुरू करने के लिए खाली है, स्क्रिप्ट 24 लाइन पर बाहर निकलती है। बहुत बुरा कोई त्रुटि संदेश या कुछ भी नहीं है। 17 से लाइन बदलना

 DAEMON_CONF=/etc/hostapd/hostapd.conf

और निर्दिष्ट फ़ाइल में कॉन्फ़िगरेशन डालकर मेरे लिए काम किया।


1
यदि किसी ने hostapd के लिए विशिष्ट इंस्टॉलेशन निर्देशों का पालन किया है, तो यह उत्तर गलत है और भ्रमित होने की संभावना है। लाइन 23 DAEMON_DEFS द्वारा संदर्भित फ़ाइल में परिभाषित चर खींचती है, जो बदले में आमतौर पर DAEMON_CONF को परिभाषित करता है। इस प्रकार, यह स्क्रिप्ट केवल 24 लाइन पर बाहर निकल जाएगी यदि DAEMON_CONF को न तो परिभाषित किया गया है /etc/init.d/hostapd(जिसे आपने अपनी पहली पंक्ति में hostPAD के रूप में गलत वर्तनी दी है) और न ही /etc/defaults/hostapd
मैट

0

Arch linux पर, जहाँ systemd rc / init.d पर आदर्श लगता है। मुझे एक समान समस्या थी। यह उत्तर अन्य तरीकों से भिन्न है:

  1. कॉन्फ़िगरेशन फ़ाइल में नहीं रहता है, /etc/init.dलेकिन कहीं के तहत /etc/systemd/system/। विशेष रूप से /etc/systemd/system/multi-user.target.wants/hostapd, मेरे मामले में, जहां ExecStartलाइन विन्यास फाइल का उपयोग करती है।

  2. महत्वपूर्ण रूप से यह कॉन्फ़िगरेशन फ़ाइल भी उपयोग किए गए बाइनरी को इंगित करता है, अर्थात् /usr/bin/hostapd

यह तय है कि आप किस hostapd फ़ाइल को वास्तव में निष्पादित कर रहे हैं। रनिंग whereisआपको बताएगा कि कौन से संस्करण उपलब्ध हैं और वे कहाँ स्थित हैं। इसलिए

whereis hostapd

जैसा कुछ पैदा करता है

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

प्रत्येक को व्यवस्थित रूप से परीक्षण करके PATH/hostapd /etc/hostapd/hostapd.confप्रत्येक को PATHपहचानता है कि आप वास्तव में किसका उपयोग कर रहे हैं और कौन से सिस्टम का उपयोग कर रहे हैं। मेरे मामले में एक बार फिर आखिरी रास्ता वही है, जब मैं अंदर घुस रहा था sudo hostapd /etc/hostapd/hostapd.conf। दूसरा वह है जिसे सिस्टमडॉक लागू कर रहा था।

ट्रिक बाइनरी को कॉपी /usr/bin/localकरने के लिए /usr/binया सिस्टम होस्ट से वर्किंग होस्टपैड को इंगित करने के लिए है। मेरा मानना ​​है कि पूर्व "सुरक्षित" विकल्प है।

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

फिर से मेरे मामले में बाइनरी अंडर /usr/bin/localरियलटेक ड्राइवर को अपनी वेबसाइट के स्रोत से संकलित करने से आया था जैसा कि यहां वर्णित है । अच्छी तरह से लिनक्स का समर्थन करने के लिए Realtek के लिए किया गया।

आशा है कि यह मदद करता है, रास्पबेरी पाई बी पर मेरे सिस्टम (आर्क (आर्म) लिनक्स के लिए विशिष्ट नहीं है) और यूई नियमों के अनुसार उपयुक्त उत्तर के रूप में योग्य है।


0

फ़ाइल में 10 सेकंड की नींद जोड़ने से /etc/init.d/hostapdमेरे लिए समस्या तय हो गई।

1) sudo nano /etc/init.d/hostapd 2) नीचे जैसे अनुभाग sleepमें जोड़ेंstart)

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 "$?"
        ;;
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.