如何在树莓派 Raspberry Pi中本地部署一个web站点并实现无公网IP远程访问

文章目录

    • 前言
    • 1. 安装 Raspberry Pi OS
    • 2. 测试 web 站点
    • 3. 安装静态样例站点
    • 4. 将web站点发布到公网
      • 4.1 安装 Cpolar
      • 4.2 cpolar进行token认证
      • 4.3 生成cpolar随机域名网址
      • 4.4 生成cpolar二级子域名
      • 4.5 将参数保存到cpolar配置文件中
      • 4.6 测试修改后配置文件
      • 4.7 配置cpolar服务开机自启动

前言

本文主要介绍如何在树莓派 Raspberry Pi中搭建一个简单的web网站并结合cpolar内网穿透工具实现将本地站点发布至公网,使用生成的公网链接轻松访问本地搭建的网站。

1. 安装 Raspberry Pi OS

下载适用于您的操作系统的树莓派镜像工具。它支持大多数操作系统(Windows、Mac 和 Linux)。

https://www.raspberrypi.org/downloads/

  • 运行并安装树莓派镜像工具
  • 选择 Raspberry Pi OS -> Raspberry Pi OS (32-bit)
  • 将 SD 卡插入计算机
  • 点击 Write 按钮

img

设置 Apache Web 服务器

Apache 是一种流行的 Web 服务器应用程序,您可以将其安装在 Raspberry Pi 上以允许它为网页提供服务。

Apache 本身可以通过 HTTP 提供 HTML 文件。通过附加模块,它可以使用 PHP 等脚本语言提供动态网页。

sudo apt-get install apache2 -y
sudo service apache2 restart

2. 测试 web 站点

默认情况下,Apache 将测试 HTML 文件放在 web 文件夹中,您可以从您的 Pi 或网络上的另一台计算机查看该页面。

在 Raspberry Pi 上打开 Apache 默认网页:

  • 通过从菜单中选择 Internet > Chromium Web 浏览器打开 Chromium。
  • 输入地址 http://localhost

您应该在浏览器窗口中看到:

img

3. 安装静态样例站点

为了让站点的内容更有意义,我们部署一个简单的静态演示站点–冥想放松站点。

