树莓派和Ubuntu12.04配置无线连接与无线AP热点
转载自: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设配,看列表中是否有无线网卡
- sudo lsusb
返回
- Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
- Bus 001 Device 002: ID 0424:9512 Standard Microsystems Corp.
- Bus 001 Device 003: ID 0424:ec00 Standard Microsystems Corp.
- 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
- sudo cp /etc/network/interfaces /etc/network/interfaces.bak
- sudo vim /etc/network/interfaces
内容替换为:
- auto lo //表示使用localhost
- iface eth0 inet dhcp //表示如果有接口ech0, 则用dhcp获得IP地址
- auto wlan0 //表示如果有wlan设备,使用wlan0设备名
- allow-hotplug wlan0 //表示wlan设备可以热插拨
- iface wlan0 inet dhcp //表示如果有WLAN网卡wlan0 (就是WIFI网卡), 则用dhcp获得IP地址
- wpa-ssid "hisen" //hisen是WIFI网SSID名称,如果是别的,请更改
- wpa-psk "Raspberry" //表示连接WIFI网络时,使用wpa-psk认证方式,认证密码是Raspberry。
如果有以太网网线连接,则优先采取DHCP自动连接。如果有名为hisen的WIFI网络,则采取DHCP自动连接。
此时查看ifconfig,其中wlan0的inet addr还是没有IP地址的。拔掉以太网网线
- 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
- sudo apt-get install hostapd isc-dhcp-server
这里可能出现错误提示,需要进行sudo apt-get update操作,再执行上面的命令
2.配置DHCP服务
- sudo vim /etc/dhcp/dhcpd.conf
注释掉域名,以及域名服务器。找到
- option domain-name "example.org";
- option domain-name-servers ns1.example.org, ns2.example.org;
前面加上#,修改成
- #option domain-name "example.org";
- #option domain-name-servers ns1.example.org, ns2.example.org;
找到
- #If this DHCP server is the official DHCP server for the local
- #network, the authoritative directive should be uncommented.
- #authoritative;
去掉authoritative前面的#,修改成
- #If this DHCP server is the official DHCP server for the local
- #network, the authoritative directive should be uncommented.
- authoritative;
并在文件底部加上以下代码,并保持退出
- subnet 192.168.42.0 netmask 255.255.255.0 {
- range 192.168.42.10 192.168.42.50;
- option broadcast-address 192.168.42.255;
- option routers 192.168.42.1;
- default-lease-time 600;
- max-lease-time 7200;
- option domain-name "local";
- option domain-name-servers 8.8.8.8, 8.8.4.4;
- }
配置说明:
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,这个选项一定要存在才不会有错误。
- sudo vim /etc/default/isc-dhcp-server
修改那个接口提供DHCP服务,多个接口使用空格隔开,如“eth0 eth1”。找到 INTERFACES=""修改成
- INTERFACES="wlan0"
3.配置无线网卡为静态ip
如果无线网卡在工作,先停掉运行
- sudo ifdown wlan0
修改interface文件
- sudo vim /etc/network/interfaces
内容为
- auto lo
- iface lo inet loopback
- iface eth0 inet dhcp
- allow-hotplug wlan0
- iface wlan0 inet static
- address 192.168.42.1
- netmask 255.255.255.0
说明192.168.42.1是给raspberry pi 做的路由器分配的网关 ip 这个不能跟局域网里其他路由网关ip重复
分配一个静态ip
- sudo ifconfig wlan0 192.168.42.1
4.配置Access Point
这里需要配置一个需要密码认证的网络
- 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: 指定无线信道
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的设定
保存退出
- sudo vim /etc/default/hostapd
找到#DAEMON_CONF=""修改成
- DAEMON_CONF="/etc/hostapd/hostapd.conf"
保存退出 开机启动设置ip转发
- sudo vim /etc/sysctl.conf
底部加上一行
- net.ipv4.ip_forward=1
- sudo sh -c "echo 1 > /proc/sys/net/ipv4/ip_forward"
sysctl命令说明:
系统引导时sysctl命令会读取sysctl.conf配置文件,所以如何需要永久改变某参数的值可在此文件下添加,格式为variable=value, 变量名是相对于/proc/sys的路径名,使用圆点(.)来代替斜线(/)。 因此配置等同于下面的命令
- sudo sh -c "echo 1 > /proc/sys/net/ipv4/ip_forward"
在以太网端与无线网端建立转发
- sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
- sudo iptables -A FORWARD -i eth0 -o wlan0 -m state --state RELATED,ESTABLISHED -j ACCEPT
- sudo iptables -A FORWARD -i wlan0 -o eth0 -j ACCEPT
查看iptables是否正确
- sudo iptables -t nat -S
- sudo iptables -S
确保开机自动生效 保存iptables规则
- sudo sh -c "iptables-save > /etc/iptables.ipv4.nat"
- sudo vim /etc/network/interfaces
在底部新增一行
- up iptables-restore < /etc/iptables.ipv4.nat
更新hostapd,确保支持无线网卡(Ubuntu12.04上的配置不需要这一步)
- wget http://www.adafruit.com/downloads/adafruit_hostapd.zip (如果不能下载的话,可以到这儿自己下载:http://w1.fi/hostapd/)
- unzip adafruit_hostapd.zip
- sudo mv /usr/sbin/hostapd /usr/sbin/hostapd.ORIG
- sudo mv hostapd /usr/sbin
- sudo chmod 755 /usr/sbin/hostapd
5.测试
- sudo /usr/sbin/hostapd /etc/hostapd/hostapd.conf
成功的话,打开手机会发现多了一个hisen的无线,但是目前还无法链接成功的。
6.收尾
启动服务
- sudo service hostapd start
- sudo service isc-dhcp-server start
检查ap和dhcp状态,返回successfully表示启动成功
- sudo service hostapd status
- sudo service isc-dhcp-server status
设置开机自动启动
- sudo update-rc.d hostapd enable
- 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热点相关推荐
- vm虚拟机安装ubuntu12.04配置安卓虚拟机
vm虚拟机安装ubuntu12.04配置Java环境 1.安装VMware Workstation pro 2.安装ubuntu-12.04-desktop-amd64 3.gcc.g++降版本 4. ...
- windows无法配置此无线连接的无线网络
windows无法配置此无线连接的无线网络问题解决方法 若您的无线网络连接显示"windows无法配置此无线连接" 请按照"开始 > 运行 > 输入servi ...
- windows无法配置此无线连接的无线网络问题解决方法
突然发现自己的网络连接里面的无线连接一直处于禁用状态..不管怎么点击启用都是灰色的..没一点办法..一直找不到路由器...最后原因还是需要设置下注册表中的一点东东: 第一:打开运行键入 service ...
- 树莓派配置无线连接与无线AP热点
为什么80%的码农都做不了架构师?>>> 之前使用过将笔记本电脑的无线网卡设置成ap,给家里的iPhone,ipad和安卓手机提供wifi链接.但是 每次必须得开着笔记本,这个 ...
- Ubuntu12.04配置LAMP 环境
安装过程 第一步 安装Apache2 sudo apt-get install apache2 第二步 安装PHP模块 sudo apt-get install php5 第三步 安装Mysql su ...
- Ubuntu12.04下Eclipse连接小米2s调试
前言 初入职场第一周就让我感受到了学校和社会的差距,学校里有水平差不多一起努力的小伙伴,社会上尤其是大公司里基本都是各种大神.技术专家,而且依旧很努力.之前以为自己很用功,可到了社会上发现这只是维持生 ...
- Ubuntu12.04配置JDK1.8
获取JDK 获取JDK,可以直接在官网上下载自己需要的版本,这里使用的是当前最新的JDK8u60 解压安装 在/usr/lib下新建一个jdkjre目录 mkdir /usr/lib/jdkjre 将 ...
- ubuntu12.04配置双显示器
在dash中搜索amd,有AMD Catalyst Control Center(Administrative),选择后打开,如下所示: 标为1的是本机连接的显示器,标为2的为外接显示器,设置方法如下 ...
- Ubuntu12.04 配置JDK7
一. 下载JDK 下载地址在这里http://www.oracle.com/technetwork/java/javase/downloads/jdk-7u4-downloads-1591156.ht ...
最新文章
- CentOS 7 单用户模式+救援模式
- C#中调用C++ 动态链接库 dll 的方法
- linux下exec系列(一)
- 插入递归引用Identity列的记录
- leetcode python3 简单题111. Minimum Depth of Binary Tree
- falsk 请求钩子
- HDU6322 Problem D. Euler Function【欧拉函数+数学规律】
- LeetCode 973. K Closest Points to Origin
- 9. Document getElementsByName() 方法
- java string 转 class_java-String类的转换功能
- java开发环境有哪些_Java学习开发环境配置大全
- QXDM5 中 Qt5WebKit.dll 丢失问题解决办法
- CUDA学习(四)-整体结构
- 利用antd进行轻量级表单开发,获取验证码
- 怎么实现一个计算一年中有多少周?
- Win10系统下怎么开启管理员administrator权限?
- 我们的指纹是如何形成的,科学家找到主导指纹形成原因
- Python---GPA(绩点)计算器
- 基金什么时候买入好?
- ElasticSearch集成SpringBoot+实战
热门文章
- 女生参加UI设计培训班有没有前途
- Install successfully finished in 1 s 128 ms.: App restart successful without requiring a re-install.
- 用Python分析韩国女团喜欢什么单词 !
- 指令集os系统部署用户应用教程
- app获取缓存、清理缓存
- 乐鑫嵌入式笔试总结-提前批
- 最近领导给我升职了,压力和工作量都很大,但是工资1毛钱都没涨,你们怎么看?...
- esp12s 第十二章 舵机控制
- 谈谈你对promise的理解
- 数据库与文件进行数据存储有哪些区别?