我目前正在使用带有 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,一切似乎都运行正常。
从 rcX 文件中删除 hostapd 服务,以防止该服务自动启动;
sudo update-rc.d-f hostapd 删除
提供一个 Cron Job 来在启动后立即启动服务
- 然后提供一个 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