Raspberry pi做成无线热点

Raspberry pi作为卡片式微型电脑,本身没有自带显示器、鼠标、键盘等外设,如果想对Raspberry PI进行设定需要连接显示器,或者通过路由器ssh登陆才可以。心想Raspberry pi是可以运行Linux系统的卡片型电脑,为何不尝试把Raspberry Pi做成一个无线AP,想登陆Raspbery pi的时候就比较方便了。后续也可以加上USB存储外设之类的做个多媒体网关等等。

主要的实现思路是wlan0设定成固定IP,eth0动态获取IP。Raspberry Pi运行hostapd和udhcpd分别作为无线AP热点和DHCP服务器给终端分配IP地址。

目前我手上的wifi网卡是Realtek的8818芯片。如果直接按照网上的教程安装hostapd的话会出现错误。经过一番查找,Realtek公司专门有针对8818芯片的hostapd版本,网上牛人已经把相关代码放到github上,我们直接安装就可以了。

为了能正常为8818芯片的wifi网卡安装上hostapd,首先要卸载掉原先的hostapd

sudo apt-get autoremove hostapd

然后安装8818芯片版本的hostapd

wget https://github.com/jenssegers/RTL8188-hostapd/archive/v2.0.tar.gztar -zxvf v2.0.tar.gz

然后编译安装

cd RTL8188-hostapd-2.0/hostapd
sudo make

sudo make install

$ sudo service hostapd restart

[ ok ] Stopping advanced IEEE 802.11 management: hostapd.

[ ok ] Starting advanced IEEE 802.11 management: hostapd.

hostapd安装完毕。

接下来安装udhcpd

sudo apt-get install udhcpd

安装完成后配置/etc/udhcpd.conf

start 192.168.20.20 # This is the range of IPs that the hostspot will give to client devices.
end 192.168.20.200
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.20.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"

为了下次启动仍然有效,我们需要配置/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.20.1
  netmask 255.255.255.0

编辑hostapd配置

sudo nano /etc/hostapd/hostapd.conf

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

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

net.ipv4.ip_forward=1

配置iptables防火墙

我们可以做个脚本名为nat.sh,以便启动的时候自动运行nat相关配置

#!/bin/sh
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

给脚本加上可执行权限

sudo chmod +x nat.sh

编辑/etc/rc.local文件,使之开机时运行nat相关iptabls配置和启动hostapd

sudo nano /etc/rc.local

在exit 0上面加上以下两行后保存退出

sudo service hostapd start

sh /home/pi/nat.sh

再让udhcpd也启动时一起运行。

sudo update-rc.d udhcpd enable

所有的步骤结束后重启Raspberry pi.

大功告成!

PS:这里碰到了几个小问题。

  1. 不知是问么原因,原本打算用sudo update-rc.d hostapd enable使hostapd开机启动的。但是会报错无法开机启动,后来决定在/etc/rc.local上加上sudo service hostapd start的方式解决。
  2. 关于iptables,原本打算用sudo sh -c "iptables-save > /etc/network/iptables",然后在/etc/network/interface上加上 up iptables-restore < /etc/network/iptables方式使nat相关配置生效的。但是不知什么原因重启Raspberry pi后一直不生效。也只能通过万能的rc.local上加上sh /home/pi/nat.sh的方式解决。

后期打算加上自动加载USB存储设备,通过媒体共享的方式给我的IPAD,iphone等共享文件,播放视频等等。

时间: 2024-10-13 03:31:12

Raspberry pi做成无线热点的相关文章

Raspberry Pi做成路由器

曾经看到很多文章把Raspberry Pi制作成无线AP,但是我今天要做的是把Raspberry Pi做成一个有NAT功能的路由器,我做这个的初衷是因为到荷兰出差后发现我的bambook无法接入宿舍里的WiFi,也许是因为宿舍无线路由器是WEP的认证方式,总之死活连不上.后来决定用Raspberry Pi+北极星光无线路由器来解决问题. 思路: [无线路由器]-----[无线网卡--Raspberry Pi--有线RJ45端口]------[有线RJ45端口--北极星光无线路由器--无线]---

将树莓派Raspberry Pi设置为无线路由器(WiFi热点AP,RTL8188CUS芯片)

