Linux下用hostapd架无线AP
Published by 荒野无灯 on 2011-10-08 00:56:02 under 服务器/MySQL Tags: 路由,无线AP,hostapd 34452 views
本文将介绍在linux下面用笔记本无线网卡架设无线AP。
在win7下面用“承载网络”让爪机上wifi真是爽YY啊。
其实linux下面也是可以的,不过得看运气了。正如windows7下面要求你的无线网卡驱动必须支持“承载网“一样。
首先,查看网卡芯片信息:
对于pci网卡:
|
1
|
lspci
|
我的是:
|
1
|
03:00.0 Network controller: Intel Corporation PRO/Wireless 5100 AGN [Shiloh] Network Connection
|
对于USB网卡:
|
1
|
lsusb
|
然后用ifconfig -a 看下你有哪几块网卡。
ethtool这个工具可用来查看网卡的详细信息:
|
1
2 3 4 5 6 7 8 9 |
[admin@huangye ~]$ ethtool -i wlan0
driver: iwlagn version: 3.0-ARCH firmware-version: 8.83.5.1 build 33692 bus-info: 0000:03:00.0 supports-statistics: no supports-test: no supports-eeprom-access: no supports-register-dump: no |
可以看到我的网卡目前用的驱动是iwlagn,此驱动是由intel开发的。
debian wiki 有关于此驱动的描述:http://wiki.debian.org/iwlagn
下面一步才是关键:
这一步用于确定你的无线网卡是否支持”master mode”,也就是AP模式,如果不支持的话,下面的你不用看了,基本没戏了。。。
我们先用这个来测试:
|
1
2 3 4 |
[admin@huangye ~]$ sudo iwconfig wlan0 mode master
Password: Error for wireless request "Set Mode" (8B06) : SET failed on device wlan0 ; Invalid argument. |
可以看到这里操作失败了。
还有机会。。。有些新的网卡用的是mac80211 framework,对于这些网卡的话,用iwconfig来测试它是否支持master模式是行不通的。
因为他们是使用新的 nl80211接口在用户空间通信的.
如果你没有iw这个新的无线网卡配置工具的话,你得先安装一个。
运行
|
1
|
$ iw list
|
如果”Supported interface modes”中有AP的话,那么恭喜,你的网卡支持用hostapd来架设软AP.
|
1
2 3 4 |
Supported interface modes:
* IBSS * managed * monitor |
可以看到我的杯具了,不支持。。。
还不死心的话,这里有一个列表,列出各种网卡的信息,可以看到 iwlagn的驱动不支持master模式的。。。杯具啊
Comparison of open-source wireless drivers
Intel 无线网卡驱动官方网站:http://intellinuxwireless.org/
Driver capabilities
Also see linuxwireless.org
![]()
我的网卡是没戏了,下面的部分给需要的人看吧。。。
看了roylez的文章,他推荐一款支持master模式的网卡Mercury MW150u(MERCURY MW150U 150M无线USB网卡).
看看吧,可能我得买一块这个来喽。。。 ![]()
下面是roylez对此网卡的描述,个人认为很有必要把它摘抄下来供各位参考:
这款网卡采用AR9271芯片,Linux下用ath9k_htc驱动(内核自带)。支持AP模式,支持monitor模式。有monitor模式,就可以和aircrack-ng搭配了破解无线网路密码,有AP模式,就可以用来自架AP。ath9k_htc驱动目前不支持150M模式,不过这已经很次要了。卓越27包邮,杀人放火居家旅行必备。另外值得一提的是, 这款网卡还有个马甲是Fast FW150u。
如果你用的是Atheros系列的网卡的话,得装Madwifi.
以ubuntu系统为例:
wget http://downloads.sourceforge.net/madwifi/madwifi-0.9.4.tar.gz
tar -xvzf madwifi-0.9.4.tar.gz
cd madwifi-0.9.4
sudo apt-get install build-essential linux-headers-server
sudo make
sudo make install
sudo vim /etc/modprobe.d/madwifi
然后添加下面这行让你的网卡工作在master模式:
|
1
|
options ath_pci autocreate=ap
|
热加载此module :
|
1
|
sudo modprobe ath_pci
|
基于mac80211的驱动:
其它几个这里不说了,自己去WifiDocsMasterMode 看。
Intel PRO/Wireless (ipwXXXX) series
For ipw2100/ipw2200, unfortunately there is no way to use
them as AP, but this can be done for ipw3945 and ipw4965, maybe ipw2915
too, which are pretty good cards anyway, using fully open-source
iwlwifi drivers, but it can’t be done with old Intel drivers with closed
microcode.
下面是安装hostapd了,以archlinux为例:
|
1
|
sudo pacman -S --needed hostapd
|
然后就是配置了,我偷懒直接用roylez的:
安装hostapd,修改/etc/hostapd/hostapd.conf。这是一个WPA-PSK的配置,用hostapd -d /etc/hostapd/hostapd.conf来测试配置是否可用。
|
1
2 3 4 5 6 7 8 9 10 11 12 |
interface=wlan1
driver=nl80211 ssid=vlad_is_here channel=6 hw_mode=g ignore_broadcast_ssid=0 auth_algs=1 wpa=3 wpa_passphrase=xxxxxxxx wpa_key_mgmt=WPA-PSK wpa_pairwise=TKIP rsn_pairwise=CCMP |
为无线网卡指定IP
|
1
|
sudo ifconfig wlan0 192.168.100.1 netmask 255.255.255.0
|
启动hostapd服务
|
1
|
sudo /etc/rc.d/hostapd start
|
安装配置dhcp,这里,如果你装了pdnspd 或者 dnsmasq 的话就不用再安装dhcp了。
iptalbes设置nat
|
1
|
sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
|
启用内核转发功能:
|
1
2 |
sudo vim /etc/sysctl.conf
net.ipv4.ip_forward= |
要想即时生效的话,直接用下面这句吧(以root身份执行):
|
1
|
echo 1 >/proc/sys/net/ipv4/ip_forward
|
hostapd docs: http://hostap.epitest.fi/hostapd/
部分回复:
我的笔记本是使用的 Intel Pro/Wireless 4965AGN 无线网卡,Linux 里使用的 iwlegacy::iwl4965 驱动程序,默认使用 iw list 查询接口也是不支持 AP 模式的,我修改了一下内核驱动程序后,可以支持了,hostapd 服务也可以正常启用,在IP地址分配后从笔记本可以 ping 通手机客户端,但问题是手机客户端持续的断开、重连、断开、重连。。。
openSUSE利用hostapd共享wifi建立软AP | FQ BLOG 2012-04-09 16:08:34 | edit | 回复
荒野无灯 2012-03-22 10:21:38 | edit | 回复
是的,出口应该用eth0.多谢提醒,已修改。
whenov 2012-03-22 08:50:28 | edit | 回复
iptables规则一条就够了,不过文章中写错了,应当是:
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
eth0应为你能连外网的网卡。coldfire
2011-12-25 04:18:38 | edit |
回复我找到原因了,你是对的哈
coldfire
2011-12-25 03:49:47 | edit |
回复万分感谢,很有用。
不过
“iptalbes设置nat”
似乎还得加点才能成功上网,我是这样弄的,完美表现ifconfig wlan0 10.0.0.1 netmask 255.0.0.0
/etc/rc.d/hostapd start
iptables -A FORWARD -i wlan0 -o eth0 -s 10.0.0.0/24 -m state --state NEW -j ACCEPT
iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -t nat -A POSTROUTING -o wlan0 -j MASQUERADE
echo 1 >/proc/sys/net/ipv4/ip_forward
Linux下用hostapd架无线AP的更多相关文章
- win10与Ubantu双系统:Linux下开启FTP服务器与创建无线热点(实现文件共享)
如何在win系统下使用filelizza这个软件搭建FTP服务器,然后建立一个无线局域网,让平板终端连接以后,访问电脑硬盘的文件. 如果是只在win7环境下,一切都很简单,按照上文提供的教程就可以实现 ...
- win7下利用笔记本无线网卡创建AP 组建无线局域网(可以连魔兽,TCP、UDP也没问题)
转自:http://blog.163.com/fghok_018/blog/static/122599670201072773924530/ 近一个月,宿舍的好多同学都买了笔记本电脑,当然,我也买了, ...
- 扔掉360:Linux下无线网卡作WiFi路由器(转薄荷开源网)
这个话题很多人感兴趣,毕竟现在是无线互联时代.手机一族到外面去,首先关心的就是有没有 WiFi.Windows 7 用户可以安装 360 的软件,把笔记本电脑配置成路由器,供手机或其他电脑上网. 在 ...
- 渗透测试思路 | Linux下自动化搭建FakeAP,劫持用户在Portal认证下的所有流量
如何在linux下搭建一个fakeap,使得portal认证下的用户无法发现连接你的假AP,并且能够正常上网.先说一下portal认证.无线WIFI认证方式主要有wpa2 和 open两种,而port ...
- 腾达Tenda W311MA无线网卡Linux下驱动安装
菜鸟看这里https://help.ubuntu.com/community/WifiD ... enda_W311M 最近也买了颗Tenda W311M网卡,简单说一下驱动的安装和hostapd做S ...
- Linux下Wi-Fi的实现:wireless_tools和wpa_supplicant
平台为hi35XX,在Liunx下借助wireless_tools和wpa_supplicant(因为现在的无线WIFI网络大多是wpa加密.所以需要移植wpa_supplicant工具)等工具实现w ...
- 如何在Linux下写无线网卡的驱动【转】
转自:http://www.crifan.com/files/doc/docbook/linux_wireless/release/html/linux_wireless.html 版本:v0.3 H ...
- [svc][dhcp]关于无线ap自动发现选项dhcp option43配置
有人问到option43的问题,查了点资料.总结了下win和linux的option43的配置: windows2003 http://www.h3c.com.cn/Service/Channel_S ...
- linux下使用无线网卡的命令行方法(wifi,iwconfig)
原文地址:linux下使用无线网卡的命令行方法(wifi,iwconfig) 作者:andyhzw (1)首先关闭开发板的有线网卡 [root@FriendlyARM /]# ifconfig eth ...
随机推荐
- 【C++基础】 各种“虚”总结(ing...)
虚基类,虚函数,虚析构函数,纯虚函数,虚函数表(待补充) 一.虚基类——在继承方式(public / private)之前加 virtual class B1: virtual public B0{} ...
- mysql 查询重复值命令
积累备忘啊: ; 从t_maintenanceinfo表查询重复记录的mtiId 和ip字段,以及重复条数
- org.apache.http.ProtocolException: Target host is not specified
对于httpClient4.3访问指定页面,可以从下面的demo抽取方法使用. 注意:对于URL必须使用 http://开始,否则会有如下报错信息: Caused by: org.apache.htt ...
- (转)linux 技巧:使用 screen 管理你的远程会话
转自:http://www.ibm.com/developerworks/cn/linux/l-cn-screen/index.html 你是不是经常需要 SSH 或者 telent 远程登录到 Li ...
- 【HDOJ】3948 The Number of Palindromes
后缀数组求不重复回文子串数目.注意dp数组. /* 3948 */ #include <iostream> #include <sstream> #include <st ...
- C语言中的位拷贝与值拷贝浅谈(转载)
注:C语言实现的PHP变量的赋值过程中,就涉及到了 深拷贝和浅拷贝 位拷贝拷贝的是地址(也叫浅拷贝),而值拷贝则拷贝的是内容(深拷贝).深拷贝和浅拷贝可以简单理解为:如果一个类拥有资源,当这个类的对象 ...
- poj2436,poj3659,poj2430
这两题都体现了dp的核心:状态 dp做多就发现,状态一设计出来,后面的什么都迎刃而解了(当然需要优化的还要动动脑筋): 先说比较简单的: poj2436 由题得知病毒种数<=15很小,于是我们就 ...
- APIO2012派遣
2809: [Apio2012]dispatching Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 1196 Solved: 586[Submit ...
- android源码GIT下载
mkdir device cd device git clone https://android.googlesource.com/device/common.git mkdir htc cd htc ...
- JAVA分布式事务原理及应用
JTA(Java Transaction API)允许应用程序执行分布式事务处理--在两个或多个网络计算机资源上访问并且更新数据.JDBC驱动程序的JTA支持极大地增强了数据访问能力. 本文的目的是要 ...