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解释器用于执行特定的操作,例如实例化对象、字符串…...
UE5 学习系列(二)用户操作界面及介绍
这篇博客是 UE5 学习系列博客的第二篇,在第一篇的基础上展开这篇内容。博客参考的 B 站视频资料和第一篇的链接如下: 【Note】:如果你已经完成安装等操作,可以只执行第一篇博客中 2. 新建一个空白游戏项目 章节操作,重…...
web vue 项目 Docker化部署
Web 项目 Docker 化部署详细教程 目录 Web 项目 Docker 化部署概述Dockerfile 详解 构建阶段生产阶段 构建和运行 Docker 镜像 1. Web 项目 Docker 化部署概述 Docker 化部署的主要步骤分为以下几个阶段: 构建阶段(Build Stage):…...
Android Wi-Fi 连接失败日志分析
1. Android wifi 关键日志总结 (1) Wi-Fi 断开 (CTRL-EVENT-DISCONNECTED reason3) 日志相关部分: 06-05 10:48:40.987 943 943 I wpa_supplicant: wlan0: CTRL-EVENT-DISCONNECTED bssid44:9b:c1:57:a8:90 reason3 locally_generated1解析: CTR…...
HTML 语义化
目录 HTML 语义化HTML5 新特性HTML 语义化的好处语义化标签的使用场景最佳实践 HTML 语义化 HTML5 新特性 标准答案: 语义化标签: <header>:页头<nav>:导航<main>:主要内容<article>&#x…...
Debian系统简介
目录 Debian系统介绍 Debian版本介绍 Debian软件源介绍 软件包管理工具dpkg dpkg核心指令详解 安装软件包 卸载软件包 查询软件包状态 验证软件包完整性 手动处理依赖关系 dpkg vs apt Debian系统介绍 Debian 和 Ubuntu 都是基于 Debian内核 的 Linux 发行版ÿ…...
蓝牙 BLE 扫描面试题大全(2):进阶面试题与实战演练
前文覆盖了 BLE 扫描的基础概念与经典问题蓝牙 BLE 扫描面试题大全(1):从基础到实战的深度解析-CSDN博客,但实际面试中,企业更关注候选人对复杂场景的应对能力(如多设备并发扫描、低功耗与高发现率的平衡)和前沿技术的…...
Maven 概述、安装、配置、仓库、私服详解
目录 1、Maven 概述 1.1 Maven 的定义 1.2 Maven 解决的问题 1.3 Maven 的核心特性与优势 2、Maven 安装 2.1 下载 Maven 2.2 安装配置 Maven 2.3 测试安装 2.4 修改 Maven 本地仓库的默认路径 3、Maven 配置 3.1 配置本地仓库 3.2 配置 JDK 3.3 IDEA 配置本地 Ma…...
【Go语言基础【13】】函数、闭包、方法
文章目录 零、概述一、函数基础1、函数基础概念2、参数传递机制3、返回值特性3.1. 多返回值3.2. 命名返回值3.3. 错误处理 二、函数类型与高阶函数1. 函数类型定义2. 高阶函数(函数作为参数、返回值) 三、匿名函数与闭包1. 匿名函数(Lambda函…...
Ubuntu系统复制(U盘-电脑硬盘)
所需环境 电脑自带硬盘:1块 (1T) U盘1:Ubuntu系统引导盘(用于“U盘2”复制到“电脑自带硬盘”) U盘2:Ubuntu系统盘(1T,用于被复制) !!!建议“电脑…...
五子棋测试用例
一.项目背景 1.1 项目简介 传统棋类文化的推广 五子棋是一种古老的棋类游戏,有着深厚的文化底蕴。通过将五子棋制作成网页游戏,可以让更多的人了解和接触到这一传统棋类文化。无论是国内还是国外的玩家,都可以通过网页五子棋感受到东方棋类…...
