RaspAP:轻松实现树莓派无线 AP

news2024/11/26 0:30:42

RaspAP 是一个可以将树莓派轻松部署成无线 AP(Access Point)的软件方案,具有一套响应式的 WebUI 来控制 WiFi,用起来和家用路由器一样方便。RaspAP 可以运行在 Raspbian 上,只需要先给树莓派安装好 Raspbian 系统,再通过快速安装脚本就可以轻松完成 RaspAP 的安装和配置。


下面我们介绍一下 RaspAP 的安装配置方法。

准备工作

全新安装 Raspbian,建议使用最新的版本。
https://shumeipai.nxez.com/2013/09/07/how-to-install-and-activate-raspberry-pi.html
建议更新 Raspbian,包括核心和固件,然后重启系统:

1
2
3
sudo apt-get update
sudo apt-get dist-upgrade
sudo reboot

运行 sudo raspi-config 命令,在设置 Localisation Options 菜单中设置 WiFi 地区。
如果你使用的是没有集成无线网卡的老版本树莓派,则需要自行准备一个 USB 的无线网卡。

完成上面这些准备工作之后,就可以开始下面的步骤进行快速安装了。

快速安装

下面提供了一个安装脚本,只需要一行命令就可以完成 RaspAP 的快速安装:

1
wget -q https: //git .io /voEUQ -O /tmp/raspap && bash /tmp/raspap

安装程序会帮你完成所有需要手动安装的步骤(见下文)。

安装完成之后重启树莓派,无线网卡默认会被配置为热点:
IP 地址: 10.3.141.1
登录用户名: admin
登录密码: secret
DHCP 范围: 10.3.141.50 至 10.3.141.255
SSID: raspi-webgui
WiFi 密码: ChangeMe

AP – WiFi 客户端模式

RaspAP 允许你将树莓派通过有线网卡接入网络的同时,利用无线网卡去开启 AP 模式,实现对网络的共享。在 Configure hotspot 的 Advanced 标签栏中启用 AP,然后保存设置来启动热点,无须重启树莓派。

手动安装

尽管上面已经提供了自动化的安装脚本,但是为了便于理解,下面将介绍手动安装 RaspAP 的方法。
这些步骤适用于最新的 Raspbian Buster 版本,如果你用更早的 Raspbian 版本,则需要先安装好 git、lighttpd、php7、hostapd 和 dnsmasq。

1
sudo apt-get install git lighttpd php7.1-cgi hostapd dnsmasq vnstat

注意:在 Raspbian Stretch 中,需要用 php7.0-cgi 替换以上命令中的 php7.1-cgi;而对于 Raspbian Jessie 或更早的版本,需要用 php5-cgi 替换以上命令中的 php7.1-cgi。启用 lighttpd 的 PHP 并重启 lighttpd 使设置生效:

1
2
sudo lighttpd- enable -mod fastcgi-php
sudo service lighttpd restart

为 www-data 用户添加对 sudoers 文件的访问权限。使用 nano 编辑器将下面的内容添加到 /etc/sudoers 文件的末尾:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
www-data ALL=(ALL) NOPASSWD:/sbin/ifdown
www-data ALL=(ALL) NOPASSWD:/sbin/ifup
www-data ALL=(ALL) NOPASSWD:/bin/cat /etc/wpa_supplicant/wpa_supplicant.conf
www-data ALL=(ALL) NOPASSWD:/bin/cat /etc/wpa_supplicant/wpa_supplicant-wlan[0-9].conf
www-data ALL=(ALL) NOPASSWD:/bin/cp /tmp/wifidata /etc/wpa_supplicant/wpa_supplicant.conf
www-data ALL=(ALL) NOPASSWD:/bin/cp /tmp/wifidata /etc/wpa_supplicant/wpa_supplicant-wlan[0-9].conf
www-data ALL=(ALL) NOPASSWD:/sbin/wpa_cli -i wlan[0-9] scan_results
www-data ALL=(ALL) NOPASSWD:/sbin/wpa_cli -i wlan[0-9] scan
www-data ALL=(ALL) NOPASSWD:/sbin/wpa_cli -i wlan[0-9] reconfigure
www-data ALL=(ALL) NOPASSWD:/bin/cp /tmp/hostapddata /etc/hostapd/hostapd.conf
www-data ALL=(ALL) NOPASSWD:/etc/init.d/hostapd start
www-data ALL=(ALL) NOPASSWD:/etc/init.d/hostapd stop
www-data ALL=(ALL) NOPASSWD:/etc/init.d/dnsmasq start
www-data ALL=(ALL) NOPASSWD:/etc/init.d/dnsmasq stop
www-data ALL=(ALL) NOPASSWD:/bin/cp /tmp/dhcpddata /etc/dnsmasq.conf
www-data ALL=(ALL) NOPASSWD:/sbin/shutdown -h now
www-data ALL=(ALL) NOPASSWD:/sbin/reboot
www-data ALL=(ALL) NOPASSWD:/sbin/ip link set wlan[0-9] down
www-data ALL=(ALL) NOPASSWD:/sbin/ip link set wlan[0-9] up
www-data ALL=(ALL) NOPASSWD:/sbin/ip -s a f label wlan[0-9]
www-data ALL=(ALL) NOPASSWD:/bin/cp /etc/raspap/networking/dhcpcd.conf /etc/dhcpcd.conf
www-data ALL=(ALL) NOPASSWD:/etc/raspap/hostapd/enablelog.sh
www-data ALL=(ALL) NOPASSWD:/etc/raspap/hostapd/disablelog.sh
www-data ALL=(ALL) NOPASSWD:/etc/raspap/hostapd/servicestart.sh

