首页 > 代码库 > 用hostapd自己架无线AP
用hostapd自己架无线AP
最近买了一只kindle,颇为不错的东西。住的地方的路由器却跟kindle兼容性不太好,kindle怎么也连不上wifi。 怎么办?Kindle3是不支持ad-hoc无线网络的,所以这条路就绝了。我先是想到去买一只无线路由器,蹭网中继邻 居家的信号给kindle用。于是去买了一只 Fast FW300R V2 。 东西还没寄到,cfy在聊天室里提醒了我:其实,普通的无线网卡是可以拿来做AP用的,master mode,跟路由一样,不是ad-hoc。 这样的话,用无线网卡模拟出来一个路由信号不就可以了吗?只不过我笔记本的内置无线网卡是需要拿去连家里的路由器的,所以我需要一只外置的usb无线网卡。
把路由器处理给了 Meaculpa 之后就开始选网卡。挑来挑去最后选中了 Mercury MW150u 。
这款网卡采用AR9271芯片,Linux下用ath9k_htc驱动(内核自带)。支持AP模式,支持monitor模式。有monitor模式,就可以和aircrack-ng搭配了破解无线网路密码,有AP模式,就可以用来自架AP。ath9k_htc驱动目前不支持150M模式,不过这已经很次要了。卓越27包邮,杀人放火居家旅行必备。另外值得一提的是, 这款网卡还有个马甲是Fast FW150u。
下面才是正题。
网上配置hostapd很乱,有的已经过时了。我走了不少弯路,花了几个小时才弄好。
- 误区一:driver写上了网卡自己的驱动,比如ath9k_htc。这个已经out了,只要是符号80211n规范的网卡,都可以写网卡驱动之上更通用的一个叫做nl80211的东东的。
- 误区二:配置br0来桥接无线网卡。br0在各个不同的发行版里面的配置方法都不一样,唯一相同的是不好配。而且这个我只看到用来桥接有线和无线的。两个无线网卡进行桥接能不能行还不知道。iptables转发规则要简单的多。
- 误区三:不配dhcp。kindle用静态ip比用dhcp麻烦多了,输几个数字要死人的。
- 误区四:dhcp没有配DNS。dhcp不配DNS,kindle是会果断拒绝连接的。
配置文件就没什么好说的了。以下以archlinux为例
-
安装hostapd,修改
/etc/hostapd/hostapd.conf
。这是一个WPA-PSK的配置,用hostapd -d /etc/hostapd/hostapd.conf
来测试配置是否可用。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
-
起hostapd服务
sudo /etc/rc.d/hostapd start
-
为新无线网卡指定IP
sudo ifconfig wlan1 10.10.10.1 netmask 255.255.255.0
-
安装配置dhcp,
/etc/dhcpd.conf
如下default-lease-time 600; max-lease-time 7200; subnet 10.10.10.0 netmask 255.255.255.0 { range 10.10.10.10 10.10.10.100; option routers 10.10.10.1; option domain-name-servers 8.8.8.8; option ip-forwarding off; option broadcast-address 10.10.10.255; }
-
起dhcpd服务
sudo /etc/rc.d/dhcp4 start
-
安装iptables,增加转发规则。这里我要把流量转发到wlan0
sudo iptables -t nat -A POSTROUTING -o wlan0 -j MASQUERADE
收工!我发给kindle的书哗哗的就来了。
用hostapd自己架无线AP