Hostapd Configuration Guide

news/2024/12/29 0:35:12/

https://github.com/mengning/remoteapd/wiki/Hostapd-Configuration-Guide

http://linsir.sinaapp.com/post/Raspberry_Pi_Wifi_Router

无线AP可以为传统的有线局域网提供无线扩展接入,而一般的无线网卡只能作为客户端连接到无线AP。目前市面上很多无线网卡都具有模拟AP功能,不单可以作为无线客户端连接上无线网络,也可以切换为模拟AP,供其他无线客户端连接。

  随着个人越来越多的其他的无线设备如手机、PAD以及很多类似平板设备的普及,我们发现很多时候我们的外出等特殊情况下让我们的其他设备接入有线网络已经成为了一个现实问题,那么我们可以充分发挥我们的随身笔记本的功能,将其通过软件设置成为模拟AP,这样就可以解决很多特殊情况下其他设备上网的问题了,如果您是一位WINDONS的用户,那么在win7下面用"承载网络"这一功能来模拟AP。在LINUX系统下我们也可以通过Hostapd软件配置来实现这样的功能。

一、实验环境:

操作系统:Ubuntu 内核版本:Ubuntu13.04 无线网卡型号:tp-link TL-WN310G

二、无线AP创建过程:

1. 安装依赖文件:

libnl库主要提供基于LINUX内核的netlink protocol相关APs函数。
libssl-dev库提供ssl开发库。
hr@ubuntu:~$ sudo apt-get install libnl-dev libpopt-dev libssl-dev

2. 下载hostapd:http://hostap.epitest.fi/hostapd/

注意下载(Latest release: hostapd-2.0.tar.gz)

3. 解压

tar -zxvf hostapd-2.0.tar.gz

4. 进入hostapd-2.0/hostapd/

cd hostapd-2.0/hostapd/

5. 备份默认的config

cp defconfig .config

6. 安装Hostapd

make
sudo make install

7. 插上无线网卡

ifconfig//命令下应该会显示有wlan0,表明无线网卡已经插上.

8. 配置wlan0网口

sudo gedit  /etc/network/interfaces

添加

auto wlan0
iface wlan0 inet static
address 192.168.0.1
netmask 255.255.255.0

9. 准备hostapd的配置文件

sudo gedit /etc/hostapd.conf

添加

interface=wlan0//接入点设备名称注意不要包含ap后缀,即如果该设备称为wlan0ap,填写wlan0即可
driver=nl80211//设置无线驱动类型
ssid=fyqhr    //AP热点名字
hw_mode=g     //指定802.11协议包括a=IEEE802.11a,b = IEEE 802.11b, g = IEEE 802.11g
channel=11    //channel:设定无线频道
dtim_period=1  //设置DTIM周期,稳定的关键。AP通过设置DTIM的间隔(缺省是一个beacon时间,100ms),根据这个间隔发送组播流量。
rts_threshold=2347 //可考虑注销此项目来提高网卡性能,如果更改后变得不稳定则取消注销。
fragm_threshold=2346 //可考虑注销此项目来提高网卡性能,如果更改后变得不稳定则取消注销
macaddr_acl=0      //macaddr_acl:可选,指定MAC地址过滤规则,0表示除非在禁止列表否则允许,1表示除非在允许列表否则禁止,2表示使用外部RADIUS服务器.
auth_algs=3         //auth_algs指定采用哪种认证算法,采用位域(bit fields)方式来制定,其中第一位表示开放系统认证(Open System Authentication, OSA),第二位表示共享密钥认证(Shared Key Authentication, SKA)。如果设置alth_algs的值为1,表示只采用OSA;如果为3则两种认证方式都支持。
ieee80211n=0//如果是n网卡则参数为1,否则为0
wpa=2//老师原本值为3,改成2后手机连接AP成功,wpa:指定WPA类型,这是一个位域值(bit fields),第一位表示启用WPA,第二位表示启用WPA2。在我的配置中,无论设置成1、2或3,都可以正常连接.
wpa_passphrase=1234567890//设置密码,长度为8~63个字符
wpa_key_mgmt=WPA-PSK//WPA加密类型//wpa_pairwise/rsn_pairwise:如果启用了WPA,需要指定wpa_pairwise;如果启用了WPA2,需要指定rsn_pairwise,或者采用wpa_pairwise的设定。都可以设定成TKIP、CCMP或者两者都有,具体含义我也没仔细弄清楚。一篇比较老的文章说TKIP不兼容Windows Mobile.
wpa_pairwise=TKIP
rsn_pairwise=CCMP

