转载自:http://laoniangke.com/pi/2013/06/29/pi-wifi-ap.html
下面是一个英文帖子,应该是原帖,推荐看原帖:
https://learn.adafruit.com/setting-up-a-raspberry-pi-as-a-wifi-access-point/install-software
说明:
我在转载的同时,补充了一丁点内容,为的是方便需要的朋友使用,希望原帖的作者不要介意。
转载这篇文章本来是因为要为rapberry pi配置ap,使用了本文的配置方法,配置成功。
后来由于需要,要在Ubuntu上配置ap,于是也使用了本文的方法,做了一点改动,也配置成功。
在后面的配置过程中,raspberry pi上的配置和Ubuntu上的配置不一样的地方,仅两处,我会注明,使用时请注意。
在Ubuntu14.04上配置一直不成功,以后有时间会再尝试,若成功了会贴出来。
hostapd的相关信息,可以参考:https://wireless.wiki.kernel.org/en/users/documentation/hostapd
在Ubuntu上配置的时候,如果需要自己编译hostapd,可以参考:http://blog.csdn.net/hnllc2012/article/details/49151137
系统环境:Ubuntu12.04 Desktop
测试网卡:nimitz NT_WU150M、bl-lw06-ar1、tl-wn821n
系统环境:Raspberry Pi
测试网卡:bl-lw06-ar1、tl-wn821n
Raspberrp Pi配置WiFi部分:
之前使用过将笔记本电脑的无线网卡设置成ap,给家里的iPhone,ipad和安卓手机提供wifi链接。但是每次必须得开着笔记本,这个极不方便又不节能,所以买了个迷你的无线路由器。最近在网上看到树莓派改造成无线ap的文章自己也尝试了下,效果还不错。之前的迷你路由器信号不是很强,这样就可以放置在不同的房间提供wifi了。
需要的硬件:树莓派一个,路由器一个,SD卡,无线网卡
SD卡烧的系统是wheezy-raspbian,无线网卡的型号是“B-LINK BL-LW06-AR1” RTL8192CU芯片
系统初始化安装的过程,网上很多这边就不描述了。先讲讲如何使用无线网卡连接无线网络,测试网卡是否正常工作。 查看usb设配,看列表中是否有无线网卡
其中Bus 001 Device 004: ID 0bda:8178 Realtek Semiconductor Corp. RTL8192CU 802.11n WLAN Adapter代表的就是无线网卡被系统识别,芯片是RTL8192CU
内容替换为:
如果有以太网网线连接,则优先采取DHCP自动连接。如果有名为hisen的WIFI网络,则采取DHCP自动连接。
此时查看ifconfig,其中wlan0的inet addr还是没有IP地址的。拔掉以太网网线
在进行AP的配置之前,可以先查看网卡是否支持AP模式(Ubuntu适用)
运行命令:Iw list
找到“Supported interface modes: “,查看是否有AP,若有AP,则支持AP模式;若没有,则不支持AP模式(只能换网卡了)。
接下来部分为Raspberry Pi和Ubuntu12.04 AP配置部分:
前面加上#,修改成
找到
去掉authoritative前面的#,修改成
并在文件底部加上以下代码,并保持退出
配置说明:
authoritative:如果这台 DHCP 服务器是网络中的「官方」服务器,则加这一行。
option domain-name:用来设定网络域名。
option domain-name-servers:设定DNS服务器IP。
option subnet-mask:设定要给客户端的预设自网络掩码。
option broadcast-address:设定要给客户端的预设广播地址。
option time-offset:设定本地时间和格林威治时间差几秒
default-lease-time:设定预设的租期。租期以秒计算,租约到期后,服务器会回收改 IP。
max-lease-time:当租约到期后,客戶端可以继续要求使用同一个 IP,这个选项控制该 IP 最长可以被使用多久。
ddns-update-style:这是用来设定是否支持 ddns 更新 IP,这个选项一定要存在才不会有错误。
说明192.168.42.1是给raspberry pi 做的路由器分配的网关 ip 这个不能跟局域网里其他路由网关ip重复
分配一个静态ip
内容修改为:
interface=wlan0
driver=rtl871xdrv(Ubuntu:driver=nl80211)
ssid=hisen
hw_mode=g
channel=6
macaddr_acl=0
auth_algs=1
ignore_broadcast_ssid=0
wpa=2
wpa_passphrase=raspberry
wpa_key_mgmt=WPA-PSK
wpa_pairwise=TKIP
rsn_pairwise=CCMP
配置说明:
interface: 那个接口作为接入点
driver: 使用无线驱动,树莓派是rtl871xdrv,注意是187L(小写的L)
ssid: 共享网络的SSID
hwmode: 指定802.11协议,包括 a = IEEE 802.11a, b = IEEE 802.11b, g = IEEE 802.11g
channel: 指定无线信道
macaddracl: 指定MAC地址过滤规则,0表示除非在禁止列表否则允许,1表示除非在允许列表否则禁止,2表示使用外部RADIUS服务器;
acceptmacfile:指定允许MAC列表文件所在;
denymacfile:指定禁止MAC列表文件所在;
authalgs: 指定采用哪种认证算法 1表示开放系统认证(Open System Authentication, OSA),2表示共享密钥认证(Shared Key Authentication, SKA,3则两种认证方式都支持
ignorebroadcastssid: 是否禁止广播SSID
wpa=2: 使用WPA2加密方式,WEP非常容易被破解不推介使用
wpapassphrase:WPA/WPA2加密需要指定密钥,这个选项就是配置WPA/WPA2的密钥。注意wpapassphrase要求8~63个字符。另外还可以通过配置wpapsk来制定密钥,不过要设置一个256位的16进制密钥
wpakeymgmt: 设置客户端密钥算法验证方式。认证方式为WPA-PSK 加密方式为CCMP
wpapairwise/rsnpairwise: 如果启用了WPA,需要指定wpapairwise;如果启用了WPA2,需要指定rsnpairwise,或者采用wpa_pairwise的设定
保存退出
查看iptables是否正确
确保开机自动生效 保存iptables规则
在底部新增一行
检查ap和dhcp状态,返回successfully表示启动成功
设置开机自动启动
以上设置完成后,树莓派已经可以作为AP使用了,手机可以正常连接到树莓派。但是不能正常上网。
还需要如下设置(根据自己的实际情况修改以下配置内容):
设置静态IP地址、DNS
sudo nano /etc/network/interfaces
如果配置信息中含有“iface etho inet dhcp",将这部分注释掉。
添加如下内容:
iface eth0 inet static
address 192.168.2.123
netmask 255.255.255.0
gateway 192.168.2.1
dns-nameservers 114.114.114.114 8.8.8.8
参考资料:
《linux系统管理技术手册》
http://en.wikipedia.org/wiki/Hostapd
http://www.isc.org/downloads/dhcp/
http://www.twbsd.org/cht/book/ch18.htm
http://learn.adafruit.com/setting-up-a-raspberry-pi-as-a-wifi-access-point