当前位置: 首页 > news >正文

OpenWRT部署web站点并结合内网穿透实现无公网ip远程访问

文章目录

  • 前言
    • 1. 检查uhttpd安装
    • 2. 部署web站点
    • 3. 安装cpolar内网穿透
    • 4. 配置远程访问地址
    • 5. 配置固定远程地址

前言

uhttpd 是 OpenWrt/LuCI 开发者从零开始编写的 Web 服务器,目的是成为优秀稳定的、适合嵌入式设备的轻量级任务的 HTTP 服务器,并且和 OpenWrt 配置框架非常好地集成在一起。它是管理 OpenWrt 的默认的 Web 服务器,还提供了现代 Web 服务器所有的 功能 。

下面我们将在openwrt上部署uhttpd搭建web服务器,同时使用cpolar将其安全暴露到公网上,让公网用户也可以正常访问到openwrt下的web服务器。

1. 检查uhttpd安装

正常版本下,如果可以在浏览器访问openWRT web控制台界面,表示已经安装了uhttpd,同样,我们可以在根目录下面看到一个名称为www的目录,这样表示已经安装了uhttpd.

image-20230523130756649

2. 部署web站点

既然uhttpd已经安装好了,我们就可以直接使用,我们只需要把我们的站点拷贝进去www文件夹下面即可。接下来主要介绍html网站部署,使用一个免费站点进行演示

进入www文件夹

cd /www

使用wget下载站点,ftp上传文件也可以

wget https://www.cpolar.com/static/downloads/meditation-app-master.tar.gz

下载好后解压

tar xzf meditation-app-master.tar.gz

解压后我们可以看到一个名称为meditation-app-master的文件夹,这里还可以看到一个名称为cgi-bin的文件夹,这个就是openWRT web 控制台界面位置.

image-20230523131916555

此时我们在外部浏览器使用openWRT局域网ip地址加资源路径/meditation-app-master/index.html即可看到我们下载部署的站点。如果不加资源路径,默认会跳转过去openWRT web 界面,此时我们一个静态站点就已经配置好了。

下面我们安装cpolar内网穿透来实现在公网环境下也可以远程访问这个web站点。

image-20230523132258910

3. 安装cpolar内网穿透

通过ssh连接操作openwrt, 下载公钥:

wget -O cpolar-public.key http://openwrt.cpolar.com/releases/public.key

下载完成后添加公钥

opkg-key add cpolar-public.key

添加cpolar的opkg仓库源

echo "src/gz cpolar_packages http://openwrt.cpolar.com/releases/packages/$(. /etc/openwrt_release ; echo $DISTRIB_ARCH)"  >>  /etc/opkg/customfeeds.conf

更新仓库

opkg update

然后开始安装cpolar,分别执行下面三个安装命令安装三个包:

opkg install cpolar
opkg install luci-app-cpolar
opkg install luci-i18n-cpolar-zh-cn

安装完成后,打开openwrt Web管理界⾯,我们可以看到有个service,点击后,即可看到我们cpolar内网穿透

image-20230426172304148

点击进去后即可看到cpolar界面,接下来配置cpolar Authtoken

登录cpolar官网,如果没有注册账号,可以先注册账号,然后点击左侧的验证,查看自己的认证token,

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

20230111103532

之后将官网查看的token复制到openwrt cpolar服务界面的Auth Token里,设置后点击save保存

image-20230426174954224

保存成功后点击界面里的 打开Web-UI界面 ,即可看到cpolar web ui 界面

使用我们官网注册的账号登陆,登陆后即可对隧道进行管理,安装就完成啦

4. 配置远程访问地址

在cpolar web ui管理界面中,我们点击左侧仪表盘的隧道管理——创建隧道,uhttpd由于部署在了openWRT Web管理界面,设置了SSL,所以端口使用443,因此我们要来创建一条http隧道,指向443端口

  • 隧道名称:可自定义,注意不要重复
  • 协议:http
  • 本地地址:443
  • 域名类型:选择随机域名
  • 地区:选择China VIP

点击创建

image-20230523140759808

创建成功后打开在线隧道列表,可以看到公网访问的地址,有两种公网地址访问方式,一种是http,一种是https

image-20230523140850963

然后我们使用其中一种http方式公网地址,并且加上资源路径:/meditation-app-master/index.html在浏览器访问,即可看到我们的站点界面,这样这个远程访问就配置好了.

image-20230523141202524

5. 配置固定远程地址

