文档章节

用树莓派座无线热点

hxf10047
 hxf10047
发布于 2016/01/18 23:15
字数 2090
阅读 219
收藏 10

最近又开始折腾起Raspberry Pi来了,因为某处上网需要锐捷拨号,于是我就想能不能让我的树莓派代劳,当然首先要将其改造为路由器,默认自带的网口作为WAN口,我们还缺一个网口,木有办法,只好占用一个USB口,接上一个USB网卡,网上的USB转RJ45网线口的适配器比较少,价格也不便宜,于是就考虑干脆将其改造成无线路由,也符合时下高端大气上档次的标准。


准备工作,当然要先去购买一个USB无线网卡,可以购买的型号比较多,Raspberry Pi官方也提供了兼容性列表供大家参考,具体猛击这里。我这里购买的是网件(Netgear)WNA1000M 150M迷你USB无线网卡。


较为官方的介绍配置为无线热点的文章莫过于这一篇《RPI-Wireless-Hotspot》。但是实际配置下来始终无法成功。但是无线网卡确实能够被识别,可以通过lsusb和lsmod查看到,不过我注意到这款无线的芯片型号是RealTek RTL8188CUS,初步怀疑是驱动问题。


lsusb WiFi Adapter


当然看到别人的老款无线网卡都配置成功了心里难免痒痒的,当然也不能再浪费银子去再买个网卡,于是只好自己摸索,不过天无绝人之路,在N次刷机重装系统后,终于找到了成功的办法,其实关键的文章就在上面那篇文章的一个链接中《Turn Your Raspberry Pi Into a WiFi Hotspot with Edimax Nano USB EW-7811Un (RTL8188CUS chipset)》。


好了,下面我将实践的过程记录下来供大家参考,当然主要参考了上面两篇文章,这里是配置的回忆,我尽量记录详细,遗漏之处望指出。


1. 安装系统(如果系统已经安装可以跳过这一步)


1.1 尽量使用最新系统,首先下载官方最新镜像,然后使用Win32DiskImager烧录到SD卡上。注意这里我们选用的是Raspbian。


1.2 Raspberry Pi连接上无线网卡,然后系统镜像刷入SD卡后,我们连接显示器键盘和鼠标进行初始化配置工作,当然没有条件的话推荐直接使用SSH连接Raspberry Pi,这样更方便,因为新系统默认开放了SSH管理。


Raspbian download


连接信息主要如下:


主机名 : raspberrypi

用户名 : pi

密  码 : raspberry

如果你是直接通过SSH连接到Raspberry Pi的话,下面的配置步骤是必要的:


1.2.1 初始化配置,下面的配置只有在新安装的系统内需要,仅做一次。


运行下面的命令,进入配置界面:


sudo raspi-config

Raspberry ConfigurationInternationalisation Options


推荐更新下面的配置选项(新配置界面):


1 Expand Filesystem

2 Change User Password

4 Internationalisation Options

  I1 Change Locale

  I2 Change Timezone

8 Advanced Options

  A3 Memory Split

  A6 Update

(旧配置界面)


update

expand_rootfs

change_pass

change_timezone

memory_split

这里要注意Memory Split/memory_split,默认预留给图形界面的是64MB,作为一台无线路由基本上就用不到图形界面了,很显然64MB略有奢侈,我们将其改成32MB。


最后Finish完成初始化配置。系统会自动提示重启,如果没有按预期重启,请使用下面的命令重启系统:


sudo shutdown -r now

2. 安装hotspot(hostapd)


sudo apt-get install bridge-utils hostapd

hostapd实现的是无线共享,但需要注意的是官方提供的程序不兼容RTL8188CUS芯片的无线网卡,不过Edimax团队为我们专门编译了兼容的版本,下面的操作需要替换hostapd为兼容版本。


替换的命令如下:


wget http://www.daveconroy.com/wp3/wp-content/uploads/2013/07/hostapd.zip

unzip hostapd.zip 

sudo mv /usr/sbin/hostapd /usr/sbin/hostapd.bak

sudo mv hostapd /usr/sbin/hostapd.edimax 

sudo ln -sf /usr/sbin/hostapd.edimax /usr/sbin/hostapd 

sudo chown root.root /usr/sbin/hostapd 

sudo chmod 755 /usr/sbin/hostapd

接下来提供两种方案,一种是桥接方式设置热点,有点类似交换机工作原理,将网线口的信号转换为无线,另外一种则是路由方式实现无线上网,和大部分路由器工作方式一样。