修改完成之后,git clone Web 文件到 /var/www/html 路径下:

1
2
sudo rm -rf /var/www/html
sudo git clone https: //github .com /billz/raspap-webgui /var/www/html

将图标资源移动到 Web 根目录。

1
sudo mv /var/www/html/dist/icons/ * /var/www/html

修改文件的所有者为 www-data 用户。

1
sudo chown -R www-data:www-data /var/www/html

将 RaspAP 的配置文件移动到正确的位置。

1
2
3
sudo mkdir /etc/raspap
sudo mv /var/www/html/raspap .php /etc/raspap/
sudo chown -R www-data:www-data /etc/raspap

将 HostAPD 日志和服务控制脚本移动到正确的位置。

1
2
3
sudo mkdir /etc/raspap/hostapd
sudo mv /var/www/html/installers/ *log.sh /etc/raspap/hostapd
sudo mv /var/www/html/installers/service *.sh /etc/raspap/hostapd

修改日志和服务控制脚本的拥有者和读写执行权限。

1
2
sudo chown -c root:www-data /etc/raspap/hostapd/ *.sh
sudo chmod 750 /etc/raspap/hostapd/ *.sh

在 /etc/rc.local 的 exit 0 之前添加下面的内容:

1
2
3
echo 1 > /proc/sys/net/ipv4/ip_forward #RASPAP
iptables -t nat -A POSTROUTING -j MASQUERADE #RASPAP
iptables -t nat -A POSTROUTING -s 192.168.50.0 /24 ! -d 192.168.50.0 /24 -j MASQUERADE #RASPAP

强制载入 /etc/rc.local 让配置生效。

1
2
sudo systemctl restart rc- local .service
sudo systemctl daemon-reload

取消对热点服务的屏蔽,并启用热点。

1
2
sudo systemctl unmask hostapd.service
sudo systemctl enable hostapd.service

将 raspap 服务移动到正确的位置并启用。

1
2
sudo mv /var/www/html/installers/raspap .service /lib/systemd/system
sudo systemctl enable raspap.service

重启树莓派,RaspAP 将自动运行!

1
sudo reboot

RaspAP 默认的登录用户名是 admin,默认密码是 secret。

可选服务

OpenVPN 和 TOR 作为两个附加服务,可以通过简单的设置开启。
修改 /var/www/html/includes/config.php 文件中下面的两行即可。

1
2
3
// Optional services, set to true to enable.
define('RASPI_OPENVPN_ENABLED', false );
define('RASPI_TORPROXY_ENABLED', false );

GitHub:https://github.com/billz/raspap-webgui/
FAQ:https://github.com/billz/raspap-webgui/wiki/FAQs

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1803479.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

白话解读网络爬虫

网络爬虫(Web Crawler),也称为网络蜘蛛、网络机器人或网络蠕虫,是一种自动化程序或脚本,被用来浏览互联网并收集信息。网络爬虫的主要功能是在互联网上自动地浏览网页、抓取内容并将其存储在本地或远程服务器上供后续处…

备战十一届大唐杯国赛预选赛

这次省赛带了太多个省一了,具体可看下面的图片,只放了一部分。目前根据可靠消息,应该还有个预选赛和去年一样,就是还会考一次仿真。如果说通过了就是国二起步然后去北方工业争夺国一国二,没过的话就是国三。 每…

利用GPT和PlantUML快速生成UML图用于设计

在软件开发中,设计阶段可是关键的一步。UML(统一建模语言)图能帮我们更清晰地理解和规划系统结构,但手动画UML图有时会很费时费力。好消息是,通过结合使用ChatGPT和PlantUML,我们可以高效地生成UML图&#…

最新下载:Hype 4 mac版【软件附加安装教程】

【简介】 Hype是一款强大的Mac OS平台 HTML5 创作工具,它可以在网页上做出赏心悦目的动画效果,创建丰富的网页交互动画,支持层、时间轴等编辑方式,并能很好的导出HTML5/CSS3/JavaScript,在台式机,智能手机…

进口电动低温调节阀的作用-美国NOTON

进口电动低温调节阀在低温环境下的精确控制、广泛的工业应用、高效能设计、耐低温性和密封性、稳定性及可靠性以及安全性等方面发挥着重要作用。 进口电动低温调节阀的作用主要体现在以下几个方面: 低温环境下的精确控制: 进口电动低温调节阀是一种专为…

2024 年最新 Python 基于百度智能云实现短语音识别详细教程

