我在尝试启动 Hostapd 时遇到多个错误,我将发布在尝试启动它并查看状态后得到的错误输出:
root@l0calh0st:~# service hostapd status
● hostapd.service - Advanced IEEE 802.11 AP and IEEE 802.1X/WPA/WPA2/EAP Authenticator
Loaded: loaded (/lib/systemd/system/hostapd.service; disabled; vendor preset: disabled)
Active: failed (Result: exit-code) since Sun 2018-01-07 16:42:38 CET; 4s ago
Process: 1682 ExecStart=/usr/sbin/hostapd -P /run/hostapd.pid -B $DAEMON_OPTS ${DAEMON_CONF} (code=exited, sta
Jan 07 16:42:38 l0calh0st systemd[1]: Starting Advanced IEEE 802.11 AP and IEEE 802.1X/WPA/WPA2/EAP Authenticato
Jan 07 16:42:38 l0calh0st hostapd[1682]: Configuration file:
Jan 07 16:42:38 l0calh0st hostapd[1682]: Could not open configuration file '' for reading.
Jan 07 16:42:38 l0calh0st hostapd[1682]: Failed to set up interface with
Jan 07 16:42:38 l0calh0st hostapd[1682]: Failed to initialize interface
Jan 07 16:42:38 l0calh0st systemd[1]: hostapd.service: Control process exited, code=exited status=1
Jan 07 16:42:38 l0calh0st systemd[1]: hostapd.service: Failed with result 'exit-code'.
Jan 07 16:42:38 l0calh0st systemd[1]: Failed to start Advanced IEEE 802.11 AP and IEEE 802.1X/WPA/WPA2/EAP Authe
我不知道为什么他找不到配置文件,他似乎在搜索“”,又什么都没有......!我没有编辑任何东西......!如果我尝试正常启动:
root@l0calh0st:~# service hostapd start
Job for hostapd.service failed because the control process exited with error code.
See "systemctl status hostapd.service" and "journalctl -xe" for details.
如果使用命令“journalct1 -xe”我得到:
root@l0calh0st:~# journalctl -xe
-- Unit systemd-tmpfiles-clean.service has finished starting up.
--
-- The start-up result is RESULT.
Jan 07 16:57:44 l0calh0st systemd[1]: Starting Advanced IEEE 802.11 AP and IEEE 802.1X/WPA/WPA2/EAP Authenticator...
-- Subject: Unit hostapd.service has begun start-up
-- Defined-By: systemd
-- Support: https://www.debian.org/support
--
-- Unit hostapd.service has begun starting up.
Jan 07 16:57:44 l0calh0st hostapd[1865]: Configuration file:
Jan 07 16:57:44 l0calh0st hostapd[1865]: Could not open configuration file '' for reading.
Jan 07 16:57:44 l0calh0st hostapd[1865]: Failed to set up interface with
Jan 07 16:57:44 l0calh0st hostapd[1865]: Failed to initialize interface
Jan 07 16:57:44 l0calh0st systemd[1]: hostapd.service: Control process exited, code=exited status=1
Jan 07 16:57:44 l0calh0st systemd[1]: hostapd.service: Failed with result 'exit-code'.
Jan 07 16:57:44 l0calh0st systemd[1]: Failed to start Advanced IEEE 802.11 AP and IEEE 802.1X/WPA/WPA2/EAP Authenticator.
-- Subject: Unit hostapd.service has failed
-- Defined-By: systemd
-- Unit hostapd.service has failed.
--
-- The result is RESULT.
lines 1521-1543/1543 (END)
编辑:好的,我找到了文件“hostapd.service”,但我没有看到任何注释掉的内容。 (#?):
[Unit]
Description=Advanced IEEE 802.11 AP and IEEE 802.1X/WPA/WPA2/EAP Authenticator
After=network.target
[Service]
Type=forking
PIDFile=/run/hostapd.pid
EnvironmentFile=/etc/default/hostapd
ExecStart=/usr/sbin/hostapd -P /run/hostapd.pid -B $DAEMON_OPTS ${DAEMON_CONF}
[Install]
WantedBy=multi-user.target
这是 /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=""
# 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=""
答案1
您的系统正在使用systemd
.在某些发行版中,我注意到使用旧版service
包装器可以隐藏一些使用 systemd-native 命令可见的错误消息systemctl
。但看起来这里的信息已经足够了。
在/lib/systemd/system/hostapd.service
文件中,确定用于启动的实际命令的行hostapd
显然是这样的:
ExecStart=/usr/sbin/hostapd -P /run/hostapd.pid -B $DAEMON_OPTS ${DAEMON_CONF}
systemd
由于它包含默认设置之外的环境变量(请参阅man systemd.exec
详细信息),因此该hostapd.service
文件可能应该有一个选项,例如Environment=
,EnvironmentFile=
或PassEnvironment=
。大概是这样的:
EnvironmentFile=/etc/default/hostapd.conf
如果这样的文件存在,它可能有一些注释掉的默认值,您需要编辑以匹配您的系统配置,然后取消注释,然后才能开始hostapd
。
通常,此类文件是由您的发行版维护人员准备的,并且具有描述您需要执行的操作的有用注释。如果没有,目录中可能有一些特定于发行版的信息,/usr/share/doc/hostapd-*/
您应该首先阅读这些信息。
答案2
我在 Raspbian Stretch 上遇到了和你一样的问题。我只是搜索软件包.debian.org我发现了两个不同的包。
我安装了“hostapd_2.4-1+deb9u4_armhf.deb”它有很多问题。所以,我安装了“hostapd_2.7+git20190128+0c1e29f-4_bpo9+2_armhf.deb”这很好。