本文是基于在某东购买的usb无线网卡(RTL8188CUS芯片)来制作无线热点.本来想制作一个一键脚本.只是先把实现的过程记录下来. 參考文章 Turn Your Raspberry Pi Into a WiFi Hotspot with Edimax Nano USB EW-7811Un (RTL8188CUS chipset) Why won't dnsmasq's DHCP server work when using hostapd? 1.更新系统,安装须要的软件 我们首先须要更新系统.

【树莓派】【转】将树莓派Raspberry Pi设置为无线路由器(WiFi热点AP,RTL8188CUS芯片)

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

解决Raspberry Pi不识别RTL8188eu无线网卡芯片的问题

最近在折腾Raspberry Pi,当时也没留意,看在价格的份上,买了Mercury的水星网络 MW150US 超小型150M无线USB网卡.可是悲剧的是用iwconfig并认不到这款无线网卡 但是用lsusb的话可以看到MW150US用的正是RTL8188eu的芯片,在网络上搜索了一下,终于找到解决方案 1. 首先要下载编译安装最新的linux内核,具体可以参考 http://www.raspberrypi.org/documentation/linux/kernel/building.md

Raspberry pi,一个好玩的派:第五季 无线网卡

Raspberry pi的板子由于成本原因是没有加无线模块的,不想被网线束缚的我们,需要自备USB无线模块.在购买板子时,看见官方推荐EDUP无线网卡,价格还算合适,就直接入手了. 采用REALTEK8188芯片,802.11n,传输速度150Mbps,适用范围130平方米. 将其插到任一U口即可,如下图: 由于外壳阻碍了电源插孔,所以只好先裸着了,图中已经加电,HDMI的另一头是电视机. 接下来的任务就是如何让这个无线网卡工作,连接到我已经开启的无线路由器. 一.wpa_gui 在进入Rasp

从零开始搭建Raspberry Pi机器视觉编程环境

从零开始搭建Raspberry Pi机器视觉编程环境 本文主要包括如下内容: 安装Raspbian系统 连接和设置网络 安装中文支持 用电脑控制树莓派 通过SSH远程登录树莓派命令行界面 安装VNC远程登录树莓派图形桌面 通过串口连接树莓派 安装OpenCV及相关开发包 一键备份树莓派SD卡 1 安装Raspbian系统 拿到树莓派后第一件事当然是装系统.安装树莓派系统所需配置: 1个输出5V,>700mA(通常选择1A或2A)的USB电源适配器 1根micro USB线(安卓线) 1张拷贝好系

Raspberry Pi AP功能改进: systemd服务封装以及dnsmasq的使用

前言在上一篇<Raspberry pi 设置自动拨号, 搭建无线路由环境>一文中,笔者利用hostapd和udhcpd程序,创建无线热点,实现地址分配以及DNS服务器的设置.本篇将基于上一篇的环境,对树莓派AP进行改进:使用dnsmasq代替udhcpd实现DNS以及地址租约,并将AP功能封装成为一个服务 上一篇中使用的hostapd以及udhcpd,其方式有一些缺陷: 使用命令行方式启动,并未将启动本身封装成为一个固定的"服务" 三代树莓派的内置网卡以及笔者使用的外置网卡

Raspberry pi设置自动拨号,搭建无线路由环境

Raspberry pi设置自动拨号,搭建无线路由环境 前言 raspberry pi(树莓派), 是一款针对电脑业余爱好者.教师.小学生以及小型企业等用户的迷你电脑,由于可以烧录Linux操作系统,因此可以衍生出各种各样的使用途径,诸如控制版,爬虫机器,个人vps,门禁系统-..本文主要介绍如何在raspberry pi上面完成pppoe拨号上网功能,以及如何利用raspberry pi完成路由转发功能,进而将其作为一个家用无线路由器来使用. 准备环境 raspberry pi 三代 b+版

Raspberry Pi 3 Model B入手安装小记

1.买了最新出来的raspberry Pi 3,集成了wifi和蓝牙模块,省去了额外购买wifi模块和蓝牙模块的麻烦.为了保护脆弱的原件,特地买了一个专用的raspberry Pi盒子用来存放,考虑到新的博通1.2GHz四核处理器巨大的发热量,还准备了两块散热片和一块3*3的小电扇保证运行时不至于过热,准备工作一切就绪.图片为还未组装的raspberry Pi 3. 组装过程并不复杂,风扇插在外侧的2.3引脚上即可正常运行.组装完成后即为如图所示. 2.硬件组装完成以后,就要为raspberry