把自己的网盘搬进服务器:OpenList 部署完整指南

前言

不知道你有没有这样的烦恼:手机里装着百度网盘、阿里云盘、夸克网盘好几个 App,想找个文件得挨个翻一遍;遇到喜欢的电影资源,还得先下载到本地才能看;想给朋友分享个文件,不是限速就是过期。

OpenList 这个工具能帮你解决这些问题。它是一个开源的目录列表程序,可以把各种网盘挂载到一起,统一管理和访问。你打开它的页面,就像打开了自己的文件管理器,里面是你所有网盘的内容,点一下视频就能直接播放,不用下载,也不用担心 bandwidth 不够——它会自动帮你找到最快的播放链接 。

这玩意儿最早是 AList 的一个分支。原来的 AList 被商业公司收购后,社区里有人担心代码不再透明、可能会有数据收集的问题,所以分出来做了 OpenList,继续走开源的路子 。现在它支持阿里云盘、百度网盘、OneDrive、夸克、WebDAV 等几十种存储服务,而且资源占用很低,一台普通的小主机就能跑起来 。

这篇教程我会一步步带你在一台 Linux 服务器上把 OpenList 搭起来。不管你是刚买了个云服务器想折腾点东西,还是手头有闲置的机器想利用起来,跟着做就行。不需要你有多深的 Linux 基础,我把每个命令都写出来了,复制粘贴就能跑。

准备工作:

准备一台具备公网IP的云服务器(推荐使用雨云)

优惠注册地址:https://www.rainyun.com/sn_

使用优惠码:sn

注: 使用优惠码注册后绑定微信可领取5折优惠券

服务器选购步骤:

注册后,在"总览"页面找到"云服务器"入口,进入后点击"购买云服务器"


2.根据需求选择合适的配置,建议选择国内的服务器,访问更快,选好后点击立即购买即可


3.选好后进入控制台,使用SSH客户端远程连接服务器即可,SSH客户端建议选择FinalShell

第一步:连接到你的服务器

首先通过 SSH 登录到服务器。打开终端,输入以下命令(把 IP 换成你服务器的实际地址):

ssh root@你的服务器IP 

如果是第一次连接,会提示你确认主机指纹,输入 yes 回车就行。然后输入密码,登录成功后你会看到类似 root@hostname:~# 的命令行提示符。

第二步:装 Docker(最简单的方式)

OpenList 的安装方式有好几种,编译安装、二进制包、Docker。对新手来说,Docker 是最友好的——装好就能用,不用操心依赖环境,以后升级也方便 。

我们先装 Docker。执行下面这一串命令,它会自动把 Docker 装好:

curl -fsSL https://get.docker.com |bash -s docker

这个过程可能有点慢,因为要下载东西。装完之后,确认一下是否成功:

docker --version 

如果看到类似 Docker version 24.0.7 这样的输出,就说明装好了。

第三步:一键部署 OpenList

Docker 装好了,接下来部署 OpenList。运行下面的命令:

docker run -d \ --name openlist \ --restart unless-stopped \ -p 5244:5244 \ -v /opt/openlist/data:/opt/openlist/data \ openlistteam/openlist:latest 

解释一下这几行是什么意思:

  • -d:让容器在后台运行,不会占着你的终端窗口。
  • --name openlist:给这个容器起个名字,以后操作它直接用这个名字就行。
  • --restart unless-stopped:如果服务器重启了,容器会自动跟着启动,除非你手动停掉它。
  • -p 5244:5244:把服务器上的 5244 端口映射到容器里的 5244 端口,这样你就能通过服务器的 IP 访问 OpenList 了。
  • -v /opt/openlist/data:/opt/openlist/data:把容器里的数据目录挂载到宿主机上。这一步很重要——如果不挂载,哪天容器删了,你所有的配置就都没了 。

运行之后,可以用 docker ps 看看容器是不是正常启动了:

dockerps

输出里应该能看到 openlist 这个容器,状态是 Up 几秒钟或几分钟。

第四步:放行防火墙(如果需要)

如果服务器有防火墙,需要放行 5244 端口。不同系统命令不太一样:

Ubuntu/Debian 用 ufw:

ufw allow 5244

CentOS 用 firewall-cmd:

firewall-cmd --zone=public --add-port=5244/tcp --permanent firewall-cmd --reload 

第五步:初始化设置

现在 OpenList 应该已经跑起来了。打开浏览器,输入 http://你的服务器IP:5244,就能看到登录页面。

