用hostapd和树莓派架设自己的无线AP

转载自:http://www.log4cpp.com/smarthome/14.html

最近在通过树莓派和arduino做智能家居,想用树莓派作为服务器,arduino通过wifi接入。我的树莓派没有板载wifi,据说可以通过一个支持monitor模式的无线网卡来提供ap功能,在某宝认真的翻了一段时间,发现树莓派专用的都不便宜,怎么办呢?想起来之前有一个Mercury MW150U和一个360wifi,想先试试吧,不行再买。

把MW150U插在树莓派上,过了几秒无线网卡上红色的灯亮了。。。灯亮了。。。亮了。。。了,太出乎意料了,这说明树莓派已经内置了驱动。

问了一下度娘,MW150U这款网卡采用AR9271芯片,Linux下用ath9k_htc驱动(内核自带)。支持AP模式,支持monitor模式。有monitor模式,就可以和aircrack-ng搭配了破解无线网路密码,有AP模式,就可以用来自架AP。ath9k_htc驱动目前不支持150M模式,不过这已经很次要了。杀人放火居家旅行必备。另外值得一提的是, 这款网卡还有个马甲是Fast FW150u。只是我这网卡是五六年前买的,不知道各位还能不能买到了。。。。。

下面才是正题。

网上配置hostapd很乱,有的已经过时了。我走了不少弯路,花了几个小时才弄好。

  • 误区一:driver写上了网卡自己的驱动,比如ath9k_htc。这个已经out了,只要是符号80211n规范的网卡,都可以写网卡驱动之上更通用的一个叫做nl80211的东东的。
  • 误区二:配置br0来桥接无线网卡。br0在各个不同的发行版里面的配置方法都不一样,唯一相同的是不好配。而且这个我只看到用来桥接有线和无线的。两个无线网卡进行桥接能不能行还不知道。iptables转发规则要简单的多。
  • 误区三:不配dhcp。kindle用静态ip比用dhcp麻烦多了,输几个数字要死人的。
  • 误区四:dhcp没有配DNS。dhcp不配DNS,kindle是会果断拒绝连接的。

配置文件就没什么好说的了。以下以archlinux为例

  1. 安装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
    
  2. 起hostapd服务

     sudo /etc/rc.d/hostapd start
    
  3. 为新无线网卡指定IP

     sudo ifconfig wlan1 10.10.10.1 netmask 255.255.255.0
    
  4. 安装配置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;
     }
    
  5. 起dhcpd服务

     sudo /etc/rc.d/dhcp4 start
    
  6. 安装iptables,增加转发规则。这里我要把流量转发到wlan0

     sudo iptables -t nat -A POSTROUTING -o wlan0 -j MASQUERADE
    

收工!我发给kindle的书哗哗的就来了。

posted @ 2017-06-05 11:31  透明1190  阅读(924)  评论(0编辑  收藏  举报