Ubuntu 搭建NextCloud私有云盘【内网穿透远程访问】
文章目录
- 1.前言
- 2.本地软件安装
- 2.1 nextcloud安装
- 2.2 cpolar安装
- 3.本地网页发布
- 3.1 Cpolar云端设置
- 3.2 Cpolar本地设置
- 4.公网访问测试
- 5. 结语
1.前言
对于爱好折腾的电脑爱好者来说,Linux是绕不开的、必须认识的系统(大部分服务器都是采用Linux操作系统),而图形化的Ubuntu就是最好的熟悉Linux操作方式的练手系统。笔者家里就有一台安装了Ubuntu系统的电脑,不过在了解Linux系统的操作后,就处于半闲置状态,偶尔打开玩一把Ubuntu系统自带的麻将游戏。由于闲置显得太浪费,笔者打算使用Cpolar的内网穿透功能与开源的Nextcloud软件配合,将其改造成能以http协议访问的私有云盘,并为其生成一个公共互联网地址,用来存储下视频音乐小说之类,方便随时在移动设备上观看。
2.本地软件安装
通常Ubuntu22.04版本提供了Snap这个软件包安装管理,所以我们可以在Snap上安装Nextcloud,而不必费心配置web和数据库服务器。
2.1 nextcloud安装
首先在Ubuntu系统上安装Snap,只要输入两行命令就可以进行snap的安装
sudo apt-get install snapd
及
sudo apt-get install snapcraft
接着,在输入在snap上安装Nextcloud的命令
sudo snap install nextcloud
命令输入后,snap会自动下载软件并安装。
为了确认安装是否成功,我们可以输入查询更改的命令,并通过反馈看到nextcloud是否安装完成。
snap changes nextcloud
安装完成后,我们可以输入命令,来启动或关闭nextcloud。
启动: sudo snap start nextcloud
停止: sudo snap stop nextcloud
在确保nextcloud正常启动后,就可以在ubuntu自带的浏览器中,输入ubuntu的网络地址(即ubuntu在局域网的IP地址),就能打开nextcloud的安装程序。当然,设置管理员账号和密码是必须的。
Nextcloud安装完成后,就可以正常查看Nextcloud云盘。
2.2 cpolar安装
在nextcloud安装完成后,就可以接着安装cpolar。我们可以在浏览器中访问cpolar的官网(https://www.cpolar.com/),找到对应的cpolar版本进行下载安装。
当然,也就简单的办法,就是直接输入命令进行一键脚本安装
“curl -L https://www.cpolar.com/static/downloads/install-release-cpolar.sh | sudo bash”
查看版本号,有正常显示版本号即为安装成功
cpolar version
然后进行token认证。登录cpolar官网后台,点击左侧的验证,查看自己的认证token,之后将token贴在命令行里
cpolar authtoken xxxxxxx
再简单穿透测试一下,有正常生成相应的公网地址即为穿透成功,按ctrl+c退出
cpolar http 8080
然后向系统添加服务
sudo systemctl enable cpolar
启动cpolar服务
sudo systemctl start cpolar
查看服务状态,正常显示为active表示为启动成功状态
sudo systemctl status cpolar
在cpolar安装完成后,我们可以在浏览器中输入localhost:9200打开cpolar的Web-UI界面,对打算建立(或已经建立)的内网穿透隧道进行编辑。
由于笔者打算在ubuntu系统上设置能随时访问的云盘,因此需要固定的内网穿透数据隧道(固定内网穿透数据隧道需要升级至基础版及以上),因而这时笔者还不用在客户端设置数据隧道信息(免费版的可以直接在客户端设置数据隧道,但每隔24小时数据隧道就变动一次,具体设置内容可以直接查看“3.2.cpolar本地设置”)。
3.本地网页发布
要生成一个稳定的cpolar内网穿透数据隧道,我们需要在cpolar云端(负责生成稳定的公共互联网地址,即建立“数据隧道”入口)和cpolar客户端(负责将公共互联网地址与本地nextcloud连接起来,即“数据隧道”的出口)两方面进行设置,而设置内容也十分简单。
3.1 Cpolar云端设置
首先登录cpolar的云端,在cpolar主页面左侧找到“预留”按钮,点击进入预留页面
在预留
页面,找到保留二级子域名
栏位,在这个栏位,我们需要填入几项简单信息,对打算建立的隧道入口进行设置。这几项信息包括:
- 地区:这里我们在下拉菜单中选择实际使用地即可;
- 二级域名:二级域名可以选择自己喜欢的内容填写,不过需要注意的是,该内容最终会显示的公网URL中,因此需要选择合适的内容填入;
- 描述:该栏可以看做这条数据隧道的备注,只要方便分辨即可;
设置完成后,就可以点击右侧的保留
,建立起一条空白数据隧道,并获得一个二级子域名。接下来,我们回到cpolar客户端,将这条空白数据隧道与ubuntu系统的nextcloud连接起来。
3.2 Cpolar本地设置
在ubuntu本地,我们登录cpolar客户端,在客户端主界面左侧找到隧道管理
项下的创建隧道
按钮,点击进入隧道创建页面。
在这个页面,同样需要几项设置,这几项设置为:
- 隧道名称:可以看做cpolar本地的隧道信息注释,只要方便分辨即可;
- 协议:即以何种方式连接本地端口,这里我们选择http协议;
- 本地地址:本地地址即为本地网站的输出端口号,在这个例子中为80;
- 域名类型:由于我们已经在cpolar云端预留了二级子域名的固定隧道,因此勾选“二级子域名”(如果预留的是自定义域名,则勾选自定义域名),并在下一行“Sub Domain”栏中填入预留的二级子域名,该例子中为“mydrive”;
- 地区:与cpolar云端预留的信息一样,我们依照实际使用地填写即可;
在填入各项信息后,就可以点击页面下方的创建
按钮,将cpolar云端的空白数据隧道与本地nextcloud端口连接起来。如果需要的话,我们可以在隧道管理
项下的隧道列表
中,控制这条数据隧道的开启和关闭,并随时对已经填入的隧道信息进行更改。
而这条数据隧道的公共互联网地址,我们可以在状态
项下的在线隧道列表
里看到。
4.公网访问测试
最后,我们通过cpolar生成的公共互联网地址,尝试访问nextcloud。但nextcloud反馈为“通过不被信任的域名访问”错误页面。这是因为nextcloud做了限制,只在局域网内访问。
这时我们只要在命令行中输入
sudo nextcloud.occ config:system:set trusted_domains 1 --value=*.*.*.*
添加访问方式为“...”,即添加不限访问方式的命令,即可解决这个问题。命令输入后重启一次nextcloud,就可以通过cpolar生成的二级子域名访问到ubuntu上的nextcloud云盘。
5. 结语
至此,我们就将ubuntu系统变成了能在公共互联网上轻松访问到的私人云盘。由于这个云盘的公共互联网地址是自己设置的,因此外人并不知道。加上cpolar的加密安全数据传输,因此不必担心信息泄露。而cpolar使用的端口映射技术,不仅可以用在发布局域网的私人云盘上,只要知道设备和软件的输出端口,还能开发出更多好玩有趣的场景,cpolar官网上有很多类似的教程介绍,大家可以参考开发出自己的应用场景。
相关文章:

Ubuntu 搭建NextCloud私有云盘【内网穿透远程访问】
文章目录1.前言2.本地软件安装2.1 nextcloud安装2.2 cpolar安装3.本地网页发布3.1 Cpolar云端设置3.2 Cpolar本地设置4.公网访问测试5. 结语1.前言 对于爱好折腾的电脑爱好者来说,Linux是绕不开的、必须认识的系统(大部分服务器都是采用Linux操作系统&a…...

如何使用vue创建一个完整的前端项目
搭建Vue项目的完整流程可以分为以下几个步骤:安装Node.js和npm:Vue.js是基于Node.js开发的,因此在开始搭建Vue项目之前,需要先安装Node.js和npm(Node.js的包管理器)。可以从官网下载Node.js安装包并安装。安…...

http组成及状态及参数传递
http组成及状态及参数传递 早期的网页都是通过后端渲染来完成的:服务器端渲染(SSR,server side render): 客户端发出请求 -> 服务端接收请求并返回相应HTML文档 -> 页面刷新,客户端加载新的HTML文档&…...

USART_GetITStatus与 USART_GetFlagStatus的区别
文章目录共同点不同点USART_GetITStatus函数详解USART_GetFlagStatus函数共同点 都能访问串口的SR寄存器 不同点 USART_GetFlagStatus(USART_TypeDef USARTx, uint16_t USART_FLAG):* 该函数只判断标志位(访问串口的SR寄存器)。在没有使能…...

Java 系列之 Springboot
系列文章目录 文章目录系列文章目录前言一、Springboot 简介?1.1 什么是启动器?1.2 Springboot 优点1.3 Springboot 核心二、搭建方式2.1 搭建方式一2.2 搭建方式二2.3 搭建方式三三、启动原理3.1 初始化SrpingApplication对象3.2 执行run()方法1. 加载监…...

乐山持点科技:抖客推广准入及准出管理规则
抖音小店平台新增《抖客推广准入及准出管理规则》,本次抖音规则具体如下:第一章 概述1.1 目的及依据为维护精选联盟平台经营秩序,保障精选联盟抖客、商家、消费者等各方的合法权益;根据《巨量百应平台服务协议》、《“精选联盟”服务协议(推广…...
Steam流
Steam流 Stream 流是什么,为什么要用它? Stream是 Java8 新引入的一个包( java.util.stream),它让我们能用声明式的方式处理数据(集合、数组等)。Stream流式处理相较于传统方法简洁高效&#…...

Nuxt实战教程基础-Day01
Nuxt实战教程基础-Day01Nuxt是什么?Nuxt.js框架是如何运作的?Nuxt特性流程图服务端渲染(通过 SSR)单页应用程序 (SPA)静态化 (预渲染)Nuxt优缺点优点缺点安装运行项目总结前言:本教程基于Nuxt2,作为教程的第一天,我们先…...

栈和队列详细讲解+算法动画
栈和队列 栈stack 栈也是一种线性结构相比数组,栈对应的操作数数组的子集只能从一端添加元素,也只能从一端取出元素这一端称为栈顶 栈是一种后进先出的数据结构Last in Firt out(LIFO)在计算机的世界里,栈拥有者不可思议的作用 栈的应用 …...

【Unity3D小技巧】Unity3D中判断Animation以及Animator动画播放结束,以及动画播放结束之后执行函数
推荐阅读 CSDN主页GitHub开源地址Unity3D插件分享简书地址我的个人博客 大家好,我是佛系工程师☆恬静的小魔龙☆,不定时更新Unity开发技巧,觉得有用记得一键三连哦。 一、前言 在日常开发中,可能会遇到要判断Animation或者Anima…...

【1】熟悉刷题平台操作
TestBench使用 与quartus中testbench的写法有些许。或者说这是平台特有的特性!! 1 平台使用谨记 (1)必须删除:若设计为组合逻辑,需将自动生成的clk删除 若不删除,会提示运行超时错误。 &#…...

计算机网络:RIP协议以及距离向量算法
RIP协议 RIP是一种分布式的基于适量向量的路由选择协议,最大优点是简单。要求网络中的每一个路由器都要维护从它自己到其他每一个目的网络的唯一最佳(最短)距离记录,最多包含15个路由器,距离为16就表示网络不可达&…...

[数据结构与算法(严蔚敏 C语言第二版)]第1章 绪论(课后习题+答案解析)
1. 简述下列概念:数据、数据元素、数据项、数据对象、数据结构、逻辑结构、存储结构、抽象数据类型。 数据 数据是客观事物的符号表示,是所有能输人到计算机中并被计算机程序处理的符号的总称。数据是信息的载体,能够被计算机识别、存储和加工 数据元素…...
JS_countup.js 的简单使用,数字滚动效果
countup.js countup.js 是一个轻量级,无依赖的JavaScript类,通过简单的设置就可以达到数字滚动的效果 官网:https://inorganik.github.io/countUp.js/ 源码 var CountUpfunction(target,startVal,endVal,decimals,duration,options){var …...

【C++知识点】STL 容器总结
✍个人博客:https://blog.csdn.net/Newin2020?spm1011.2415.3001.5343 📚专栏地址:C/C知识点 📣专栏定位:整理一下 C 相关的知识点,供大家学习参考~ ❤️如果有收获的话,欢迎点赞👍…...
C++---背包模型---装箱问题(每日一道算法2023.3.9)
注意事项: 本题是"动态规划—01背包"的扩展题,dp和优化思路不多赘述。 题目: 有一个箱子容量为 V,同时有 n 个物品,每个物品有一个体积(正整数)。 要求 n 个物品中,任取若…...

if-else if与switch的练习1:输入两个数,输出两个数的加减乘除的值
1.if-else if的练习 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta http-equiv"X-UA-Compatible" content"IEedge"><meta name"viewport" content"widthdevice…...

【教程】你现在还不知道微软的New Bing?你out了,快点进来看
哈喽啊,大家好,好久不见,我是木易巷! 不禁感叹,AI人工智能时代真的已经来临! 目前,谷歌和微软就各自面向大众的产品发布了重大公告。谷歌推出了一款名为Bard实验性对话式 AI 服务,而…...
https流程
ssl加密协议包含以下4个步骤 1、服务器去第三方机构注册生成证书,第三方机构非对称加密生成公钥私钥,给服务器一个私钥,证书包含了公钥。 2、客户端向服务器索要证书 3、客户端向第三方机构验证证书 4、客户端对称加密生成密钥,在…...
python魔法方法
Python中的魔法方法(也称为特殊方法或双下划线方法)是在类定义中使用的一些特殊的函数,可以使用dir方法查询。它们以双下划线开头和结尾,例如__init__和__str__。这些方法被Python解释器用于执行特定的操作,例如实例化对象、字符串…...
Vim 调用外部命令学习笔记
Vim 外部命令集成完全指南 文章目录 Vim 外部命令集成完全指南核心概念理解命令语法解析语法对比 常用外部命令详解文本排序与去重文本筛选与搜索高级 grep 搜索技巧文本替换与编辑字符处理高级文本处理编程语言处理其他实用命令 范围操作示例指定行范围处理复合命令示例 实用技…...
Golang 面试经典题:map 的 key 可以是什么类型?哪些不可以?
Golang 面试经典题:map 的 key 可以是什么类型?哪些不可以? 在 Golang 的面试中,map 类型的使用是一个常见的考点,其中对 key 类型的合法性 是一道常被提及的基础却很容易被忽视的问题。本文将带你深入理解 Golang 中…...

边缘计算医疗风险自查APP开发方案
核心目标:在便携设备(智能手表/家用检测仪)部署轻量化疾病预测模型,实现低延迟、隐私安全的实时健康风险评估。 一、技术架构设计 #mermaid-svg-iuNaeeLK2YoFKfao {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg…...

Vue3 + Element Plus + TypeScript中el-transfer穿梭框组件使用详解及示例
使用详解 Element Plus 的 el-transfer 组件是一个强大的穿梭框组件,常用于在两个集合之间进行数据转移,如权限分配、数据选择等场景。下面我将详细介绍其用法并提供一个完整示例。 核心特性与用法 基本属性 v-model:绑定右侧列表的值&…...

基于uniapp+WebSocket实现聊天对话、消息监听、消息推送、聊天室等功能,多端兼容
基于 UniApp + WebSocket实现多端兼容的实时通讯系统,涵盖WebSocket连接建立、消息收发机制、多端兼容性配置、消息实时监听等功能,适配微信小程序、H5、Android、iOS等终端 目录 技术选型分析WebSocket协议优势UniApp跨平台特性WebSocket 基础实现连接管理消息收发连接…...

渗透实战PortSwigger靶场-XSS Lab 14:大多数标签和属性被阻止
<script>标签被拦截 我们需要把全部可用的 tag 和 event 进行暴力破解 XSS cheat sheet: https://portswigger.net/web-security/cross-site-scripting/cheat-sheet 通过爆破发现body可以用 再把全部 events 放进去爆破 这些 event 全部可用 <body onres…...

转转集团旗下首家二手多品类循环仓店“超级转转”开业
6月9日,国内领先的循环经济企业转转集团旗下首家二手多品类循环仓店“超级转转”正式开业。 转转集团创始人兼CEO黄炜、转转循环时尚发起人朱珠、转转集团COO兼红布林CEO胡伟琨、王府井集团副总裁祝捷等出席了开业剪彩仪式。 据「TMT星球」了解,“超级…...

GruntJS-前端自动化任务运行器从入门到实战
Grunt 完全指南:从入门到实战 一、Grunt 是什么? Grunt是一个基于 Node.js 的前端自动化任务运行器,主要用于自动化执行项目开发中重复性高的任务,例如文件压缩、代码编译、语法检查、单元测试、文件合并等。通过配置简洁的任务…...

Kafka入门-生产者
生产者 生产者发送流程: 延迟时间为0ms时,也就意味着每当有数据就会直接发送 异步发送API 异步发送和同步发送的不同在于:异步发送不需要等待结果,同步发送必须等待结果才能进行下一步发送。 普通异步发送 首先导入所需的k…...

AirSim/Cosys-AirSim 游戏开发(四)外部固定位置监控相机
这个博客介绍了如何通过 settings.json 文件添加一个无人机外的 固定位置监控相机,因为在使用过程中发现 Airsim 对外部监控相机的描述模糊,而 Cosys-Airsim 在官方文档中没有提供外部监控相机设置,最后在源码示例中找到了,所以感…...