前面我们创建隧道时使用的是免费随机临时地址,它所生成的公网地址会在24小时内变化,为了方便长久稳定连接,我们可以固定访问地址,在cpolar中叫固定二级子域名,或者您也可以配置使用您自己的域名来访问。这里我们以cpolar子域名为例

需升级至基础套餐或以上才支持配置二级子域名

登录cpolar官网后台,点击左侧仪表盘的预留,找到保留二级子域名,为http隧道保留一个二级子域名。

  • 地区:选择服务器地区
  • 名称:填写您想要保留的二级子域名(可自定义)
  • 描述:即备注,可自定义填写

image-20230523142316564

本例保留一个名称为websitewrt的二级子域名。子域名保留成功后,我们将子域名复制下来,接下来需要将其配置到隧道中去。

image-20230523142403980

打开cpolar web ui管理界面。点击左侧仪表盘的隧道管理——隧道列表,找到需要配置二级子域名的隧道,点击右侧的编辑

修改隧道信息,将二级子域名配置到隧道中:

  • 域名类型:改为选择二级子域名
  • *Sub Domain:填写我们刚刚所保留的二级子域名

修改完成后,点击更新

image-20230523142620625

隧道更新成功后,点击左侧仪表盘的状态——在线隧道列表,可以看到隧道的公网地址,已经更新为二级子域名了.

然后我们使用其中一种http方式地址在浏览器访问,即可看到我们的站点界面,这样一个固定不变的远程访问个人站点配置好了

image-20230523144012999

相关文章:

  • Git合并固定分支的某一部分至当前分支
  • 如何使用useMemo来优化性能
  • 基于 Amazon EC2 和 Amazon Systems Manager Session Manager 的堡垒机的设计和自动化实现
  • jsx语言和js语言的区别
  • Cartographer框架简述
  • 【踩坑专栏】主机ping虚拟机失败
  • (十七)devops持续集成开发——使用jenkins流水线pipeline方式发布一个微服务项目
  • 人工智能学习与实训笔记(二):神经网络之图像分类问题
  • 单例模式的介绍
  • 鸿蒙自定义侧滑菜单布局(DrawerLayout)
  • 《VitePress 简易速速上手小册》第8章 安全性与部署(2024 最新版)
  • ChatGPT丨成像光谱遥感技术中的AI革命:ChatGPT应用指南
  • Excel练习:双层图表
  • Linux | Ubuntu通过USB访问Redmi K40存储出现xxx was not providedby any .service files错误
  • 机器学习面试:逻辑回归与朴素贝叶斯区别
  • ES6指北【2】—— 箭头函数
  • 《剑指offer》分解让复杂问题更简单
  • Angular Elements 及其运作原理
  • echarts花样作死的坑
  • eclipse(luna)创建web工程
  • emacs初体验
  • es6
  • java正则表式的使用
  • PhantomJS 安装
  • python大佬养成计划----difflib模块
  • Spark RDD学习: aggregate函数
  • ViewService——一种保证客户端与服务端同步的方法
  • Vue全家桶实现一个Web App
  • webpack入门学习手记(二)
  • 从0实现一个tiny react(三)生命周期
  • 基于 Ueditor 的现代化编辑器 Neditor 1.5.4 发布
  • 基于webpack 的 vue 多页架构
  • 你不可错过的前端面试题(一)
  • 前端知识点整理(待续)
  • 如何学习JavaEE,项目又该如何做?
  • 如何优雅的使用vue+Dcloud(Hbuild)开发混合app
  • 首页查询功能的一次实现过程
  • 思考 CSS 架构
  • 算法-图和图算法
  • 微信开源mars源码分析1—上层samples分析
  • 我从编程教室毕业
  • 摩拜创始人胡玮炜也彻底离开了,共享单车行业还有未来吗? ...
  • !!java web学习笔记(一到五)
  • #define
  • (14)学习笔记:动手深度学习(Pytorch神经网络基础)
  • (2015)JS ES6 必知的十个 特性
  • (附源码)python房屋租赁管理系统 毕业设计 745613
  • (四)c52学习之旅-流水LED灯
  • (续)使用Django搭建一个完整的项目(Centos7+Nginx)
  • (转)mysql使用Navicat 导出和导入数据库
  • (转)Spring4.2.5+Hibernate4.3.11+Struts1.3.8集成方案一
  • (转)大型网站架构演变和知识体系
  • (转)淘淘商城系列——使用Spring来管理Redis单机版和集群版
  • *ST京蓝入股力合节能 着力绿色智慧城市服务
  • .bat批处理(五):遍历指定目录下资源文件并更新