空无以求全
宁静以致远
当前位置:首页 > .html

LINUX下设置SoftAP hostapd

作者:大熊空间发布时间:2022-02-19 17:09分类: 浏览:239评论:0


导读:LINUX下设置SoftAP??1、?安装虚拟机,linux系统,如fedora15系统。2、?在linux系统下,首先wifi模块驱动,wifi灯亮但是一直连接不上网,需要安装A...



LINUX下设置SoftAP??







1、?安装虚拟机,linux系统,如fedora15系统。

2、?在linux系统下,首先wifi模块驱动,wifi灯亮但是一直连接不上网,需要安装AR9271的linux版本驱动

下载网址:?http://wireless.kernel.org/download/compat-wireless-2.6/compat-wireless-2.6.tar.bz2

执行su,在root用户下执行以下安装指令:

# tar -jxvf compat-wireless-2.6.tar.bz2

# cd compat-wireless-2010-10-04

# ./scripts/driver-select ath9k_htc

# make

# make install

# reboot

3、?安装无线配置工具iw

执行yum?install iw

 

使用以下指令

$lsusb 查看是否插上usb设备

$lwconfig 查看无线网络配置器,看是否存在wlan0

$iwlist 查看是否支持AP功能

 

 



接下来看看是否能够正常上网,将有线网断开,只使用无线网,找到SSID:admin,输入密码:admin,如下图可以正常上baidu.com,说明可以上网。

 

Wifi模块可以正常工作,接下来设置为soft-AP模式,软ap就是用无线网卡模拟无线路由器。

4、?设置为soft-AP模式

首先要下载安装一个hostapd,?hostapd的功能就是作为AP的认证服务器,负责控制管理stations(通常可以认为带无线网卡的PC)的接入和认证,简单说,hostapd能够使得无线网卡切换为Master和AP模式,AP模式即模拟AP(通常可以认为是路由器)功能,也就是我们说的软AP(Soft AP)。

具体操作方法:通过Hostapd可以将无线网卡切换为AP/Master模式,通过修改配置文件,可以建立一个开放式的(不加密)的,WEP,WPA或WPA2的无线网络。并且通过修改配置文件可以设置无线网卡的各种参数,包括频率,信号,beacon包时间间隔,是否发送beacon包,如果响应探针请求等等。还可以设置mac地址过滤条件等。具体可以参考它的配置文件说明

具体操作过程:

1、?在http://w1.fi/hostapd/?download中下载hostapd0.7.3

$tar -zxvf?hostapd?0.7.3

$ cd?/hostap0.7.3/hostapd

$ cp defconfig .config

$ vi .config

按i键,配置#CONFIG_DRIVER_NL80211=y,去掉最前面的#,按Esc退出insert模式,输入:wq,保存退出。

在root用户下,make hostapd

会出现以下错误:

 

参考网页:http://wireless.kernel.org/en/users/Documentation/hostapd?action=show&redirect=RTFM-AP

得知是没有缺少libnl-1.0pre8或更高级版本的网络连接协议的库文件。

libnl是为了方便应用程序使用netlink接口而开发的一个库,这个库为原始netlink消息传递以及不同的netlink family专用接口提供了一个统一的接口。

下面网址下载安装libnl1.1库

http://www.infradead.org/~tgr/libnl/files/libnl-1.1.tar.gz

执行以下指令:

$tar?–zxvf libnl-1.1.tar.gz

$./configure???安装配置文件

$make编译得到libnl库

#make install??在root用户下安装

 

在make编译那一步出现以下错误:

 

在编译的时候,../include/netlink-local.h:218: error: ‘ULONG_MAX’ undeclared (first use in this function)的错误。

解决方法就是在/include/netlink-local.h的28行加一个头文件:

#include <limits.h>,没有错误能够编译出./lib/libnl.so和./lib/libnl.so.1

 

 

安装libnl1.1完毕后,重新编译hostapd执行make后,还会出现以下错误,说明没有openssl。

 

openssl 软件包包含c_rehash,?openssl,?libcrypto和?libssl. 它们为别的软件例如OpenSSH 和 web browsers(用于加密的https网页)提供加密支持。下载网址:http://lfs.linuxsir.org/htdocs/blfs/general/openssl.html

参照以上网址进行安装,过程如下:

$tar?–zxvf openssl.0.9.7a.tar.gz

$cd openssl.0.9.7a

#sed 's/^passwd/openssl-passwd/' doc/apps/passwd.pod??doc/apps/openssl.pod

#rm doc/apps/passwd.pod

#./Configure linux-elf??--openssldir=/etc/ssl?--prefix=/usr shared

#make MANDIR=/usr/share/man

#make MANDIR=/usr/share/man install

#rmdir /etc/ssl/lib

 

执行这一步$./Configure linux-elf??--openssldir=/etc/ssl?--prefix=/usr shared?会出现以下错误:

这是因为Configure命令用的是 -m486 而不是 -march=i486. 要解决这个问题,就使用 linux-ppro,linux-pentium 或 linux-k6 (根据你的计算机架构来决定), 而不是 linux-elf。使用linux-pentium重新编译即可,没有错误。

 

指令说明:

rm doc/apps/passwd.pod :我们用这个命令是因为 openssl会安装它的passwd(密码)man手册在我们不希望它安装的地方.

make MANDIR=/usr/share/man

make MANDIR=/usr/share/man install

这两个命令安装openssl 的man文件在 /usr/share/man 而不是原来默认的/etc/ssl/man.

rmdir /etc/ssl/lib :这就是一个简单的整理命令.因为openssl 安装时产生了一个/etc/ssl/lib目录,尽管库文件安装在了/usr/lib.把它删掉是我们的系统更加简洁!

 

安装libnl1.1完毕后,重新编译hostapd执行make后,还会出现以下错误。

 

解决方法:

为文件srccrypto ls_openssl.c在第30行添加头文件

#include <openssl/evp.h> //openssl里面的头文件

为文件srcdriversdriver_nl80211.c添加头文件

#include <linux/genetlink.h>

 

执行make clean重新编译hostapd执行make后,没有错误,在hostapd文件夹中,生成hostapd hostapd和hostapd_cli两个可执行文件。

 

下面修改
/etc/hostapd/hostapd.conf
,这是一个WPA-PSK的配置,
典型hostapd.conf文件

interface=wlan0

driver=nl80211

ssid=mySoftAp

channel=1

hw_mode=g

ignore_broadcast_ssid=0

auth_algs=1

wpa=3

wpa_passphrase=12345678 (8位到63位)

wpa_key_mgmt=WPA-PSK

wpa_pairwise=TKIP

rsn_pairwise=CCMP


发表评论: