Debian 7.2 创建无线热点的过程及方法

原创
运维 系统运维
不论是Windows以及Linux都可以通过该网卡来实现传统意义的应用以及实现无线AP的应用,笔者的办公主机使用了Debian作为主机操作系统,尽管Debian中已经提供了Hostapd的软件源,但因为版本为1.0,在创建完热点后存在掉线、访问视频网站超时等诸多问题。重新部署无线AP,编译安装Hostapd 2.0后,这个问题得到解决。

【51CTO专稿】随着无线网络的不断普及,目前使用传统计算机无线网卡将其通过软件设置成为无线热点这一应用已经成为了很多计算机用户的日常网络应用需求之一,比如360公司出品的随身360WIFI设备就可以在Windows环境中非常方便的将接入网络的计算机通过软件方式变成一个AP访问接入点来提供对移动设备的无线网络接入支持。但笔者实际测试中发现该设备只能提供单一AP功能,在某些时候需要当无线网卡使用时又成为了一个弊端。而很多无线网卡实际上已经提供了双向应用的硬件层面的支持。

不论是Windows以及Linux都可以通过该网卡来实现传统意义的应用以及实现无线AP的应用,笔者就曾在自己的笔记本中使用Fedora 18中的Hostapd创建了无线AP作为非常方便的无线AP接入解决方案。因为笔者的办公主机使用了Debian作为主机操作系统,尽管Debian中已经提供了Hostapd的软件源,但因为版本为1.0,在创建完热点后存在掉线、访问视频网站超时等诸多问题。笔者查阅了很多网站,发现国外有网友已经将Hostapd 1.0中存在的相关问题进行了详细描述,原因是Hostapd 1.0及以前版本中存在BUG,导致创建的无线AP无法达到真正80211G/N的有效带宽,导致网络无线网络拥塞,无法正常使用。该BUG在2.0中已经得到了修补和更新。

为此笔者在Debian 7.2中使用手工编译Hostapd重新部署无线AP,通过手工编译安装最新版的Hostapd2.0,以上问题已经得到彻底解决,用笔记本连接创建的无线AP,实际网速可以达到72Mb/s。编译及配置过程如下:

一、实验环境:

  • 操作系统:Debian 7.2
  • 内核版本:3.2.51-1
  • 无线网卡型号:腾达W311M

二、无线AP创建过程:

1、首先在终端下使用命令apt-get install hostapd及apt-get isntall dnsmasq安装源提供的hostapd及dnsmasq软件组件包。安装hostapd组建包其实是为了下一步编译最新的hostapd并使用/etc/init.d/hostapd来对其进行启动管理。而dnsmasq将为无线AP接入客户端提供动态IP地址分配,以方便客户端IP地址管理。

2、下载hostapd软件包,访问http://hostap.epitest.fi/hostapd/找到hostpad-2.0.tar.gz并点击进行下载,也可以在在终端模式下使用命令wget http://hostap.epitest.fi/releases/hostapd-2.0.tar.gz直接进行下载,之后进入下载目录使用tar -zxvf hostapd-2.0.tar.gz进行解压缩操作,之后系统会在当前目录中生成hostapd-2.0目录。

3、安装编译,进入hostapd-2.0/hostapd目录中,首先使用cp defconfig .config创建编译时需要的配置文件,使用vi .config编辑该文件并找到CONFIG_IEEE80211N=y 行,将前面的注释"#"删除,使hostpad支持80211N协议。使用make进行编译,期间将报如下错误:

  1. ../src/drivers/driver_nl80211.c:19:31:fatalerror:netlink/genl/genl.h: 没有那个文件或目录 

这时需要使用命令apt-get install libnl-dev来安装需要的支持库头文件,之后再次执行make命令,系统将报如下错误:

../src/crypto/tls_openssl.c:17:25: fatal error: openssl/ssl.h:  没有那个文件或目录

这时需要使用命令apt-get install libssl-dev来安装需要的openssl支持库头文件,之后再次执行make命令,系统将顺利编译hostapd。之后使用命令make install进行安装,系统将会自动将最新版的hostapd安装在目录/usr/local/bin中。在终端中执行/usr/local/bin/hostapd -v,系统如果能返回如下信息:

  1. hostapd v2.0 
  2. User space daemon for IEEE 802.11 AP management, 
  3. IEEE 802.1X/WPA/WPA2/EAP/RADIUS Authenticator 
  4. Copyright (c) 2002-2012, Jouni Malinen <j@w1.fi> and contributors 

说明hostapd2.0已经顺利安装成功。