10. 安装dnsmasq

ps -e | grep dnsmasq
sudo killall dnsmasq
sudo apt-get install dnsmasq //此时有可能ping不通域名,重启后再试一下
sudo gedit /etc/resolv.conf  //如果ping不通可手动重新配置一下NDS(当前可用的)

11. 配置DHCP服务器

sudo gedit /etc/dnsmasq.conf

添加:

interface=wlan0
bind-interfaces
except-interface=lo
dhcp-range=192.168.0.100,192.168.0.200,6h//dhcp=ranage参数为dhcp地址范围,租借时间6h
dhcp-option=3,192.168.0.1//dhcp-option=3,192.168.0.1 #为手机配置网关
dhcp-option=6,219.219.223.10 //dhcp-option=6,219.219.223.10 #为手机配置dns,这里是USTCSZ的DNS 

12. 设置无线接入点IP地址

sudo ifconfig wlan0 192.168.0.1 netmask 255.255.255.0

13. 启动AP

sudo hostapd -B /etc/hostapd.conf

14. 重启dnsmasq,否则本机无法上网

sudo /etc/init.d/dnsmasq restart

此时已经可以收到AP信号了,但无法上网

因为本机DNS被修改为了127.0.0.1,需手动修改为本地可使用DNS服务器
sudo gedit /etc/resolv.conf

15. 切换到root权限

sudo -s //切换到root权限

16. 修改网络设置,打开Linux主机网络数据转发功能

echo "net.ipv4.ip_forward=1" >> /etc/sysctl.conf
echo 1 > /proc/sys/net/ipv4/ip_forward //如果该linux系统开启了防火墙需要使用iptables开启数据转发功能
sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

17.此时AP热点已经可以被手机连接成功,并能上网(PS:测试了小米2和中兴U930hd可一起连接上,但是不知道是不是我的网卡问题,虽然可以上网了,但是不是很稳定,容易掉线)

三、常见问题:

nl80211: Failed to set interface wlan0 into AP mode 
nl80211 driver initialization failed. 

导致LINUX系统无法创建模拟无线AP的原因有二:

1.设备被内核托管

终于用google在:https://wiki.archlinux.org/index.php/Software_Access_Point#NetworkManager_is_interfering
帖子中找到了解决办法:
其实后来发现只需要将netmanager网络管理器中无线网卡设置为"设备未托管"状态,之后hostapd就可以正常启动。
 /etc/NetworkManager/NetworkManager.conf文件中的[keyfile]字段之后添加内容为:unmanaged-devices=mac:00:23:cd:10:3e:0b的一行,其中"00:23:cd:10:3e:0b"为无线网卡MAC地址。
这样该网卡就已经不再受NetworkManager管理了,在NetworkManager管理器中无线网络状态将更改为“设备未托管”状态。
 sed -i '/^unmanaged-devices=mac:00:23:cd:10:3e:0b/d' /etc/NetworkManager/NetworkManager.conf命令,在文件中删除 unmanaged-devices=mac:00:23:cd:10:3e:0b这一内容,可将无线网络重新托管在NetworkManager管理器中。
客户端使用HOSTAPD无线AP时,网速不稳定,导致某些时刻无法打开网页或者其它因为网络超时导致的网络不可访问故障。
该问题主要是因为无线数据传输校验中随机种子数较少导致的无线网络数据传输时延过大导致的,用户可以通过命令
 cat /proc/sys/kernel/random/entropy_avail //来查看具体数值,该值一般小于1000。
用户需要通过在终端中执行
 yum install haveged命令安装随机数生成器(haveged)
并使用
 systemctl enable haveged.servce //命令来启动随机数生成器(haveged)已提高entropy_avail数值。这样无线网络时延将恢复到正常状态。网络不在出现以上描述的问题。

2.无线ap不支持ap模式

这就没办法喽~~

3.问题补充

启动hostapd时,如果遇到如下错误
 unknown configuration item 'ieee80211n'
可以修改.config文件,将
 #CONFIG_IEEE80211N=y
前面的'#'去掉,然后重新编译,安装(make clean, make, make install).

配置过程遇到以下问题的解决方法:

0.我在获取hostapd的时候会报依赖冲突,要更新一下源:sudo apt-get update

1.安装配置无线网卡 这一步是针对在虚拟机中操作所需要的步骤,如果不是虚拟机下操作则可以跳过

