本文主要介绍在Ubuntu14.04系统环境中编译hostapd,以及其使用。

我的需求是在linux上创建WIFI热点,最早接触的是ap-hostapd这个脚本,然后参考网络文章安装hostapd以及dnsmasq。对于ap-hostpad的使用,网络已经有大量文章,笔者也就不再写了。不过由于hostapd版本关系,有些功能可能不支持,或者某些功能没有被编译。于是就得自己手动编译hostapd。本文由此而得。

一、编译安装

1、

hostapd官网为:http://w1.fi/,截至本文发表,最新版本是2.5。

2、

该软件依赖libnl库,在ubuntu14.04系统安装如下:

# apt-get install libnl-3-200
# apt-get install libnl-3-dev
# apt-get install libnl-genl-3-dev

3、

从官网下载hostapd源码压缩包并解压,进入hostapd目录,将自带的defconfig改名为.config并编辑,打开如下选项:

CONFIG_LIBNL32=y
CONFIG_IEEE80211N=y
CONFIG_IEEE80211AC=y
CONFIG_ACS=y   # 打开这个选项,才能使用自动选择信道(ACS,Automatic Channel Selection)

4、

输入make进行编译。

如果出现如下错误提示:

Package libnl-3.0 was not found in the pkg-config search path.
Perhaps you should add the directory containing `libnl-3.0.pc'
to the PKG_CONFIG_PATH environment variable
No package 'libnl-3.0' found
则需要将libnl-3.0.pc所在目录添加到PKG_CONFIG_PATH变量中,先用如下命令查看所在目录:

# find / -name "libnl-3.0.pc"
/usr/lib/i386-linux-gnu/pkgconfig/libnl-3.0.pc

然后添加到PKG_CONFIG_PATH变量,命令如下:

export PKG_CONFIG_PATH=/usr/lib/i386-linux-gnu/pkgconfig/:$PKG_CONFIG_PATH

二、使用

hostapd使用十分简单,直接运行命令:

hostapd -B  ./hostapd.conf

-B表示以daemon形式运行,-f指定调试信息输出文件,可以使用-d或-dd输出更多调试信息。

值得说明的是,如果要实现完整的WIFI热点,除了此软件外,还得设置好无线网卡IP地址,一般而已该地址即为网关地址。而且还得具备DHCP功能,当然也可以不需要。如果没有DHCP,手机连接时就得指定IP地址。笔者就因为有一些试验时没有开启DHCP服务,用手机、PC怎么也连接不上WIFI,折腾了半天才发现问题所在。

——以上的各项设置,可以直接使用ap-hostapd或create_ap脚本来代替。后面笔者将就这两个著名的脚本进行解析而得到属于自己的一个脚本。

三、配置文件

网络上大部分关于hostapd.conf都只是将该文件内容复制出来,本文根据笔者使用经验做一些简单介绍,但不对配置文件可行性做保证。参数解释如下:

interface=wlan0 # 网络设备
max_num_sta=255 # 最大允许多少个客户连接
driver=nl80211 # 驱动,一般不用改
ssid=LATELEESWIFI_1B62BE # SSID,即WIFI名称
wpa_passphrase=12345678910 #密码
country_code=CN #国家码
hw_mode=g # 模式
beacon_int=100 #beacon帧间隔,单位为1.024 ms,默认为100,抓包可看到beacon帧为0.1024s
ignore_broadcast_ssid=0 #设置为1会隐藏SSID
ht_capab=[HT20] # HT特性 SHORT-GI-20 为短GI,速率会提升10%。HT40-表示向下绑定,HT40+表示向上绑定。SHORT-GI-40为短GI,40MHz频宽。

下面给出一个802.11n的示例:

beacon_int=100
interface=wlan0
driver=nl80211
ssid=LATELEEWIFI
channel=0
max_num_sta=2
macaddr_acl=0
auth_algs=1
ignore_broadcast_ssid=0
wpa=2
wpa_passphrase=12345678910
wpa_key_mgmt=WPA-PSK
wpa_pairwise=TKIP
rsn_pairwise=CCMP
country_code=CN
ieee80211d=1
ieee80211h=1
hw_mode=g
ieee80211n=1
ht_capab=[HT40+][SHORT-GI-40][DSSS_CCK-40]
wmm_enabled=1

下面给出一个802.11ac的示例:

beacon_int=100
interface=wlan0
driver=nl80211
ssid=LATELEEWIFI
channel=0
max_num_sta=2
macaddr_acl=0
auth_algs=1
ignore_broadcast_ssid=0
wpa=2
wpa_passphrase=12345678910
wpa_key_mgmt=WPA-PSK
wpa_pairwise=TKIP
rsn_pairwise=CCMP
country_code=CN
ieee80211d=1
ieee80211h=1
hw_mode=a
ieee80211ac=1
wmm_enabled=1
ieee80211n=1
ht_capab=[HT40+][LDPC][SHORT-GI-20][SHORT-GI-40][TX-STBC][RX-STBC1][DSSS_CCK-40]
#ht_capab=[HT40+][SHORT-GI-40][DSSS_CCK-40]#ieee80211ac=1
#vht_oper_chwidth=1
#vht_capab=[MAX-MPDU-11454][RXLDPC][SHORT-GI-80][TX-STBC-2BY1][RX-STBC-1][MAX-A-MPDU-LEN-EXP7][RX-ANTENNA-PATTERN][TX-ANTENNA-PATTERN]
#vht_capab=[OFDM][BPSK][QPSK][16-QAM][64-QAM][256-QAM][LDPC][SHORT-GI-40]
vht_capab=[SHORT-GI-80]

注:理论上看802.11ac速率要比802.11n高,但实际上,如不在hostapd中添加ieee80211n的配置,则速率并不高。

李迟 2016.7.23 周六 中午

Ubuntu14.04系统hostapd编译及使用相关推荐

  1. ubuntu14.04系统下对SD卡分区

    在ubuntu14.04系统下对SD卡进行分区分为3步: 注意:进行SD卡分区时,用户操作权限为root权限! (1) umount SD卡 查看SD卡挂载目录,一般在/media目录下: sudo ...

  2. Ubuntu14.04系统下无法连接Wi-Fi无线网以及安装BCM43142网卡驱动的解决方案

    Ubuntu14.04系统下无法连接Wi-Fi无线网以及安装BCM43142网卡驱动的解决方案 参考文章: (1)Ubuntu14.04系统下无法连接Wi-Fi无线网以及安装BCM43142网卡驱动的 ...

  3. 如何在ubuntu14.04(64位)编译运行32位程序

    来源:http://andycoder.me/fix-32bug-under-ubuntu1404/ 缘起 我之前是ubuntu12.04(32bit),在一次手贱的apt-getremove之后呵呵 ...

  4. ubuntu14.04系统里的常用软件安装,设置及优化汇总

    一.系统安装时的优化 1.设置在线安装系统 强烈推荐,安装许多次之后发现,只要是在线安装的能解决很多棘手的问题,虽然过程漫长,但是相比于以后配置相关软件还是值得的. 安装系统肯定需要安装教程,这里可以 ...

  5. Ubuntu14.04系统下安装配置OpenCV 4.0.0开发环境全过程

    最近研究一个项目时需要用到OpenCV,于是自己尝试在Ubuntu 14.04系统下安装了这个开发环境.下面就将具体的过程记录一下,便于后期查阅和同行分享. 〇.开发环境 首先介绍一下我的开发环境: ...

  6. 安装Ubuntu14.04系统简易教程(使用rufus-3.1)

    本人一台老旧的戴尔工作站笔记本平时基本用不上,刚好可用来安装Linux系统玩玩.在网上看了些教程,发现还是使用rufus-3.1工具进行安装比较简洁明了. 步奏一:到ubuntu官方网站去下载ubut ...

  7. MTK6592的modem-1.ubuntu14.04下的编译烧写及调试

    一. MTK6592的modem在ubuntu14.04 64位下的编译 1.要改动的文件 MTK6592的modem推荐的编译环境是ubuntu10.04 64位 要想在ubuntu 14.04 6 ...

  8. 基于arm开发板在ubuntu18.04系统上编译vlc播放器

    前言 VLC 是一款自由.开源的跨平台多媒体播放器及框架,可播放大多数多媒体文件,以及 DVD.音频 CD.VCD 及各类流媒体协议.接下来将通过vlc源码进行编译 环境 arm64开发硬件 ubun ...

  9. Ununtu16.04系统下编译安装ffmpeg、抽帧和计算图片时间点

    ffmpeg是开源的.功能强大的视频.音频.图像处理工具,在最近的工作中,需要从视频中抽取图像,并准确计算每张图片对应在视频播放中的时间点.在网上找了一圈发现,所有的参考资料基本分为两种: 1.通过c ...

最新文章

  1. 快速了解微信小程序的使用,一个根据小程序的框架开发的todos app
  2. 广义互相关计算TDOA
  3. [临时]关于tar.gz .gz的压缩研究
  4. python爬虫常见的那点问题!
  5. Bootstrap组件_输入框组
  6. java queue 最大值_[剑指offer题解]队列的最大值/滑动窗口的最大值
  7. java中ares框架_ARES辅助开发工具-用户手册.doc
  8. asp.net Code学习二(使用vs 2015 update 3)
  9. 虚拟机中编译代码死机,加大内存解决
  10. 因为分区表已变,使用再生龙恢复ubuntu系统后无法休眠的解决办法
  11. Keil (MDK)中变量定义位置
  12. Windows 11 (updated Dec 2021) 简体中文版、英文版(64-bit、ARM64)下载(2022 年 1 月发布)
  13. 哪些网站不适合做seo优化
  14. Android Camera对焦相关基础自动对焦,手动对焦
  15. C# 定时关机小应用
  16. GB28181设备端PS流封装和发送
  17. 运筹学系列(一)纳什均衡与最大最小博弈
  18. 深度学习方法实现红外图片中人物动作识别
  19. 超实用!网站导航栏设计方法总结
  20. Enovia文件协作服务器安装,NX与Enovia集成安装配置手册_jimmy.docx

热门文章

  1. PHP初学者头疼问题总结
  2. 历史上杀伤力最大的笑话!!!
  3. PHP防注入安全代码
  4. 4月30日火车票今日开售,多个线路“一秒没”
  5. 董明珠为什么做不好手机?
  6. 华为P50 Pro渲染图再曝光:液态镜头、四曲面屏很吸睛
  7. 2020年国内电影总票房突破100亿元
  8. iPhone 12 Pro最新概念图:五摄相机模组也带下巴
  9. 愚人节谁最皮?华为宣布攻克兽语,小米6复刻版官宣,微信发万元红包...
  10. 标配65W闪充!865旗舰充电3分钟“满血复活”