hostapd는 "service"를 통해 시작되지 않지만 직접 시작됩니다.


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

위의 줄을 찾아 defaul config에 자신의 위치를 ​​알려주십시오.


11

이것은 나에게도 문제였으며 분명히 여전히 존재합니다. /etc/rc2.d//etc/networking/if-pre-up.d/ 에서 hostapd를 제거하여 오류를 수정했습니다.

/ etc / network / interfaces는 현재 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

재부팅하면 인터페이스가 나타납니다. 스테이션은 잘 연결됩니다. 이전에는 ischostapd 를 ssh하고 중지 하고 게시가 지금하는 일을 그 순서대로 수행해야했습니다.


@lordvlad가 더 정확합니다 .DAEMON_CONF 설정을 놓쳤으므로 -B 옵션이 저에게 효과적이었습니다.
Sir_Scofferoff

'올바른'은 효과가 있으며 이것은 체계적으로 작동하며 다른 사람들이 해결하지 못하는 다른 많은 문제를 깔끔하게 회피합니다.
John Mee

1
@Teoma, 실제로 @lordvlad는 일반적인 hostapd 지침을 따르고 /etc/defaults/hostapd@Matt (나가 아님)가 다른 대답에서 제안하는 것처럼 DAEMON_CONF를 설정하면 잘못됩니다 ( /etc/init.d/hostapd블라드가 제안한대로 hackily를 넣는 대신 ). 즉, 귀하의 특정 답변은 DAEMON_CONF가 설정된 후에도 존재하는 경쟁 조건을 해결하는데, 이는 hostapd의 시작 스크립트가 다른 것보다 구현되는 방식에 더 많은 버그입니다. 그래서 고마워요 !!
matt

1
이것이 raspbian, rpi3에서 작동하도록하는 유일한 방법입니다. 그리고 15 년 이상의 유닉스 경험이 있습니다. Systemd가 하이재킹 start-stop-daemon되어 sysv 데몬 (udhcpd 및 hostapd)을 시작할 때 크 래피 작업을 수행합니다. 나는 무엇이 잘못 될 수 있는지에 대한 단서가 없다. 포스트 업이있는 경우 사용하십시오.
Melvyn

3

나는이 문제에 부딪쳤다. 기본 raspian wheezy에 설치하면 hostapd는 서비스에서 S01로 시작됩니다. ifplugdeth0 및 wlan0을 구성 하기 전에 시작 합니다. 그 이유는 S01h[ostapd]< S01i[fplugd]스크립트가 알파벳 순서로 정렬되어 있기 때문입니다.

다리는 다른 모든 것보다 구성하기가 힘들다고 생각합니다. S05로 옮기는 것도 도움이되지 않았으므로 대신 rc.local로 옮겼습니다. 또한 rc [2-5] .d에서까지의 모든 링크를 제거했습니다 hostapd. S05가 여전히 dhclient가 제대로 완료 되기에는 너무 빠르다고 생각합니다. 이것이 모범 사례에 따른 것인지 확실하지 않습니다. 지금 발생하는 것은 ifplugd가 br0나타나지 않지만 eth0더 협조적이라는 것입니다. 나는 wpa_supplicant를 여기에 실패하는 이유를 확인, 아마도 때문에 아닙니다 wlan0이미 약속되어있다 br0. 어쨌든 비활성화해야합니다. 나중에 hostapd는 br0다시 일어나려고 시도 하고 성공한 이후 eth0아무도 성공 하지 못했습니다 wlan0.

(man interface) 에서 post-up/ pre-down옵션을 지정할 수있는 또 다른 가능한 구성이 있습니다 . 거기에서 시작 / 중지 할 수 있습니다. 그러나 작동 시키지는 못했지만 훨씬 깨끗한 솔루션처럼 보입니다.br0/etc/network/interfaceshostapd


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가 정의되어 있습니다. 따라서이 스크립트는 DAEMON_CONF가 /etc/init.d/hostapd(첫 번째 줄에서 hostPAD로 철자가 틀린) 또는에 정의되지 않은 경우 24 행에서만 종료됩니다 /etc/defaults/hostapd.
matt

0

아치 리눅스에서 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 파일을 확인해야합니다. running 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. 두 번째는 systemd가 호출 한 것입니다.

트릭은 바이너리를 시스템 호스트에서 작업 호스트 /usr/bin/local/usr/bin또는 시스템 으로 복사 하는 것입니다. 전자가 "safer"옵션이라고 생각합니다.

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 드라이버를 컴파일하여 나온 입니다. 리눅스를 지원하는 Realtek에 잘했다.

이것이 도움이되기를 바랍니다. 내 시스템 (Raspberry Pi B의 Arch (Arm) Linux)에 국한되지 않고 UE 규칙에 따라 적합한 답변으로 자격을 갖기를 바랍니다.


0

파일에 10 초 절전 모드를 추가 /etc/init.d/hostapd하면 문제가 해결되었습니다.

1) sudo nano /etc/init.d/hostapd 2)를 추가 sleepstart)아래와 같이 섹션

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 "$?"
        ;;
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.