2.配置hostapd的参数含义: ssid:别人所看到的我们这个无线接入点的名称; hw_mode:指定802.11协议,包括 a = IEEE 802.11a, b = IEEE 802.11b, g = IEEE 802.11g; channel:设定无线频道; interface:接入点设备名称,注意不要包含ap后缀,即如果该设备称为wlan0ap,填写wlan0即可; bridge:指定所处网桥,对于一个同时接入公网、提供内部网和无线接入的路由器来说,设定网桥很有必要; driver:设定无线驱动,我这里是nl80211; macaddr_acl:可选,指定MAC地址过滤规则,0表示除非在禁止列表否则允许,1表示除非在允许列表否则禁止,2表示使用外部

RADIUS服务器; accept_mac_file:指定允许MAC列表文件所在;

3.安装dnsmasq: 如果遇到不能上网的情况,可能是dnsmasq更改了你的域名服务器 打开文件:gedit /etc/resolv.conf将nameserver 127.0.0.1改为 nameserver 8.8.8.8(这是谷歌提供的一个免费DNS服务器)

4.启动hostapd,dnsmasq: sudo hostapd -B /etc/hostapd.conf步报 failed to ...into AP mode解决方法: 打开文件: sudo gedit /etc/NetworkManager/NetworkManager.conf 在keyfile后加 [keyfile] unmanaged-devices=mac:你的网卡mac地址,这是将你插上的外置网卡设为unmanaged状态


http://www.ppmy.cn/news/345856.html

相关文章

【沙龙干货分享】你要知道的N个Android适配问题

2015年8月29日下午,腾讯Bulgy移动开发者沙龙第三期在车库咖啡与大家如约相见。本期,我们分享的主题是安卓应用机型适配之痛。适配性问题作为安卓开发者中的老大难问题,几乎困扰过每一个安卓开发者。如何在保证快速的研发中,又能做…

你要知道的N个Android适配问题

为什么80%的码农都做不了架构师?>>> 作者简介: 李忠丞 沈阳大学学士,腾讯优测产品支撑组组长;2011年加入腾讯,专注移动终端开发,先后参与过腾讯微博研发以及手机QQ浏览器、Qzone、魅拍等产品的…

Centos7.4操作系统安装

Centos7.4操作系统安装 1.U盘准备2.下载相关装机工具3. 制作UEFI启动盘4. 设置U盘启动5. U盘启动后的磁盘路径或者lable标签修改6. 安装linux操作系统7. 安装踩坑--步骤5解释 1.U盘准备 centos7系统的安装只支持fat32文件格式的磁盘,当作系统盘只有不超过32G的U盘才…

recovery: ASCII cpio archive (SVR4 with no CRC)——cpio格式的recovery解压缩和重新打包的方法

中兴U930HD手机CPU采用的是联芯科技的LC1810,该平台系统的recovery.img 和boot.img 的打包格式跟其他平台(如高通、MTK、英伟达等)不一致,研究了半天终于将930HD的recovery替换了,步骤如下 1、用第三方工具root手机之…

报错:HttpMessageNotReadableException: JSON parse error: Unexpected end-of-input

问题: 测试接口发送请求时后端报错:org.springframework.http.converter.HttpMessageNotReadableException: JSON parse error: Unexpected end-of-input: expected close marker for Object (start marker at [Source: (PushbackInputStream); line: 1,…

Springboot 集成Druid

Springboot 集成Druid Druid是Java语言中最好的数据库连接池。Druid能够提供强大的监控和扩展功能。本篇主要讲解一下 Springboot中如何集成 Druid &#xff01; ​ 1.添加Druid依赖 <dependency><groupId>com.alibaba</groupId><artifactId>druid-s…

c++实现单门课程成绩管理系统

实验内容 实现一个单门课程成绩管理系统。进入系统时,用户可选择身份: 1.教师; 2 学生。 以教师身份进入后,如果上次已保存了数据,可将文件中数据读取出来,并 允许修改或添加新数据。如果为第一-次录入 (之前无保存的数据),则允许 教师. 录入相关数据。具体功能包括:…

6.12黄金何时走出区间震荡?后市如何布局

近期有哪些消息面影响黄金走势&#xff1f;下周黄金多空该如何研判&#xff1f; ​黄金消息面解析&#xff1a;周一(6月12日)亚市盘中&#xff0c;现货黄金维持震荡&#xff0c;金价现报1960美元/盎司。本周黄金交易员将迎来美国CPI数据以及美联储利率决议&#xff0c;预计将对…