3. 桥接的方式设置WiFi热点(方案一)


3.1 安装必备程序


sudo apt-get install bridge-utils

3.2 配置网卡


编辑网卡配置文件:


sudo nano /etc/network/interfaces

注释掉所有的关于无线网卡的部分,最后应该变成下面所示:


#allow-hotplug wlan0

#wpa-roam /etc/wpa_supplicant/wpa_supplicant.conf

#iface default inet dhcp

加上下面这段桥接配置:


auto br0

iface br0 inet dhcp

bridge_ports eth0 wlan0

最终的配置主要由以下几个部分组成:


#loopback adapter

auto lo

iface lo inet loopback

#wired adapter

iface eth0 inet dhcp

#bridge

auto br0

iface br0 inet dhcp

bridge_ports eth0 wlan0

3.3 配置hostapd


sudo nano /etc/hostapd/hostapd.conf

配置信息如下:


interface=wlan0

driver=rtl871xdrv

bridge=br0

ssid=My_SSID_Name

channel=1

wmm_enabled=0

wpa=1

wpa_passphrase=MYPASSWORD

wpa_key_mgmt=WPA-PSK

wpa_pairwise=TKIP

rsn_pairwise=CCMP

auth_algs=1

macaddr_acl=0

配置文件具体我就不说了,想必大家看内容也知道各项的含义,保存这个配置文件。


3.4 重启并测试hostapd


sudo reboot

重启完成后,使用下面的命令测试是否正确:


sudo hostapd -dd /etc/hostapd/hostapd.conf

如果没有错误的话,你这时应该能搜索到你所配置的无线信号。然后Ctrl+C退出这个测试。


如果一切正常的话,我们可以设置hostapd的配置文件路径了。


sudo nano /etc/default/hostapd

去掉注释符号并改动下面这行为我们的配置文件路径:


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

桥接方式配置完成!


4. 路由的方式设置WiFi热点(方案二)


4.1 安装必备程序


sudo apt-get install udhcpd

udhcpd主要为连接到WiFi的设备自动分配IP地址的,当然你也可以换用你所熟悉的软件。


4.2 配置udhcpd,编辑/etc/udhcpd.conf,主要内容如下:


start 192.168.42.2 # This is the range of IPs that the hostspot will give to client devices.

end 192.168.42.20

interface wlan0 # The device uDHCP listens on.

remaining yes

opt dns 8.8.8.8 4.2.2.2 # The DNS servers client devices will use.

opt subnet 255.255.255.0

opt router 192.168.42.1 # The Pi's IP address on wlan0 which we will set up shortly.

opt lease 864000 # 10 day DHCP lease time in seconds

接下来编辑/etc/default/udhcpd并且将下面这行注释掉,以使DHCP Server正常工作:


#DHCPD_ENABLED="no"

4.3 配置无线网卡


通过下面的命令给无线网卡设置一个IP地址:


sudo ifconfig wlan0 192.168.42.1

当然为了下次启动仍然有效,我们需要配置/etc/network/interfaces文件:


sudo nano /etc/network/interfaces

注释掉所有的关于无线网卡的部分,最后应该变成下面所示:


#wpa-roam /etc/wpa_supplicant/wpa_supplicant.conf

#iface default inet dhcp

注意保留allow-hotplug wlan0,英文原文是不保留的,但是我操作下来发现如果不保留这段的话,无线网卡有时无法正常配置IP,最后无线网卡IP的配置信息如下:


allow-hotplug wlan0

iface wlan0 inet static

  address 192.168.42.1

  netmask 255.255.255.0

4.4 编辑hostapd配置


sudo nano /etc/hostapd/hostapd.conf

内容如下:


interface=wlan0

driver=rtl871xdrv

ssid=My_SSID_Name

hw_mode=g

channel=6

macaddr_acl=0

auth_algs=1

ignore_broadcast_ssid=0

wpa=2

wpa_passphrase=MYPASSWORD

wpa_key_mgmt=WPA-PSK

wpa_pairwise=TKIP

rsn_pairwise=CCMP

4.7 启动IP转向功能以便于开通NAT


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

编辑/etc/sysctl.conf改动下面这行:


net.ipv4.ip_forward=1

4.8 配置iptables防火墙


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

到这里路由的NAT功能已经被启用,我们将刚才配置的iptables保存下来以便于下次使用:


sudo sh -c "iptables-save > /etc/iptables.ipv4.nat"

