由于多个错误而无法启动 Hostapd

由于多个错误而无法启动 Hostapd

我在尝试启动 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”这很好。

相关内容