使用 Nextcloud 搭建私人云盘,并利用内网穿透实现公网远程访问

请添加图片描述

一、前言

Nextcloud 是 ownCloud 的一个分支,是一个文件共享服务器,允许您将个人内容(如文档和图片)存储在一个集中的位置,就像 Dropbox一样。与 Nextcloud 的不同之处在于,它的所有功能都是开源的。它还将敏感数据的控制和安全返回给您,从而消除了对第三方云托管服务的使用。

在本教程中,我们将在 Ubuntu 服务器上安装和配置 Nextcloud 实例。

我们将使用 Snap 包装系统安装 Nextcloud。默认情况下,Ubuntu 22.04上提供了这个打包系统,允许组织在一个具有自动更新功能的独立单元中发布软件,以及所有相关的依赖项和配置。这意味着,我们可以安装 snap 软件包,自动处理底层系统,省去了配置 web 和数据库服务器,然后配置 Nextcloud 应用程序在其上运行,下载 Nextcloud snap 软件包并将其安装在系统上。

二、环境搭建

  1. 安装 snap
 sudo apt-get install snapd

添加链接描述

  1. 安装 snapcraft
sudo apt-get install snapcraft

添加链接描述

  1. 安装 NextCloud
sudo snap install nextcloud

添加链接描述

  1. 启动 nextcloud

使用以下启动nextcloud

启动: sudo snap start nextcloud
停止: sudo snap stop nextcloud

三、测试局域网访问

打开浏览器,使用局域网ip地址访问,出现nextcloud界面表示成功,注意首次安装需要创建设置管理员账号,用户名和密码,设置完成点击安装即可。

添加链接描述

安装成功后即可正常访问

添加链接描述

四、执行内网穿透

由于这个 nextcloud 目前只能在本地被访问到,为了使远程都可以访问,我们需要将设置将改服务发布到公网。这里我们可以通过 cpolar 内网穿透工具来实现,它支持 http / https / tcp协议,无需公网 IP ,也不用设置路由器,可以很容易将本地站点发布到公网供远程访问。

4.1 ubuntu 本地安装 cpolar

  1. cpolar 安装(国内使用)
curl -L https://www.cpolar.com/static/downloads/install-release-cpolar.sh | sudo bash

如果使用国外镜,可以选择如下命令:

curl -sL https://git.io/cpolar | sudo bash
  1. 查看版本号,有正常显示版本号即为安装成功
cpolar version
  1. 进行 token 认证
cpolar version

登录 cpolar 官网后台,点击左侧的验证,查看自己的认证 token,之后将 token 贴在命令行里

cpolar authtoken xxxxxxx

添加链接描述

  1. 简单穿透测试,有正常生成相应的公网地址即为穿透成功
cpolar http 8080
  1. 将 cpolar 添加到系统服务
sudo systemctl enable cpolar
  1. 启动 cpolar 服务
sudo systemctl start cpolar
  1. 查看服务状态
sudo systemctl status cpolar

添加链接描述

4.2 创建隧道

cpolar 安装成功之后,在浏览器上访问本地或者局域网 ip 的9200端口,使用 cpolar 邮箱账号登录 cpolar web UI 管理界面。

添加链接描述

点击左侧仪表盘的隧道管理——创建隧道:

  • 隧道名称:可自定义,注意不要重复
  • 协议:http
  • 本地地址:80
  • 端口类型:随机域名
  • 地区:China vip

点击创建,如下图:

在这里插入图片描述

隧道创建成功后,点击左侧的状态——在线隧道列表,可以看到刚刚创建的隧道已经有生成了相应的公网地址,将其复制下来,接下来测试访问一下。

在这里插入图片描述

4.3 测试公网访问

打开浏览器访问刚刚所复制的公网地址,出现以下信息:通过不被信任的域名访问。这个问题是 nextcloud 限制了访问的方式,只支持局域网 ip 进行访问

在这里插入图片描述

解决方法:添加访问方式:...,表示不限制访问方式

sudo nextcloud.occ config:system:set trusted_domains 1 --value=*.*.*.*

在这里插入图片描述

然后重启 nextcloud

sudo snap restart nextcloud

