转载自: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设配,看列表中是否有无线网卡

  1. sudo lsusb

返回

  1. Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
  2. Bus 001 Device 002: ID 0424:9512 Standard Microsystems Corp.
  3. Bus 001 Device 003: ID 0424:ec00 Standard Microsystems Corp.
  4. Bus 001 Device 004: ID 0bda:8178 Realtek Semiconductor Corp. RTL8192CU 802.11n WLAN Adapter

其中Bus 001 Device 004: ID 0bda:8178 Realtek Semiconductor Corp. RTL8192CU 802.11n WLAN Adapter代表的就是无线网卡被系统识别,芯片是RTL8192CU

  1. sudo cp /etc/network/interfaces /etc/network/interfaces.bak
  2. sudo vim /etc/network/interfaces

内容替换为:

  1. auto lo //表示使用localhost
  2. iface eth0 inet dhcp //表示如果有接口ech0, 则用dhcp获得IP地址
  3. auto wlan0 //表示如果有wlan设备,使用wlan0设备名
  4. allow-hotplug wlan0 //表示wlan设备可以热插拨
  5. iface wlan0 inet dhcp //表示如果有WLAN网卡wlan0 (就是WIFI网卡), 则用dhcp获得IP地址
  6. wpa-ssid "hisen" //hisen是WIFI网SSID名称,如果是别的,请更改
  7. wpa-psk "Raspberry" //表示连接WIFI网络时,使用wpa-psk认证方式,认证密码是Raspberry。

如果有以太网网线连接,则优先采取DHCP自动连接。如果有名为hisen的WIFI网络,则采取DHCP自动连接。

此时查看ifconfig,其中wlan0的inet addr还是没有IP地址的。拔掉以太网网线

  1. sudo /etc/init.d/networking restart

再次查看ifconfig,就会显示出ip地址了,表示链接成功。 
到此无线的配置使用结束

在进行AP的配置之前,可以先查看网卡是否支持AP模式(Ubuntu适用)

运行命令:Iw list

找到“Supported interface modes: “,查看是否有AP,若有AP,则支持AP模式;若没有,则不支持AP模式(只能换网卡了)。

接下来部分为Raspberry Pi和Ubuntu12.04 AP配置部分:

接下来讲如何将树莓派配置成WIFI AP(access point)
1.安装软件 
hostapd is a user space daemon for wireless access point and authentication servers
All IP devices need addresses, and ISC DHCP is the easiest and most efficient way to provide them

  1. sudo apt-get install hostapd isc-dhcp-server

这里可能出现错误提示,需要进行sudo apt-get update操作,再执行上面的命令 
2.配置DHCP服务

  1. sudo vim /etc/dhcp/dhcpd.conf

注释掉域名,以及域名服务器。找到

  1. option domain-name "example.org";
  2. option domain-name-servers ns1.example.org, ns2.example.org;

前面加上#,修改成

  1. #option domain-name "example.org";
  2. #option domain-name-servers ns1.example.org, ns2.example.org;

找到

  1. #If this DHCP server is the official DHCP server for the local
  2. #network, the authoritative directive should be uncommented.
  3. #authoritative;

去掉authoritative前面的#,修改成

  1. #If this DHCP server is the official DHCP server for the local
  2. #network, the authoritative directive should be uncommented.
  3. authoritative;

并在文件底部加上以下代码,并保持退出

  1. subnet 192.168.42.0 netmask 255.255.255.0 {
  2. range 192.168.42.10 192.168.42.50;
  3. option broadcast-address 192.168.42.255;
  4. option routers 192.168.42.1;
  5. default-lease-time 600;
  6. max-lease-time 7200;
  7. option domain-name "local";
  8. option domain-name-servers 8.8.8.8, 8.8.4.4;
  9. }

配置说明: 
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,这个选项一定要存在才不会有错误。

  1. sudo vim /etc/default/isc-dhcp-server

修改那个接口提供DHCP服务,多个接口使用空格隔开,如“eth0 eth1”。找到 INTERFACES=""修改成

  1. INTERFACES="wlan0"

3.配置无线网卡为静态ip
如果无线网卡在工作,先停掉运行

  1. sudo ifdown wlan0

修改interface文件

  1. sudo vim /etc/network/interfaces

内容为

  1. auto lo
  2. iface lo inet loopback
  3. iface eth0 inet dhcp
  4. allow-hotplug wlan0
  5. iface wlan0 inet static
  6. address 192.168.42.1
  7. netmask 255.255.255.0

说明192.168.42.1是给raspberry pi 做的路由器分配的网关 ip 这个不能跟局域网里其他路由网关ip重复