cd /var/www/html/
sudo rm *
sudo wget https://www.cpolar.com/static/downloads/meditation-app-master.tar.gz
sudo tar xzf meditation-app-master.tar.gz
sudo mv meditation-app-master/* .
sudo rm -rf meditation-app-master meditation-app-master.tar.gz

重新在浏览器打开,并刷新站点:http://localhost

img

这是一个用于冥想的小工具站点,可以用它帮助自己工作之余放松2-10分钟。

它可以选择不同冥想情景及放松时间(2-5-10分钟)。

4. 将web站点发布到公网

目前,这个站点只能在局域网站可以被访问,公网用户是访问不到的。要想所有人访问你创建的漂亮站点,我们需要做如下工作。

4.1 安装 Cpolar

cpolar是一款内网穿透工具,可以将您的内网站点暴露到公网上,使所有人可以访问到你的站点。

cpolar官网地址:https://www.cpolar.com/

  • cpolar一键安装脚本:(国内用户)
curl -L https://www.cpolar.com/static/downloads/install-release-cpolar.sh | sudo bash
  • 或短链接安装方式:(国外用户)
curl -sL https://git.io/cpolar | sudo bash
  • 查看cpolar版本信息
cpolar version

如果正常显示,则安装成功,如图:

img

4.2 cpolar进行token认证

如果您还没有cpolar账号,请去cpolar官网注册并登录后台获取认证token

cpolar authtoken xxxxxxxxxxxxxxxxxx

4.3 生成cpolar随机域名网址

cpolar http -region=cn_vip 80

img

上图显示,cpolar将内网站点,发布到了一个随机域名网址:https://711d7522.vip.cpolar.cn

  • 我们打开浏览器试一下:https://711d7522.vip.cpolar.cn

img

现在,我们已经发布了内网的web站点到公网,任何人都可以访问到它。

回到终端窗口,按CTRL+C键,退出cpolar

此时,公网地址不再能被访问。

4.4 生成cpolar二级子域名

虽然已经发布到公网,但域名是随机变化的,只适合临时测试使用。如果要长期使用,我们要配置二级子域名。

操作步骤:

  • 升级到cpolar基础套餐
  • 登录到cpolar后台–>预留–>保留二级子域名,例如添加dev9,地区选择VIP China地区

在前台终端测试域名

cpolar http -subdomain=dev9 -region=cn_vip 80

如果显示正常,则说明我们已经配置好了。

img

用新的域名在浏览器里访问:

正常则说明我们的固定二级子域名配置好了。

4.5 将参数保存到cpolar配置文件中

刚刚我们在前台运行cpolar程序,关掉后,域名消失,现在我们将参数保存到配置文件中。以支持开机后台自启动运行。

  • 编辑配置文件
nano /usr/local/etc/cpolar/cpolar.yml

如图:

img

上图为样例配置文件,它会配置两个默认隧道:一个ssh隧道和一个website隧道。

参数说明:

authtoken: xxxxxxxxxxxx #认证tokentunnels:ssh:              #隧道名称,表示ssh,名称可以自定义addr: 22        #端口号为22proto: tcp      #协议tcpregion: cn_vip  #地区,cn_vip,可选:us,hk,cn,cn_vipwebsite:          #隧道名称,用户可以自定义,但多隧道时,不可重复addr: 8080      #本地Web站点端口proto: http     #协议httpregion: cn_vip  #地区,cn_vip,可选:us,hk,cn,cn_vip

本例中,我们需要修改如下内容:

  • 将website隧道的默认8080端口修改为80
  • 添加一行 subdomain: "你的二级子域名"

修改后的效果如图:

img

注意: 配置文件是yaml格式的,缩进敏感,而且不能有TAB键

然后按CTRL+X,退出,提示你是否保存,回答Y,确认保存文件路径,回车

4.6 测试修改后配置文件

在前台启动所有隧道测试

cpolar start-all

img

如上图显示,则为正常,按CTRL+C退出

如果报错,会提示配置文件某行有错误,请重新修改。直到类似上图正确输出。

4.7 配置cpolar服务开机自启动

  • 配置cpolar开机自启动
sudo systemctl enable cpolar
  • 守护进程方式,启动cpolar
sudo systemctl start cpolar
  • 查看cpolar守护进程状态
sudo systemctl status cpolar

如图说明,启动状态成功

img

  • 重新启动
sudo reboot

重启后,检查cpolar隧道是否仍在线

访问后台–>状态 https://dashboard.cpolar.com/status

如图说明配置成功

img

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

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

相关文章

申请邓白氏编码,提示“上传的营业执照与填写信息不一致”

1、问题:申请邓白氏编码,填写企业信息时,提示“上传的营业执照与填写信息不一致” 解决:检查企业名称里是否有括号等,改为英文字符 2、 问题:从apple网站查询邓白氏编码,显示列表里没有自家公司…

实在Agent智能体:引领智能自动化新纪元

在数字化转型的浪潮中,实在智能科技有限公司凭借其前沿技术,推出了实在Agent智能体——一款革命性的超自动化智能体。它不仅代表了人工智能技术的新高度,更预示着未来工作方式的变革。 什么是实在Agent智能体? 实在Agent智能体是…

电脑文件加密软件有哪些?口碑、安全性最好的文件加密软件

某企业的一位员工因不慎将包含敏感客户数据的电脑丢失,导致企业面临巨大的法律风险和经济损失。 这一事件凸显了电脑文件加密的必要性。 如果该企业事先采用了文件加密软件对敏感数据进行保护,即使电脑丢失,攻击者也无法轻易获取到文件内容…

开发Web3 ETF的技术难点

开发Web3 ETF(Exchange-Traded Fund,交易所交易基金)软件时,需要注意以下几个关键问题。开发Web3 ETF软件是一个复杂的过程,涉及到金融、法律和技术多个领域的专业知识。开发团队需要综合考虑上述问题,以确…

修改JupyterNotebook文件存储位置

Jupyter Notebook 1、通过AnaConda安装Jupyter Notebok 2、在开始菜单里找到并打开Anaconda Prompt,输入如下命令,然后执行。 jupyter notebook --generate-config4、打开以下文件 找到 C:/Userzh/.../.jupyter 打开 jupyter_notebook_config.py 取消…

21物联1班shift五次

1.选择推荐选项 2.等待 3.点击取消 4.选择查看问题详细信息 5.点击txt文件 6.找到system文件夹,将sethc改为qqq,将cmd文件改为sethc文件 7.单击完成。重新启动虚拟机。连续按五次shift出现cmd框,修改密码

【Java】从0实现一个基于SpringBoot的个人博客系统

从0实现一个基于SpringBoot的个人博客系统 项目介绍准备工作数据准备创建项目准备前端页面编写配置文件 项目公共模块实体类公共层业务代码持久层实现博客列表实现博客列表约定前后端交互接口 实现博客详情约定前后端交互接口实现服务器代码 实现登录JWT令牌JWT令牌生成和校验实…

Salesforce Flow - Screen Flow设置详解

今天给大家来详细介绍下如何设置Screen Flow: 一、Screen Flow元素介绍 先介绍下Screen Flow(屏幕流)的界面及元素,如下图Screen Flow的设计看板包含有元素、字段及界面看板;Component中包含有各种类型的字段可以通过…

读天才与算法:人脑与AI的数学思维笔记22_中文房间

1. 华生的工作模式 1.1. 请你想象一个巨大的场景,其中有单词、名字和其他可能的答案,它们散布在各处 1.1.1. IBM所做的第一步是以某种连贯的方式排列单词 1.1.2. 第二步是理解每个问题,并为该问题生成候选位置标记 1.1.2.1. 爱因斯坦会演…

IT项目管理-大题【太原理工大学】

一、根据进度网络写出时间参数表、关键路径、总工期 此类题一般是给一个表,问三问。 第一问会问某个活动的时间参数,但我们需要把整个表都求出来,否则单求一个很困难(如果你就是不想求整张表也行,不是硬性要求&#xf…

vue3 - 150

目录 vue优势使用方式编写vue代码指令响应式数据其他 vue优势 功能全面生态好,语法简洁效率高,免去 DOM 操作苦,开发重任一肩挑! 使用方式 1.通过cdn引入来将 Vue 应用到整个页面 2.或通过官方脚手架 create-vue来创建完整的v…

直播报名 | 珈和科技携手潍柴雷沃共探“现代农场”未来式

数据赋农季系列直播第四期,我们将以“未来农业发展趋势之农场智慧化、管理数据化”为主题展开,此次系列直播由珈和科技及湖北珞珈实验室共同主办,第四期直播很荣幸邀请到潍柴雷沃参与其中,双方将就智慧农服平台和数据交易SaaS平台…

基于PHP高考志愿填报系统搭建私有化部署源码

金秋志愿高考志愿填报系统是一款为高中毕业生提供志愿填报服务的在线平台。该系统旨在帮助学生更加科学、合理地选择自己的大学专业和学校,从而为未来的职业发展打下坚实的基础。 该系统的主要功能包括:报考信息查询、志愿填报数据指导、专业信息查询、院校信息查询…

Python-VBA函数之旅-round函数

目录 一、round函数的常见应用场景 二、round函数使用注意事项 三、如何用好round函数? 1、round函数: 1-1、Python: 1-2、VBA: 2、推荐阅读: 个人主页: https://blog.csdn.net/ygb_1024?spm1010.2…

04、Kafka集群安装

1、准备工作 首先准备一台虚拟机,centos7系统,先在一台上配置安装后,最后克隆成多台机器。 1.1 安装JDK (1)下载JDK,上传到 /root/software 路径 下载地址:https://www.oracle.com/cn/java/…

【PyTorch实战演练】使用CelebA数据集训练DCGAN(深度卷积生成对抗网络)并生成人脸(附完整代码)

文章目录 0. 前言1. CelebA数据集1.1 核心特性与规模1.2 应用与用途1.3 获取方式1.4 数据预处理 2. DCGAN的模型构建2.1 生成器模型2.2 判别器模型 3. DCGAN的模型训练(重点)3.1 训练参数3.2 模型参数初始化3.3 训练过程 4. 结果展示4.1 loss值变化过程4…

Linux —— 进程间通信

目录 一、进程间通信的介绍二、管道三、匿名管道四、命名管道五、system V进程间通信 一、进程间通信的介绍 1.进程间通信的概念 进程通信(Interprocess communication),简称:IPC; 本来进程之间是相互独立的。但是…

Elasticsearch的基本使用

Elasticsearch的基本使用 1.基本概念1.1 文档和字段1.2 索引和映射1.3 mysql与elasticsearch对比 2.索引库2.1 es中mapping映射属性2.2.es中索引库的增删改查 3.文档3.1 新增文档3.2 查询文档3.3 删除文档3.4 修改文档3.4.1 全量修改3.4.2 增量修改3.5 总结 4.DSL查询语法4.1 D…

【LLM第三篇】名词解释:RLHF——chatgpt的功臣

RLHF (Reinforcement Learning from Human Feedback) ,直译为:“来自人类反馈的强化学习”。RLHF是一种结合了强化学习和人类反馈的机器学习方法,主要用于训练大模型以执行复杂的任务,尤其是当这些任务难以通过传统的奖励函数来精…

CCF-Csp算法能力认证, 202303-1重复局面(C++)含解析

前言 推荐书目,在这里推荐那一本《算法笔记》(胡明),需要PDF的话,链接如下 「链接:https://pan.xunlei.com/s/VNvz4BUFYqnx8kJ4BI4v1ywPA1?pwd6vdq# 提取码:6vdq”复制这段内容后打开手机迅雷…