Hostapd

hostapd 是一个用户态用于AP和认证服务器的守护进程。它实现了IEEE 802.11相关的接入管理,IEEE 802.1X/WPA/WPA2/EAP 认证, RADIUS客户端,EAP服务器和RADIUS 认证服务器。

  1. hostapd配置文件

interface=ath16

bridge=br0

logger_syslog=-1

logger_syslog_level=2

logger_stdout=-1

logger_stdout_level=2

ctrl_interface=/var/run/hostapd

ctrl_interface_group=0

ssid=dlink

dtim_period=2

max_num_sta=255

macaddr_acl=0

auth_algs=1

ignore_broadcast_ssid=0

wme_enabled=0

ieee8021x=0

eapol_version=2

eapol_key_index_workaround=0

wpa=3

wpa_group_rekey=3600

wpa_pairwise=TKIP CCMP

wpa_key_mgmt=WPA-PSK

wpa_passphrase=12345678//

wpa_strict_rekey=0

其中需要注意的配置选项:当密码的长度小于64的时候,使用wpa_passphrase关键字,当密码的长度为64的时候,使用wpa_psk关键字。

Wpa_supplicant的配置文件:

ap_scan=1

network={

ssid="dlink"

scan_ssid=1

key_mgmt=WPA-PSK

psk="12345678"

proto=WPA RSN

pairwise=CCMP TKIP

group=CCMP TKIP

}

其中需要注意的配置选项:当密码的长度小于64的时候,使用psk=”123456”,当密码长度为64的时候,使用psk=………………………….(64位);

  2.hostapd使用时出错

在项目中出现过station连接AP连接不上,有时候稍微等久一点时间,station又能够连接上去了,最后发现问题在hostapd初始化的时候,函数:

int random_pool_ready(void)初始化hostapd的熵,初始化熵的时候,这个熵值是从/dev/random文件中读取出来的,从打印的信息中发现了错误:

"WPA: Not enough entropy in random pool "

"for secure operations - update keys later when "

"the first station connects");

熵:其实就是一串随机值。在hostapd中熵的值来源于/dev/random,系统打印出上面的错误,意思就是/dev/random里面读取的随机值不够hostapd所需要的。Hostapd中只需要从/dev/random里面读取20个字节就可以了,但是为什么会不够呢?这里需要说说/dev/random与/dev/urandom的区别。

random设备的random pool是从基于中断的IRQS里面取值,IRQS跟一些特殊的硬件绑定,基于这些硬件的interrupts将会提供给random设备。

/dev/urandom不受interrupts的限制,即使没有足够的interrupt它也能通过 random number generator产生足够的输出值。

说了两者的区别以后就会发现一个很明显的问题,就是random里面的值产生速度很慢,在hostapd起来的时候没有足够的值来做为熵的来源,而urandom产生的随机值就非常的快,没有什么限制,唯一区别:urandom比random更快速生成随机数,但是随机数的随机性稍微差一些,有些可能相同。

最后通过补全的方式来解决这个问题,先从random里面读取数据,如果发现不够,再从urandom里面读取。