然后再次使用公网地址访问即可:

在这里插入图片描述

五、配置固定 http 公网地址

由于以上所创建的隧道选择的是随机域名,所生成的公网地址会在24小时内随机变化,对于需要长期访问来讲较为不方便。不过我们可以为其配置一个固定的二级子域名来进行访问,改地址不会随机变化。

注意:配置固定二级子域名功能需要升级至基础版套餐或以上才支持。

5.1 保留一个二级子域名

登录cpolar官网后台,点击左侧的预留,找到保留二级子域名:

  • 地区:选择China VIP
  • 二级域名:可自定义填写
  • 描述:即备注,可自定义填写

点击保留

在这里插入图片描述

提示子域名保留成功,复制所保留的二级子域名

在这里插入图片描述

5.2 配置固定二级子域名

访问本地 9200 端口登录 cpolar web UI 管理界面,点击左侧仪表盘的隧道管理——隧道列表,找到所要配置的隧道,点击右侧的编辑

在这里插入图片描述

修改隧道信息,将保留成功的二级子域名配置到隧道中

  • 域名类型:选择二级子域名
  • Sub Domain:填写保留成功的二级子域名,本例为:nextcloudwbsite

点击更新

在这里插入图片描述

提示更新隧道成功,点击左侧仪表盘的状态——在线隧道列表,可以看到公网地址已经更新为保留成功的二级子域名,将其复制下来。

在这里插入图片描述

5.3 测试访问公网固定二级子域名

我们使用任意浏览器,输入刚刚配置成功的公网固定二级子域名就可看到我们的 nextcloud,且该地址不会再随机变化了。

添加链接描述

六、文末总结

本文介绍了如何使用 Nextcloud 搭建私人云盘,并通过内网穿透实现公网远程访问。文章首先进行了前言,介绍了本文要解决的问题和目标。然后,详细阐述了环境搭建的步骤,包括安装和配置 Nextcloud,为搭建私人云盘做准备。

在环境搭建完成后,文章进行了测试局域网访问的步骤,确保在局域网中可以正常访问 Nextcloud 服务。接着,介绍了如何执行内网穿透,使用 cpolar 在 Ubuntu 上进行安装和配置,并创建隧道以实现公网访问。最后,进行了测试,验证了公网访问的可行性。

此外,文章还介绍了如何配置固定的 HTTP 公网地址。通过保留一个二级子域名并进行相应的配置,实现了公网固定地址的访问。最后,进行了测试,确保配置的正确性。

通过本文提供的指导和步骤,读者可以成功搭建私人云盘,并实现公网远程访问。这为个人和组织提供了方便、安全的云存储解决方案,使用户能够随时随地访问和管理自己的文件。