4、配置及修改相关配置文件,在终端中使用命令vi /etc/init.d/hostapd打开hostapd程序 启动管理脚本,找到DAEMON_SBIN=/usr/sbin/hostapd ,将其修改为:DAEMON_SBIN=/usr/local/bin/hostapd ,修改的目的在于系统脚本在启动时原本是执行/usr/sbin下的hostapd程序(也就是源安装之后默认的hostapd1.0版主程序);经过修改,系统脚本在启动时会去执行我们手工编译生成的/usr/local/bin/hostapd主程序(也就是我们手工编译后安装的hostapd2.0版主程序),这样我们就不用每次启动新安装的Hostapd时去手工执行/usr/local/bin/hostapd -B /etc/hostapd/hostapd.conf命令了。可以方便无线AP的开启和关闭。关于Dnsmasq的配置文件,其实网络上已经有很多,有兴趣的爱好者们也可以参考笔者之前的《Linux中使用hostapd创建无线AP及相关问题的处理过程》一文,有较为详细的描述。之后可以使用命令vi /etc/hostapd/hostapd.conf对hostapd的配置文件进行配置,内容如下:

  1. # Basic configuration 
  2. interface=wlan2 
  3. ssid=CMCC 
  4. channel=7 
  5. #bridge=br0 
  6. # Hardware configuration 
  7. driver=nl80211 
  8. ieee80211n=1 
  9. ht_capab=[HT40-][SHORT-GI-20][SHORT-GI-40] 
  10. hw_mode=g 
  11. wpa=2 
  12. wpa_passphrase=AKCWDDSS21152 
  13. macaddr_acl=0 
  14. auth_algs=1 
  15. ignore_broadcast_ssid=0 
  16. wpa_key_mgmt=WPA-PSK 
  17. wpa_pairwise=TKIP 
  18. rsn_pairwise=CCMP 

其中需要特别说明的是ht_capab这行参数其实就是针对开启80211N硬件控制的,以上参数我们可以通过在终端模式下使用iw list进行查找。

2.5、创建无线AP的启动和停止脚本,为了我们以后方便的开启和关闭无线AP,避免每次启动和停止无线AP时需要敲击相同的命令,我们可以在/etc/init.d/目录中创建两个新的脚本,为了记忆方便启动脚本名为startAP,另一个脚本名为stopAP。

StartAP脚本内容如下:

  1. #! /bin/bash 
  2. sed -i '/\[keyfile\]/a unmanaged-devices=mac:c8:3a:35:cc:8e:59' /etc/NetworkManager/NetworkManager.conf 
  3. sleep 1 
  4. ifconfig wlan2 192.168.11.1 netmask 255.255.255.0 
  5. sleep 1 
  6. echo "1" >/proc/sys/net/ipv4/ip_forward 
  7. sleep 1 
  8. iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE 
  9. sleep 1 
  10. /etc/init.d/hostapd start 
  11. sleep 1 
  12. /etc/init.d/dnsmasq start 

其中 unmanaged-devices=mac:c8:3a:35:cc:8e:59中的c8:3a:35:cc:8e:59为你的无线网卡的实际地址,这是为了解决启动hostapd系统会报类似如下错误。

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

导致LINUX系统无法创建无线AP必须要将该无线网卡在netmanager网络管理工具中设置为未托管模式。

ifconfig wlan2 192.168.11.1 netmask 255.255.255.0命令将为作为无线AP的网卡设置IP地址。

echo "1" >/proc/sys/net/ipv4/ip_forward 命令将会打开Linux主机的IP转发功能。

iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE命令就是在防火墙中启用NAT功能。经过以上几步客户端接入设备就可以顺利工作了。

stopAP脚本内容如下:

  1. #! /bin/bash 
  2. /etc/init.d/dnsmasq stop 
  3. /etc/init.d/hostapd stop 
  4. sleep 1 
  5. iptables -t nat -D POSTROUTING -o ppp0 -j MASQUERADE 
  6. sleep 1 
  7. echo "0" >/proc/sys/net/ipv4/ip_forward 
  8. sleep 1 
  9. sed -i '/^unmanaged-devices=mac:c8:3a:35:cc:8e:59/d' /etc/NetworkManager/NetworkManager.conf 

其作用将关闭无线模拟AP,并将无线网卡交由netmanager网络管理工具进行托管,这样我们就可以将其最为传统的无线网卡进行使用来访问网络。

写在最后:80211AC以及80211AD网络规范已经发布了一段时间了,使用这两个网络规范的无线网络设备,我们可以更容易的组成一个自主的无线通讯网络,也许在不久的将来,我们的无线网络都将是一种双通道可进可出模式,既可以作为一个设备本身的网络数据出口又可以成为网络数据的入口。我们在有限范围内也许可以彻底的甩掉必须需要使用一个无线AP才能使无线节点进行数据交换的模式。那样的话无线网络将会更酷。可喜的是笔者在编译Hostapd时,其编译的配置文件中已经包含了对80211AC的支持。

责任编辑:黄丹 来源: 51CTO.com
相关推荐

2010-04-19 10:57:05

创建无线热点

2010-01-13 09:52:38

Linuxdebian

2013-11-04 10:51:49

2010-03-08 09:29:09

Linux Debia

2010-10-26 09:35:09

2010-03-30 17:54:05

无线热点地区

2010-10-29 16:33:45

ORACLE存储过程

2010-04-21 10:37:02

Oracle创建

2019-07-24 08:34:35

Java对象数据结构

2013-10-17 10:38:48

2010-07-20 08:58:28

Perl类

2010-11-24 16:35:01

MYSQL命令行

2009-08-05 14:45:56

VC中DLL的创建及调

2011-07-29 13:36:03

2011-09-06 14:16:53

无线网络无线数据技术

2010-03-04 13:19:37

Linux Debia

2010-04-16 10:11:20

Oracle存储过程

2010-11-19 09:48:48

ORACLE创建实例

2009-11-18 09:33:24

2010-09-07 10:42:05

无线网络无线交换机瘦AP的模式
点赞
收藏

51CTO技术栈公众号