Hostapd 需要手动重启才能连接设备

Hostapd 需要手动重启才能连接设备

我目前正在使用带有 WiFi 卡的 NAS 为教士们设置 WiFi 热点。

设置:Ubuntu 13.10

Hostapd 与 eth0(br0)桥接,如果手动重启,效果会很好

sudo service hostapd restart
* 停止高级 IEEE 802.11 管理 hostapd [ OK ]
* 启动高级 IEEE 802.11 管理 hostapd [ OK }

但是,重新启动后 SSID 可见,但尝试连接时出现无线设备提示(身份验证错误/密码不正确)。

如果通过 ssh/local 终端执行上述命令,则所有设备都完美连接。

为了解决这个问题,我尝试添加延迟的 cron 作业来重新启动服务;

@reboot sleep 30; /fixscripts/hostapdstart.sh

我甚至编写了一个脚本来停止该服务,并在 60 秒后以与上述类似的格式启动它。(我相信脚本确实执行了,因为 SSID 会消失,并在 60 秒后重新出现)。

但是,根据原始问题,wifi 设备仍然出现身份验证错误,和以前一样,如果我登录并手动重新启动服务,它就可以正常工作!

下面是我的 hostapd.conf;

ssid=Caprica
wpa_passphrase=mypassword
接口=wlan0
桥接=br0
auth_algs=3
通道=7
驱动程序=nl80211
hw_mode=g
ieee80211n=1
wmm_enabled=1
logger_stdout=-1
logger_stdout_level=2
max_num_sta=5
rsn_pairwise=CCMP
wpa=2
wpa_key_mgmt=WPA-PSK
wpa_pairwise=TKIP CCMP

答案1

下面的修复方法对我来说“有效”,但是设备会在短时间后断开连接。最终我全新安装了 Ubuntu 12.04,一切似乎都运行正常。

  1. 从 rcX 文件中删除 hostapd 服务,以防止该服务自动启动;

    sudo update-rc.d-f hostapd 删除

  2. 提供一个 Cron Job 来在启动后立即启动服务

  3. 然后提供一个 Cron 作业,在启动后不久重新启动服务

修改Cron文件;

sudo crontab-e

以下是我添加的 Cron Jobs;

@reboot sleep 10; /fixscripts/hostapdstart.sh
@reboot sleep 25; /fixscripts/hostapdrestart.sh

这将在启动 10 秒后启动该服务,然后在 15(25-10)秒后重新启动该服务。

答案2

重新启动基于 hostapd 的接入点后,客户端(Android 手机)没有自动重新连接,并且 SSID 名称下显示“身份验证问题”,我们必须再次输入密码。

我发现使用 /dev/urandom 而不是 /dev/random (这会阻塞并导致身份验证超时)

例如 /etc/rc.local 中的这个:

 #!/bin/bash
 if [ ! -f /dev/random.orig ] ; then
   mv /dev/random /dev/random.orig
   ln /dev/urandom /dev/random
 fi

或者(如果你认为这样更明智)安装哈格德相反(在不阻止 /dev/random 的情况下增加熵)正在解决问题。

例如:

 apt-get install haveged

相关内容