分配一个静态ip

  1. sudo ifconfig wlan0 192.168.42.1

4.配置Access Point 
这里需要配置一个需要密码认证的网络

  1. sudo vim /etc/hostapd/hostapd.conf

内容修改为:

interface=wlan0
driver=rtl871xdrv(Ubuntu:driver=nl80211)
ssid=hisen
hw_mode=g
channel=6
macaddr_acl=0
auth_algs=1
ignore_broadcast_ssid=0wpa=2
wpa_passphrase=raspberry
wpa_key_mgmt=WPA-PSK
wpa_pairwise=TKIP
rsn_pairwise=CCMP

注意:每行配置信息间不要有空格,否则可能会在开启hostapd服务的时候提示配置文件中有非法字符


配置说明: 
interface: 那个接口作为接入点 
driver: 使用无线驱动,树莓派是rtl871xdrv,注意是187L(小写的L) 
ssid: 共享网络的SSID 
hwmode: 指定802.11协议,包括 a = IEEE 802.11a, b = IEEE 802.11b, g = IEEE 802.11g 
channel: 指定无线信道 
macaddr
acl: 指定MAC地址过滤规则,0表示除非在禁止列表否则允许,1表示除非在允许列表否则禁止,2表示使用外部RADIUS服务器; 
acceptmacfile:指定允许MAC列表文件所在; 
denymacfile:指定禁止MAC列表文件所在; 
authalgs: 指定采用哪种认证算法 1表示开放系统认证(Open System Authentication, OSA),2表示共享密钥认证(Shared Key Authentication, SKA,3则两种认证方式都支持 
ignore
broadcastssid: 是否禁止广播SSID 
wpa=2: 使用WPA2加密方式,WEP非常容易被破解不推介使用 
wpa
passphrase:WPA/WPA2加密需要指定密钥,这个选项就是配置WPA/WPA2的密钥。注意wpapassphrase要求8~63个字符。另外还可以通过配置wpapsk来制定密钥,不过要设置一个256位的16进制密钥 
wpakeymgmt: 设置客户端密钥算法验证方式。认证方式为WPA-PSK 加密方式为CCMP 
wpapairwise/rsnpairwise: 如果启用了WPA,需要指定wpapairwise;如果启用了WPA2,需要指定rsnpairwise,或者采用wpa_pairwise的设定

保存退出

  1. sudo vim /etc/default/hostapd

找到#DAEMON_CONF=""修改成

  1. DAEMON_CONF="/etc/hostapd/hostapd.conf"

保存退出 开机启动设置ip转发

  1. sudo vim /etc/sysctl.conf

底部加上一行

  1. net.ipv4.ip_forward=1
  2. sudo sh -c "echo 1 > /proc/sys/net/ipv4/ip_forward"

sysctl命令说明: 
系统引导时sysctl命令会读取sysctl.conf配置文件,所以如何需要永久改变某参数的值可在此文件下添加,格式为variable=value, 变量名是相对于/proc/sys的路径名,使用圆点(.)来代替斜线(/)。 因此配置等同于下面的命令

  1. sudo sh -c "echo 1 > /proc/sys/net/ipv4/ip_forward"

在以太网端与无线网端建立转发

  1. sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
  2. sudo iptables -A FORWARD -i eth0 -o wlan0 -m state --state RELATED,ESTABLISHED -j ACCEPT
  3. sudo iptables -A FORWARD -i wlan0 -o eth0 -j ACCEPT

查看iptables是否正确

  1. sudo iptables -t nat -S
  2. sudo iptables -S

确保开机自动生效 保存iptables规则

  1. sudo sh -c "iptables-save > /etc/iptables.ipv4.nat"
  2. sudo vim /etc/network/interfaces

在底部新增一行

  1. up iptables-restore < /etc/iptables.ipv4.nat

更新hostapd,确保支持无线网卡(Ubuntu12.04上的配置不需要这一步)

  1. wget http://www.adafruit.com/downloads/adafruit_hostapd.zip (如果不能下载的话,可以到这儿自己下载:http://w1.fi/hostapd/)
  2. unzip adafruit_hostapd.zip
  3. sudo mv /usr/sbin/hostapd /usr/sbin/hostapd.ORIG
  4. sudo mv hostapd /usr/sbin
  5. sudo chmod 755 /usr/sbin/hostapd

5.测试

  1. sudo /usr/sbin/hostapd /etc/hostapd/hostapd.conf

成功的话,打开手机会发现多了一个hisen的无线,但是目前还无法链接成功的。 
6.收尾
启动服务

  1. sudo service hostapd start
  2. sudo service isc-dhcp-server start

检查ap和dhcp状态,返回successfully表示启动成功

  1. sudo service hostapd status
  2. sudo service isc-dhcp-server status

设置开机自动启动

  1. sudo update-rc.d hostapd enable
  2. sudo update-rc.d isc-dhcp-server enable


以上设置完成后,树莓派已经可以作为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

树莓派和Ubuntu12.04配置无线连接与无线AP热点相关推荐

  1. vm虚拟机安装ubuntu12.04配置安卓虚拟机

    vm虚拟机安装ubuntu12.04配置Java环境 1.安装VMware Workstation pro 2.安装ubuntu-12.04-desktop-amd64 3.gcc.g++降版本 4. ...

  2. windows无法配置此无线连接的无线网络

    windows无法配置此无线连接的无线网络问题解决方法 若您的无线网络连接显示"windows无法配置此无线连接" 请按照"开始 > 运行 > 输入servi ...

  3. windows无法配置此无线连接的无线网络问题解决方法

    突然发现自己的网络连接里面的无线连接一直处于禁用状态..不管怎么点击启用都是灰色的..没一点办法..一直找不到路由器...最后原因还是需要设置下注册表中的一点东东: 第一:打开运行键入 service ...

  4. 树莓派配置无线连接与无线AP热点

    为什么80%的码农都做不了架构师?>>>    之前使用过将笔记本电脑的无线网卡设置成ap,给家里的iPhone,ipad和安卓手机提供wifi链接.但是 每次必须得开着笔记本,这个 ...

  5. Ubuntu12.04配置LAMP 环境

    安装过程 第一步 安装Apache2 sudo apt-get install apache2 第二步 安装PHP模块 sudo apt-get install php5 第三步 安装Mysql su ...

  6. Ubuntu12.04下Eclipse连接小米2s调试

    前言 初入职场第一周就让我感受到了学校和社会的差距,学校里有水平差不多一起努力的小伙伴,社会上尤其是大公司里基本都是各种大神.技术专家,而且依旧很努力.之前以为自己很用功,可到了社会上发现这只是维持生 ...

  7. Ubuntu12.04配置JDK1.8

    获取JDK 获取JDK,可以直接在官网上下载自己需要的版本,这里使用的是当前最新的JDK8u60 解压安装 在/usr/lib下新建一个jdkjre目录 mkdir /usr/lib/jdkjre 将 ...

  8. ubuntu12.04配置双显示器

    在dash中搜索amd,有AMD Catalyst Control Center(Administrative),选择后打开,如下所示: 标为1的是本机连接的显示器,标为2的为外接显示器,设置方法如下 ...

  9. Ubuntu12.04 配置JDK7

    一. 下载JDK 下载地址在这里http://www.oracle.com/technetwork/java/javase/downloads/jdk-7u4-downloads-1591156.ht ...

最新文章

  1. CentOS 7 单用户模式+救援模式
  2. C#中调用C++ 动态链接库 dll 的方法
  3. linux下exec系列(一)
  4. 插入递归引用Identity列的记录
  5. leetcode python3 简单题111. Minimum Depth of Binary Tree
  6. falsk 请求钩子
  7. HDU6322 Problem D. Euler Function【欧拉函数+数学规律】
  8. LeetCode 973. K Closest Points to Origin
  9. 9. Document getElementsByName() 方法
  10. java string 转 class_java-String类的转换功能
  11. java开发环境有哪些_Java学习开发环境配置大全
  12. QXDM5 中 Qt5WebKit.dll 丢失问题解决办法
  13. CUDA学习(四)-整体结构
  14. 利用antd进行轻量级表单开发,获取验证码
  15. 怎么实现一个计算一年中有多少周?
  16. Win10系统下怎么开启管理员administrator权限?
  17. 我们的指纹是如何形成的,科学家找到主导指纹形成原因
  18. Python---GPA(绩点)计算器
  19. 基金什么时候买入好?
  20. ElasticSearch集成SpringBoot+实战

热门文章

  1. 女生参加UI设计培训班有没有前途
  2. Install successfully finished in 1 s 128 ms.: App restart successful without requiring a re-install.
  3. 用Python分析韩国女团喜欢什么单词 !
  4. 指令集os系统部署用户应用教程
  5. app获取缓存、清理缓存
  6. 乐鑫嵌入式笔试总结-提前批
  7. 最近领导给我升职了,压力和工作量都很大,但是工资1毛钱都没涨,你们怎么看?...
  8. esp12s 第十二章 舵机控制
  9. 谈谈你对promise的理解
  10. 数据库与文件进行数据存储有哪些区别?