编辑/etc/network/interfaces然后在最后加上下面这行以使每次启动都自动加载iptables配置:


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

4.9 重启并测试hostapd


sudo reboot

重启完成后,使用下面的命令测试是否正确:


sudo hostapd -dd /etc/hostapd/hostapd.conf

如果没有错误的话,你这时应该能搜索到你所配置的无线信号。然后Ctrl+C退出这个测试。


如果一切正常的话,我们可以设置hostapd的配置文件路径了。


sudo nano /etc/default/hostapd

去掉注释符号并改动下面这行为我们的配置文件路径:


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

4.10 启动相应软件,并加入启动项


sudo service hostapd start

sudo service udhcpd start

sudo update-rc.d hostapd enable

sudo update-rc.d udhcpd enable


© 著作权归作者所有

hxf10047
粉丝 1
博文 26
码字总数 11602
作品 0
高级程序员
私信 提问
加载中

评论(1)

哈库纳
哈库纳
赞一个
第1讲:树莓派购买指南【子豪兄的零基础树莓派教程】

本文介绍了树莓派主板及其外接设备的购买指南。 帮助新手用最少的钱实现全部功能并快速上手。 Bilibili视频教程 文字版、源代码、更新、勘误,请看本教程Github代码仓库: https://github.c...

子豪兄
2018/10/20
0
0
新手教程:如何 SSH 进入树莓派

在这篇树莓派文章中,你将学到如何在树莓派中启用 SSH 以及之后如何通过 SSH 进入树莓派。 在你可以用树莓派做的所有事情中,将其作为一个家庭网络的服务器是十分流行的做法。小体积与低功耗...

作者: Chinmay
05/23
0
0
Raspberry Pi 快速入门

最近 我购买并安装好了第二块树莓派系统,下列购买清单将对你购买树莓派有所帮助。 Parts List RaspberryPi - 512MB version Enclosure for the RaspberryPi - Clear and contains cutous f...

oschina
2013/01/06
1K
0
搭载Wi-Fi和蓝牙的树莓派三代,仅售229软妹币

别看树莓派小,这家伙的粉丝可一点都不少,日前树莓派推出了新款的树莓派3,换装了全新的处理器,此外,它还顺应民意搭载了Wi-Fi和蓝牙,售价依然走亲民路线,仅售35美元(约合人民币229元)...

大壮旅
2016/03/01
0
0
网线直连树莓派及其利用笔记本共享上网的步骤

1.无线网络连接设置为 IP:192.168.0.58 子网掩码:255.255.255.0 默认网关:192.168.0.10(路由器地址) 本地连接属性设置为: IP:192.168.0.1(貌似要结尾是.1树莓派才能上网) 子网掩码:...

Okimbin
2014/02/14
452
0

没有更多内容

加载失败,请刷新页面

加载更多

一套基于SpringBoot+Vue+Shiro 前后端分离 开发的代码生成器

一、前言 最近花了一个月时间完成了一套基于Spring Boot+Vue+Shiro前后端分离的代码生成器,目前项目代码已基本完成 止步传统CRUD,进阶代码优化: 该项目可根据数据库字段动态生成 controll...

郑清
26分钟前
2
0
javascript-十六进制随机颜色

<script> // 编写一个函数,获得一个十六进制的随机颜色的字符串(如#20CD4F) // function randomColor(){ // var r = random(0,255).toString(16); // var g = random(0,255).toString(16......

ACKo
28分钟前
2
0
springBoot +mybatis 出现sql 语句在数据库可以查询到,但是赋值到实体类上就没有的情况?

1.不要老是反复查看自己是否写错了,为啥有的能出来有的出不来? 可以查看配置文件中是否配置全: 如果在application.yml 文件中是如下配置: mybatis: mapper-locations: classpath:mapp...

kuchawyz
41分钟前
2
0
正则表达式

一、RegExp对象 进行验证和查找的API 1、创建对象: (1)用/创建(直接量):var reg=/正则/ig,表达式固定不变时使用 (2)用new创建:var reg=new RegExp(‘正则’,‘ig’),表达式需要...

wytao1995
41分钟前
2
0
实战限流(guava的RateLimiter)

关于限流 常用的限流算法有漏桶算法和令牌桶算法,guava的RateLimiter使用的是令牌桶算法,也就是以固定的频率向桶中放入令牌,例如一秒钟10枚令牌,实际业务在每次响应请求之前都从桶中获取...

程序员欣宸
42分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部