<think>好的,我现在需要帮助用户了解如何使用Alist实现内网穿透配置。首先,我应该回顾用户提供的引用内容,这些引用提到了使用Docker部署Alist结合cpolar进行内网穿透。用户的问题集中在配置教程上,所以需要分步骤说明。 首先,用户可能需要本地部署Alist。根据引用[2]和[3],使用Docker部署Alist是常见方法,所以第一步应该是指导用户安装Docker运行Alist容器。需要确保Docker的安装步骤正确,适用于不同操作系统,但用户提到的是Windows系统,所以可能需要特别说明Windows下的Docker安装步骤。 接下来,访问和设置Alist。部署完成后,用户需要通过本地地址访问Alist的管理界面,如http://localhost:5244,设置管理员账户。这部分需要详细说明如何进入管理界面和进行初始配置,包括添加存储的步骤,如引用[2]中提到的在管理界面添加存储。 然后是内网穿透部分。引用[1]、[3]、[4]都提到了使用cpolar工具。用户需要注册cpolar账户,安装配置cpolar客户端。需要指导用户创建隧道,将本地Alist的端口映射到公网。这里需要说明如何获取认证token,以及如何在cpolar中设置隧道,包括选择TCP协议、本地端口5244,以及自定义隧道名称等步骤。 接下来是固定公网地址。免费隧道可能会有随机地址变化,所以用户可能需要固定地址。引用[4]提到了配置二级子域名,这里需要解释如何保留一个固定的子域名,在cpolar中配置。同时,可能需要说明如何更新配置文件以保持隧道活跃。 最后,用户可能需要测试远程访问,确保通过生成的公网地址能够访问到本地的Alist服务。同时,提醒安全设置,如设置密码保护,避免未授权访问。 在生成相关问题的时候,应该考虑用户可能遇到的后续问题,比如如何优化cpolar的稳定性,如何将Alist与其他服务集成,或者如何选择其他内网穿透工具。这样能够帮助用户进一步探索和解决问题。 需要确保回答结构清晰,分步骤说明,引用提供的参考资料来支持每一步的操作。同时,使用正确的LaTeX格式,虽然在这个问题中可能用到的数学公式不多,但如果有技术参数或端口号,可能需要用行内格式。例如,端口号可以写成$5244$,但根据系统指令,变量和数字可能需要用$...$包裹,不过实际应用中端口号可能不需要,但需要遵循用户的格式要求。检查示例中的使用情况,发现示例中的代码块和引用标识,所以需要按照示例来组织回答,包括代码块和引用标注。 总结步骤: 1. Docker本地部署Alist 2. 访问设置Alist 3. 安装配置cpolar内网穿透 4. 创建隧道映射端口 5. 固定公网地址 6. 远程访问测试和安全设置 每个步骤需要详细说明,引用对应的引用资料。例如,在部署Alist时引用[2]和[3],在配置cpolar时引用[1]、[3]、[4]。同时,确保语言口语化,避免使用专业术语过多,但必要时需准确。 最后,生成的相关问题需要围绕Alist部署、内网穿透优化、其他工具对比以及安全设置,这样用户可以有进一步了解的途径。</think>### 如何使用Alist实现内网穿透配置教程 以下是分步骤配置Alist内网穿透的详细教程,结合Docker部署与cpolar工具实现公网访问: --- #### **1. 本地部署Alist** **步骤1:安装Docker** 访问Docker官网下载安装对应系统的Docker Desktop[^3]。Windows用户需启用Hyper-V或WSL 2支持。 **步骤2:运行Alist容器** 在终端执行以下命令启动Alist容器: ```bash docker run -d --restart=always -v /etc/alist:/opt/alist/data -p 5244:5244 --name="alist" xhofe/alist:latest ``` 此命令将Alist的Web服务映射到本地端口$5244$。 --- #### **2. 访问初始化Alist** - 打开浏览器访问 `http://localhost:5244`,进入Alist管理界面。 - 执行以下命令获取初始密码: ```bash docker exec -it alist ./alist admin ``` - 登录后,在**存储**页面添加本地或云存储路径(如OneDrive、阿里云盘)[^2]。 --- #### **3. 安装cpolar内网穿透工具** **步骤1:注册与安装** - 访问[cpolar官网](https://www.cpolar.com/)注册账号。 - 下载安装cpolar客户端,支持Windows、Linux、macOS[^1]。 **步骤2:配置认证Token** 在命令行输入以下命令,替换`YOUR_TOKEN`为官网获取的认证令牌: ```bash cpolar authtoken YOUR_TOKEN ``` --- #### **4. 创建隧道映射Alist端口** 执行命令创建TCP隧道,将本地$5244$端口映射到公网: ```bash cpolar tcp 5244 ``` 运行后,控制台会生成公网访问地址(如 `tcp://3.tcp.vip.cpolar.cn:12345`)[^4]。 --- #### **5. 固定公网地址(可选)** - 登录cpolar官网,进入**仪表盘** → **预留**。 - 选择**保留TCP地址**,填写备注选择区域,保留固定域名(如 `tcp://alist.cpolar.cn:12345`)[^4]。 - 更新隧道命令,使用固定地址: ```bash cpolar tcp -remote-addr=固定地址 5244 ``` --- #### **6. 远程访问测试** 通过生成的公网地址(如 `http://3.tcp.vip.cpolar.cn:12345`)即可在外网访问本地Alist网盘。 --- #### **安全建议** - **设置访问密码**:在Alist管理界面启用登录验证。 - **限制IP访问**:通过cpolar配置IP白名单,防止未授权访问。 ---
评论 59
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

bluetata

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值