转载自:http://ihacklog.com/post/use-hostapd-to-setup-wireless-access-point-under-linux.html,向作者表示感谢!
其实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/
Also see linuxwireless.org
Driver | 802.11 | Bus interface | WEP | WPA | WPA2 | Monitor mode | Master mode | Ad-Hoc mode |
---|---|---|---|---|---|---|---|---|
acx1xx | 802.11b, 802.11g | PCI, Mini PCI, PC card, USB | Yes | No | No | Yes | Yes | ? |
adm8211 | ? | PCI | ? | ? | ? | ? | No | ? |
ath5k | 802.11a, 802.11b, 802.11g | PCI, Mini PCI, PC card, AHB | Yes | Yes | Yes | Yes | Yes (since 2.6.31) | Yes |
ath9k | 802.11a, 802.11b, 802.11g, 802.11n | PCI, Mini PCI, AHB, PCI Express Mini Card | Yes | Yes | Yes | Yes | Yes | Yes |
b43 | 802.11b, 802.11g | PCI, Mini PCI, SDIO ? | Yes | Yes | Yes | Yes | Yes | Yes |
bcm43xx | 802.11b, 802.11g | PCI, Mini PCI, PC card, Cardbus | Yes | Yes | Yes | Yes | No | ? |
brcmsmac | 802.11b, 802.11g | ? | Yes | ? | Yes | Yes | No | No |
hostap | 802.11b | PCI, Mini PCI, PC card | Yes | Yes[17] | Yes[17] | Yes | Yes | Yes |
ipw2100 | 802.11b | Mini PCI | Yes | Yes | ? | Yes | ? | ? |
ipw2200 | 802.11a, 802.11b, 802.11g | Mini PCI | Yes | Yes | Yes | Yes | No | Yes |
ipw2200-ap | 802.11b, 802.11g | Mini PCI | ? | ? | ? | Yes | Yes | ? |
ipw3945 | 802.11a, 802.11b, 802.11g | Mini PCI, PCI Express Mini Card | Yes | Yes | Yes | Yes | No | Yes |
islsm | ? | PCI, USB | No | No | No | ? | No | ? |
iwlwifi | 802.11a, 802.11b, 802.11g | Mini PCI, PCI Express Mini Card | Yes | Yes | Yes | Yes | No | Yes |
iwlagn | 802.11a, 802.11g, 802.11n | Mini PCI, PCI Express Mini Card | Yes | Yes | Yes | Yes | No | Yes |
libertas | 802.11b, 802.11g | USB, CF, SDIO | ? | ? | ? | ? | No | ? |
MadWifi | 802.11a, 802.11b, 802.11g | PCI, Mini PCI, PC card | Yes | Yes | Yes | Yes | Yes | Yes some issues in HAL, outdoor sensitivity?[citation needed] |
orinoco | 802.11b | Mini PCI, PC card | Yes | Yes[18] | No | Yes | No | Yes |
p54 | 802.11b, 802.11g | Mini PCI, Cardbus, USB | Yes | Yes | Yes | Yes | Yes | Yes |
prism54 | 802.11b, 802.11g | PCI | Yes | No | ? | Yes | Yes | ? |
rndis_wlan | 802.11b, 802.11g | USB | Yes | Yes | Yes | No | No | Yes |
rt2x00 | 802.11b, 802.11g | PCI, Mini PCI, USB | Yes | Yes[19] | Yes[20] | Yes | Yes[21] | Yes |
rtl8180 | 802.11a, 802.11b, 802.11g | PCI, Mini PCI, PC card | ? | ? | ? | ? | Yes | ? |
rtl-wifi | 802.11a, 802.11b, 802.11g | PCI, Mini PCI, PC card | Yes | Yes | ? | ? | Yes | ? |
zd1201 | 802.11b | USB | Yes | No[22] | No[22] | Yes | Yes | ? |
zd1211 | 802.11a, 802.11b, 802.11g | USB | Yes | Yes | Yes | Yes | Yes | ? |
zd1211rw | 802.11b, 802.11g | USB | Yes | Yes | Yes | Yes | Yes[23] | Yes |
我的网卡是没戏了,下面的部分给需要的人看吧。。。
看了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= 1 |
要想即时生效的话,直接用下面这句吧(以root身份执行):
1
|
echo
1
>/proc
/sys
/net
/ipv4
/ip_forward
|
hostapd docs: http://hostap.epitest.fi/hostapd/