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解释器用于执行特定的操作,例如实例化对象、字符串…...

【Axure高保真原型】引导弹窗
今天和大家中分享引导弹窗的原型模板,载入页面后,会显示引导弹窗,适用于引导用户使用页面,点击完成后,会显示下一个引导弹窗,直至最后一个引导弹窗完成后进入首页。具体效果可以点击下方视频观看或打开下方…...

装饰模式(Decorator Pattern)重构java邮件发奖系统实战
前言 现在我们有个如下的需求,设计一个邮件发奖的小系统, 需求 1.数据验证 → 2. 敏感信息加密 → 3. 日志记录 → 4. 实际发送邮件 装饰器模式(Decorator Pattern)允许向一个现有的对象添加新的功能,同时又不改变其…...

【第二十一章 SDIO接口(SDIO)】
第二十一章 SDIO接口 目录 第二十一章 SDIO接口(SDIO) 1 SDIO 主要功能 2 SDIO 总线拓扑 3 SDIO 功能描述 3.1 SDIO 适配器 3.2 SDIOAHB 接口 4 卡功能描述 4.1 卡识别模式 4.2 卡复位 4.3 操作电压范围确认 4.4 卡识别过程 4.5 写数据块 4.6 读数据块 4.7 数据流…...
三体问题详解
从物理学角度,三体问题之所以不稳定,是因为三个天体在万有引力作用下相互作用,形成一个非线性耦合系统。我们可以从牛顿经典力学出发,列出具体的运动方程,并说明为何这个系统本质上是混沌的,无法得到一般解…...
Android第十三次面试总结(四大 组件基础)
Activity生命周期和四大启动模式详解 一、Activity 生命周期 Activity 的生命周期由一系列回调方法组成,用于管理其创建、可见性、焦点和销毁过程。以下是核心方法及其调用时机: onCreate() 调用时机:Activity 首次创建时调用。…...

sipsak:SIP瑞士军刀!全参数详细教程!Kali Linux教程!
简介 sipsak 是一个面向会话初始协议 (SIP) 应用程序开发人员和管理员的小型命令行工具。它可以用于对 SIP 应用程序和设备进行一些简单的测试。 sipsak 是一款 SIP 压力和诊断实用程序。它通过 sip-uri 向服务器发送 SIP 请求,并检查收到的响应。它以以下模式之一…...

Qemu arm操作系统开发环境
使用qemu虚拟arm硬件比较合适。 步骤如下: 安装qemu apt install qemu-system安装aarch64-none-elf-gcc 需要手动下载,下载地址:https://developer.arm.com/-/media/Files/downloads/gnu/13.2.rel1/binrel/arm-gnu-toolchain-13.2.rel1-x…...
Python 训练营打卡 Day 47
注意力热力图可视化 在day 46代码的基础上,对比不同卷积层热力图可视化的结果 import torch import torch.nn as nn import torch.optim as optim from torchvision import datasets, transforms from torch.utils.data import DataLoader import matplotlib.pypl…...

自然语言处理——文本分类
文本分类 传统机器学习方法文本表示向量空间模型 特征选择文档频率互信息信息增益(IG) 分类器设计贝叶斯理论:线性判别函数 文本分类性能评估P-R曲线ROC曲线 将文本文档或句子分类为预定义的类或类别, 有单标签多类别文本分类和多…...

篇章二 论坛系统——系统设计
目录 2.系统设计 2.1 技术选型 2.2 设计数据库结构 2.2.1 数据库实体 1. 数据库设计 1.1 数据库名: forum db 1.2 表的设计 1.3 编写SQL 2.系统设计 2.1 技术选型 2.2 设计数据库结构 2.2.1 数据库实体 通过需求分析获得概念类并结合业务实现过程中的技术需要&#x…...