第一次登录需要初始化。OpenList 默认的账号密码都是 admin,但为了安全起见,建议先改掉。在终端里执行下面的命令来重置密码(把 你的密码 换成你想设置的):

dockerexec openlist ./openlist admin set 你的密码 

执行后会有提示说密码更新成功。然后回到浏览器,用 admin 和新密码登录 。

登录进去之后,建议先点右下角的「管理」,进到后台把基本信息改一下。在「个人资料」里可以修改用户名,还有站点标题什么的,按自己喜好来就行。

第六步:挂载你的第一个网盘(以夸克为例)

这一步我们挂载一个夸克网盘试试。登录 OpenList 后台,点左边菜单的「存储」,然后点右上角的「添加」。

在驱动列表里找到「夸克」。需要填几项东西:

  1. 挂载路径:就是你希望在 OpenList 首页看到的文件夹名字,比如 quark
  2. Cookie:这个是用来让 OpenList 替你访问夸克网盘的。

获取 Cookie 的方法:在浏览器里打开夸克网盘的网页版(https://pan.quark.cn),登录你的账号。然后按 F12 打开开发者工具,找到「网络」标签页。刷新一下页面,在请求列表里随便点一个,找到请求头里的 Cookie 字段,复制整段内容 。

还有一个可选填的是「根文件夹 ID」。如果你想挂载夸克网盘的某个子目录,可以填对应文件夹的 ID。获取方法也是在开发者工具里,点进那个文件夹,看地址栏或者网络请求就能找到。如果不填,默认挂载根目录 。

填完之后点「添加」,状态应该会变成「工作」。回到主页,就能看到刚才添加的夸克网盘了。点进去试试,里面的文件应该都能看到。

第七步:让视频播放更流畅(开启 302 重定向)

OpenList 有个很实用的功能叫 302 重定向。简单来说,当你点播一个视频时,它不是把视频数据从你的服务器转发给你,而是直接给你一个网盘官方的直链,你的播放器会直接去连接网盘服务器。这样一来,播放视频走的不是你的服务器带宽,而是网盘官方的带宽 。

开启方法:在「存储」列表里,找到刚才添加的夸克网盘,点「编辑」。往下翻,找到「使用转码地址」或者「Web代理」之类的选项(不同驱动叫法可能不太一样),把它打开,保存即可 。

之后再播放视频,在播放器里右键查看视频信息,应该能看到地址是夸克的域名,流量不经过你的服务器了。

第八步:在外网访问(安全地暴露到公网)

如果你想让 OpenList 能从外网访问,有几种方式。

最简单直接的是在路由器上做端口映射,但这样不安全,因为 OpenList 本身只靠密码保护,暴力破解的风险比较大。

更好的办法是用 Cloudflare Tunnel。它可以在你和 Cloudflare 之间建立一个加密通道,外面的人访问你的域名时,流量先到 Cloudflare,再通过隧道转发到你的服务器。这样你不需要开放任何入站端口,安全很多 。

具体步骤:

  1. 在 Cloudflare 后台,进入 Zero Trust 仪表板。
  2. 左边菜单选「Access」>「Tunnels」,点「Create a tunnel」。
  3. 给隧道起个名字,比如 openlist-tunnel
  4. 选择你的服务器操作系统,会看到对应的安装命令。在你的服务器上执行那条命令,cloudflared 就会装好并连接上。
  5. 隧道显示活跃后,点「Next」,配置路由。Public hostname 填你想用的域名(比如 pan.你的域名.com),Service 类型选 HTTP,URL 填 localhost:5244
  6. 保存即可。

过一两分钟,访问你填的域名,应该就能看到 OpenList 了。而且这次是 HTTPS 加密的,地址栏会有小锁图标。

日常维护:常用命令

用 Docker 部署的好处是维护起来很简单。这几个命令你可能会用到:

查看运行状态:

dockerps|grep openlist 

查看日志(如果出问题了先看这个):

docker logs openlist 

重启 OpenList:

docker restart openlist 

停止:

docker stop openlist 

启动:

docker start openlist 

写在最后

到这里,你的 OpenList 应该已经跑起来了,也挂载了第一个网盘。接下来你可以试着添加更多的存储驱动——百度网盘、阿里云盘、OneDrive 的配置方法都差不多,主要就是获取 token 或 cookie,官方文档里写得很详细。

这个工具其实挺能折腾的,有人把它当成家庭影音中心的后端,有人用来做文件分享,也有人配合定时任务做自动备份。怎么用,就看你的需求了。

如果你在安装过程中遇到问题,可以先看看日志,大部分错误提示都能直接告诉你哪里不对。实在搞不定的,去 GitHub 的 issues 里搜一搜,或者找个社区问问。玩开源项目就是这样,边用边学,慢慢就熟了。

Read more

大数据新视界 -- Impala 性能优化:分布式环境中的优化新视野(下)(28 / 30)

大数据新视界 -- Impala 性能优化:分布式环境中的优化新视野(下)(28 / 30)

💖💖💖亲爱的朋友们,热烈欢迎你们来到 青云交的博客!能与你们在此邂逅,我满心欢喜,深感无比荣幸。在这个瞬息万变的时代,我们每个人都在苦苦追寻一处能让心灵安然栖息的港湾。而 我的博客,正是这样一个温暖美好的所在。在这里,你们不仅能够收获既富有趣味又极为实用的内容知识,还可以毫无拘束地畅所欲言,尽情分享自己独特的见解。我真诚地期待着你们的到来,愿我们能在这片小小的天地里共同成长,共同进步。💖💖💖 本博客的精华专栏: 1. 大数据新视界专栏系列:聚焦大数据,展技术应用,推动进步拓展新视野。 2. Java 大厂面试专栏系列:提供大厂面试的相关技巧和经验,助力求职。 3. Python 魅力之旅:探索数据与智能的奥秘专栏系列:走进 Python 的精彩天地,感受数据处理与智能应用的独特魅力。 4. Java 性能优化传奇之旅:铸就编程巅峰之路:如一把神奇钥匙,深度开启 JVM 等关键领域之门。丰富案例似璀璨繁星,引领你踏上编程巅峰的壮丽征程。 5. Java 虚拟机(

By Ne0inhk
Flutter for OpenHarmony 实战:Hive CE — 极速 NoSQL 本地存储

Flutter for OpenHarmony 实战:Hive CE — 极速 NoSQL 本地存储

欢迎加入开源鸿蒙跨平台社区:https://openharmonycrossplatform.ZEEKLOG.net 前言 在 Flutter for OpenHarmony 应用开发中,数据持久化是构建流畅体验的核心基石。无论是用户的登录状态、应用主题偏好,还是海量的离线缓存数据,都需要一套既快速又可靠的存储方案。 传统的 SQLite 虽然功能强大,但在处理简单的键值对(Key-Value)时往往显得过于沉重。Hive CE (Community Edition) 凭借其纯 Dart 编写、读写性能卓越的优势,成为了鸿蒙开发者的首选。本文将结合鸿蒙插件适配的最佳实践,带你构建一个工业级的加密存储方案。 一、Hive CE 的底层优势解析 1.1 纯 Dart 的并行优势 Hive 完全由 Dart 实现。在鸿蒙系统上,这意味着它避开了复杂的 JNI 调用开销。

By Ne0inhk
Flutter 组件 spinify 适配鸿蒙 HarmonyOS 实战:实时消息管道,构建全场景高性能 WebSocket 长连接架构

Flutter 组件 spinify 适配鸿蒙 HarmonyOS 实战:实时消息管道,构建全场景高性能 WebSocket 长连接架构

欢迎加入开源鸿蒙跨平台社区:https://openharmonycrossplatform.ZEEKLOG.net Flutter 组件 spinify 适配鸿蒙 HarmonyOS 实战:实时消息管道,构建全场景高性能 WebSocket 长连接架构 前言 在鸿蒙(OpenHarmony)生态迈向万物互联、涉及高频实时交互、流式数据同步或多人协同编辑的场景下,如何建立一套稳定、高效且具备自动愈合能力的长连接通道,已成为提升应用实时性体验的“关键枢轴”。在鸿蒙设备这类强调分布式协同与严苛能效管理的移动终端上,如果直接使用原生的 WebSocket 进行裸奔(Bare Metal)开发,由于由于缺乏完善的心跳机制、重连策略与频道管理,极易由于由于网络波动导致连接频繁断档,进而引发业务状态的不一致。 我们需要一种能够深度封装协议细节、支持大规模并发频道订阅且具备毫秒级重连恢复能力的实时通讯引擎。 spinify 为 Flutter 开发者提供了与 Centrifugo(高性能实时消息服务器)交互的高级客户端。它支持全双工通信、自动重连计数与消息序列确认(ACK)。在适配到鸿

By Ne0inhk