Hostapd初始化失败的更多相关文章

  1. NLPIR_Init文本分词-总是初始化失败,false,Init ICTCLAS failed!

    前段时间用这个分词用的好好的,突然间就总是初始化失败了: 网上搜了很多,但是不是我想要的答案,最终去了官网看了下:官网链接 发现哇,版本更新了啊,下载页面链接 麻利的下载好了最新的文档,一看压缩包名字 ...

  2. [PL/SQL工具]绿色版PLSQL工具登录时提示初始化失败,无法锁定OCI.dll错误

    问题现象:使用绿色版PL/SQL工具进行登录时报如下截图错误: 问题描述:初始化失败,无法锁定oci.dll 解决方法:在PLSQL的菜单栏里依次选择 工具->首选项,在OCI库(自动检测为空) ...

  3. Visual Studio提示Bonjour backend初始化失败

    Visual Studio提示Bonjour backend初始化失败 错误信息:The Bonjour backend failed to initialize, automatic Mac Bui ...

  4. 针对应用程序池“xxxxxx”的模板永久性缓存初始化失败,解决方法

    日志名称:          Application 来源:            Active Server Pages 日期:            2014-11-22 9:09:39 事件 I ...

  5. iis7.5应用程序池模板永久性缓存初始化失败解决方法

    错误: 针对应用程序池的模板永久性缓存初始化失败,这是由以下错误导致的: 无法为应用程序池创建磁盘缓存子目录.数据可能包含其他错误代码. 解决办法如下: 网上搜索的答案全都是修改3个目录的权限,给II ...

  6. MvcPager2.0 中分页初始化失败的问题

    页面初始化时只有一页数据,或没数据时,出现分页控件初始化失败以及后续Ajax分页功能失效的问题, <div class="pagin"> <div class=& ...

  7. Quality Center11初始化失败

    打开start_a.jsp页面总是闪退,原因如下: 初始化失败因为证书签名过期了.把IE选项里证书检查的三项勾掉就好了(检查发行商的证书是否吊销.检查服务器证书吊销.检查已下载的程序的签名)

  8. Swift - 初始化方法返回nil表示初始化失败

    自Swift1.1开始,初始化init方法便有返回nil的能力.我们可以在init声明的时候在其后面加上一个 ? 或者 ! 来表示初始化失败时可能返回nil. 比如,给Int类添加一个将字符串初始化成 ...

  9. WebSphere服务器已启动但是初始化失败问题

    --WebSphere服务器已启动但是初始化失败问题 -----------------------------------------------2014/03/06 经常有开发同事反映,环境用着用 ...

随机推荐

  1. .Net 无法打开Offie Open XML文件(上传和下载使用)

    代码: 首先,贴一个上传 public static string UploadFileIntoDir(FileUpload MyFile, string DirName) { if (IfOkFil ...

  2. html 绘图

    <html> <head> <title>canvas绘制图形</title> <style> body{ margin: 0px; pad ...

  3. 多变量线性回归时使用梯度下降(Gradient Descent)求最小值的注意事项

    梯度下降是回归问题中求cost function最小值的有效方法,对大数据量的训练集而言,其效果要 好于非迭代的normal equation方法. 在将其用于多变量回归时,有两个问题要注意,否则会导 ...

  4. Selenium 2自动化测试实战18(上传文件)

    一.上传文件 上传文件是比较常见的web功能之一,但WebDriver没有提供专门用于上传的方法. 一般web页面的上传功能的操作需要单击“上传”按钮后打开本地的Window窗口,从窗口选择本地文件进 ...

  5. 关于函数中参数kwarg.setdefault()的用法

    1.kwarg.setdefault() setdefault()是给字典传递一个默认值    当给字典传递数据时 setdefault()是字典默认的一个参数,当有新的数据时,就会使用新的数据

  6. notepad++ 正则表达式(记录)

    删除操作notepad++去掉行尾空格或逗号查找目标:\s+$ (或,+$)替换为空Note: 以换行符结尾表示是$\r\n,而不是\r\n$ notepad++删除文本文件里面的空白行查找目标:^[ ...

  7. QA Issue: PN: startUp is upper case, this can result in unexpected behavior. [uppercase-pn]

    (借用一下) 该错误直接导致生成开机启动程序无法启动,既无法生成S99***快捷链接. 解决方法:仅仅将recpie lib-Test改成lib-test就可以了,即不要有大写字母. 附启动方法: S ...

  8. eureka和zookeeper的区别?

    eureka和zookeeper都可以提供服务注册与发现的功能,       zookeeper 是CP原则,强一致性(consistency)和分区容错性(Partition).       eur ...

  9. sql语言(mysql)

    一.SQL语言 1.DDL (Data Definition Language) 数据库定义语言 2.DML(Data Manipulation Language) 数据库操作语言 3.DQL (Da ...

  10. 深入理解java:2.3.6. 并发编程concurrent包 之管理类---线程池

    我们使用线程的时候就去创建一个线程,这样实现起来非常简便,但是就会有一个问题: 如果并发的线程数量很多,并且每个线程都是执行一个时间很短的任务就结束了,这样频繁创建线程就会大大降低系统的效率,因为频繁 ...