百度智能云语音识别 采用国际领先的流式端到端语音语言一体化建模算法,将语音快速准确识别为文字,支持手机应用语音交互、语音内容分析、机器人对话等场景。百度短语音识别可以将 60 秒以下的音频识别为文字。适用于语音对话、语音控制、语音输入等场景…

Shell以及Shell编程

Shell的任务 ①分析命令; ②处理通配符、变量替换、命令替换、重定向、管道和作业控制; ③搜索命令并执行。 内部命令:内嵌在Shell中。 外部命令:存在于磁盘上的独立可执行文件。 #!/bin/bash #! 称为一个幻数&…

微信小程序毕业设计-综合文化信息管理系统项目开发实战(附源码+论文)

大家好!我是程序猿老A,感谢您阅读本文,欢迎一键三连哦。 💞当前专栏:微信小程序毕业设计 精彩专栏推荐👇🏻👇🏻👇🏻 🎀 Python毕业设计…

【开源】医院电子病历管理系统 SSM+JSP+MySQL

目录 一、项目介绍 科室模块 医生模块 预约挂号模块 就诊记录模块 就诊评价模块 二、项目界面 三、核心代码 一、项目介绍 经典老框架SSM打造入门项目《医院电子病历管理系统》,分为用户网页和管理后台,包括科室模块、医生模块、预约挂号模块、…

老黄一举揭秘三代GPU!打破摩尔定律,打造AI帝国,量产Blackwell解决ChatGPT全球耗电难题

近日,老黄手持Blackwell向全世界展示的那一刻,全场观众沸腾了。 这是迄今为止世界上最大的芯片! 用老黄的话来说,它是「全世界迄今为止制造出来的最复杂、性能最高的计算机。」GPT-4o深夜发布!Plus免费可用&#xff01…

10倍速开发开关电源:PSIM DLL集成指南与如何单步调试你的代码

文末有彩蛋哦。 去年提到要写一篇如何在利用PSIM Visual Studio进行仿真联调,加速实际嵌入式端C代码的开发,但因为懒一直没兑现。 本期简单总结下实现的方法。 特别声明:本文约一半以上内容有kimi/文心一言提问式生成,仅用于技…

【数据结构】二叉树:简约和复杂的交织之美

专栏引入: 哈喽大家好,我是野生的编程萌新,首先感谢大家的观看。数据结构的学习者大多有这样的想法:数据结构很重要,一定要学好,但数据结构比较抽象,有些算法理解起来很困难,学的很累…

菜品信息分页查询——后端SpringBoot

1.分页查询的逻辑: 页面发送ajax请求,将分页查询参数(page,pageSize, name)提交到服务端,获取分页数据; 页面发送请求,请求服务端进行图片下载,用于页面图片展示。 开发菜品信息分页查询功能&a…

大模型应用:基于Golang + 大模型构建简易的电商售前对话服务

1.背景 某X互联网电商公司为了解决当前大量用户的售前咨询问题,需要建设一个不需要客服介入的简易电商售前机器人,用于回答用户的售前问题,并给出基本可靠的咨询回答。 当前大模型如gpt、baichuan、文心等均有开放使用的OpenAPI接口&#xf…

2024 vite 静态 scp2 自动化部署

1、导入库 npm install scp2 // 自动化部署 npm install chalk // 控制台输出的语句 npm install ora2、核心代码 创建文件夹放在主目录下的 deploy/index.js 复制粘贴以下代码: import client from scp2; import chalk from chalk; import ora from ora;const s…

LMS 噪声测试解决方案

在城区,交通噪声是导致不适的一大源头,它影响着数百万人的日常生活,并会对健康与生活质量产生不利影响。为创造更为和谐宜居的生活环境、降低噪声所带来的风险,立法委员们正依据通过噪声(PBN)水平制定可以接受的噪声排放标准和承受…

WordPress网站更换域名后如何重新激活elementor

在创建WordPress网站时,我们常常需要更改域名。但是,在更换域名后,你可能会遇到一个问题:WordPress后台中的Elementor插件授权状态会显示为不匹配。这时,就需要重新激活Elementor插件的授权。下面我会详细说明如何操作…

应用广义线性模型一|线性模型

文章目录 一、统计学及思维模式二、未知现象的数学描述三、线性模型(一)线性模型的定义(二)线性模型的参数估计(三)线性模型的应用(四)离散解释变量的设计向量构建方法 四、线性模型…

iOS18:借助 Al,Siri 将获得广泛的知识,以便触发各个应用的功能

iOS18:借助 Al,Siri 将获得广泛的知识,以触发各个应用的功能 预计Siri将成为iOS18中一系列与人工智能相关增强功能的核心。 根据彭博社记者马克古尔曼的一份新报告,可以得知关于苹果智能助手的一些具体升级的新信息。 Siri新的人工智能: …

golang协程工作池处理多任务示例

1. 工作方法实现 // 工作线程 // id : 线程号 // jobs : 任务通道 (chan) // results: 完成结果通道 (chan) func worker(id int, jobs <-chan int, results chan<- int) {//遍历任务for j : range jobs {fmt.Println("工作协程: ", id, "启动任务: &quo…