全网首发:Nat 机部署 MinIO 对象存储

全网首发:Nat 机部署 MinIO 对象存储
雨天狂奔全网首发:Nat 机部署 MinIO 对象存储
免费 Nat 小盘机申请
申请地址:NETJETT
申请条件:
- 博客或 github 项目挂赞助广告
- 博客需要一定的流量,到底多少流量我不知道,我的博客月流量大约 2000-3000,就通过了
- github 需要多少⭐,我不知道,因为我的项目⭐都不多,没有超过 100 的
机器配置有两种:
- 第一种:小盘鸡。1c,384m,250g 硬盘,无限流量
- 第二种:1c,1g,20g 硬盘(具体多少我忘了),无限流量
- IP 都是加拿大的
如何申请:
- 给网站管理员发邮件: admin@netjett.com
- 告诉他你需要申请哪一种服务器,你的博客有多少流量或 github 项目有多少⭐,并截图
- 申请通过后会收到邮件,去官网开机,然后在博客或 github 项目挂上赞助广告
我踩过的坑:
- 系统重装不能选 debian,ssh 连不上,只有乌班图是正常的
- 系统比较精简,连 unzip 都没有,必须更新软件包并安装基础软件
- nat 机需要在网页端管理面板进行端口映射,只能使用 30000-60000 之间的端口
- ssh 链接默认映射端口为 10010,也就是说你在 ssh 工具上你不能直接使用 22 端口,而应该使用 10010 端口
我申请的是 250g 的小盘鸡,因为我不缺富强的机器,正好需要一个小盘鸡来做网盘
部署 MinIO 对象存储
1. 设置端口映射
在 vps 网页管理面板上设置 nat 机的 端口映射
,端口范围 30000-60000
之间
- 默认的 10010 端口不用管,那是登录 ssh 用的
- 增加以下三个端口,内外端口号相同即可
- 第一个是 dpanel 面板访问端口,我设置的是 50000
- 第二个是 MinIO API 需要用到的端口,你可以跟我一样设置为 59000
- 第三个是 MinIO 网页面板需要用到的端口,你可以跟我一样设置为 59001
2. 安装 Dpanel 面板
如果你熟悉 docker 部署的话,也可以不安装面板,直接参照官方文档来部署,或者搜索 MinIO docker 版部署教程
不推荐二进制部署,因为默认的 9000 和 9001 端口在我们的 nat 机上无法使用
如果你是跟我一样的小白,推荐安装 Dpanel 面板来部署项目,一键脚本如下:
1 | curl -sSL https://dpanel.cc/quick.sh -o quick.sh && sudo bash quick.sh |
执行脚本后根据提示输入相关参数,基本都可以保持默认,除了端口,我设置的是 50000
3. 安装 Argo 隧道
我使用 cf argo 隧道 反代,这里不讨论 nginx 等反代方法
- 首先创建一个隧道,命名为
minio
(名称可以随意) - 获得乌班图系统(面板上选 debian 就行)的安装命令
- 在 cf argo 网页管理面板添加域名。这里我的端口设置的是 50000,也就是 dpanel 面板的端口
- 在这条隧道里再添加两个主机
- 第一个:minio 网页面板需要用到的域名,假定为 web.minio.com,端口设置为 59001
- 第二个:minio api 端点需要用到的域名,假定为 api.minio.com,端口设置为 59000
- 保存好这两个域名,后面会用到
- 在 ssh 终端依次运行你获得的命令
1 | # Add cloudflare gpg key |
- 运行以下命令启动 cloudflared 服务
1 | # ey开头的事你的隧道token |
- 使用你设置的 argo 域名访问 dpanle 面板,假设为
https://dpanel.minio.com
4. 部署 MinIO
在 dpanel 中依次点击 系统
→ 应用商店
→ 添加第三方应用商店
再依次点击 compose
→ 应用商店
,搜索
关键词 minio
在搜出来的结果中随便选择一个进行安装,注意修改以下变量:
MINIO_API_PORT
(API 端口):59000PANEL_APP_PORT_API
(面板 API 端口):59000PANEL_APP_PORT_HTTP
(面板访问端口):59001MINIO_BROWSER_REDIRECT_URL
(面板访问地址):http://127.0.0.1:59001MINIO_SERVER_URL
(API 端点地址):https://api.minio.com,也就是你设置好的 MinIO API 端点的 argo 域名MINIO_SERVER_HOST
(API 内部地址):0.0.0.0- MINIO_ROOT_USER:设置你的用户名
- MINIO_ROOT_PASSWORD:设置的登录密码
安装完成后,访问 https://web.minio.com
(也就是你设置好的 MinIO 面板 argo 域名),使用上面的用户名和密码登录
登录后点击左上角 创建存储桶
就 OK 了,现在你可以上传一张图片试试
挂载 MinIO 对象存储
虽然现在是可以上传和下载了,但是没法分享,你会发现你的下载链接是类似这样的一长串:
1 | https://api.minio.com/minio/wallhaven-ympzyl.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Credential=adminadmin%2F20250709%2Fauto%2Fs3%2Faws4_request&X-Amz-Date=20250709T110601Z&X-Amz-Expires=3600&X-Amz-Signature=e9b94350db7e0cgdsggggege6788534534352a025c63da66db10995&X-Amz-SignedHeaders=host&response-content-disposition=inline%3B%20filename%3D%22wallhaven-ympzyl.jpg%22&response-content-type=image%2Fjpeg&x-id=GetObject |
前面的 https://api.minio.com/minio/wallhaven-ympzyl.jpg
是文件,后面的 ?X-Amz-Algorithm=***********
是查询参数,它并不是一个固定地址,查询参数会随机变动,你能打开的地址分享给其他人就打不开了
怎么办呢? 万能的 cf worker 登场了,它可以反代 minio 的 api 请求,以 https://worker域名/存储桶名/文件名
的方式来访问,从而实现文件分享
部署 Worker 反代
代码地址:cf-github-script/minio-s3/worker反代.js at main · yutian81/cf-github-script
大家可以给我点个免费的 ⭐
部署后设定以下环境变量
- MINIO_ENDPOINT=你的 MINIO api 端点域名,示例:
https://api.minio.com
- ACCESS_KEY=部署 MINIO 时设置的用户名
- SECRET_KEY=部署 MINIO 时设置的密码
给 worker 绑定一个域名,示例:https://raw.minio.com
现在,试试通过 worker 域名来访问你的文件,https://worker域名/存储桶名/文件名
,示例:
https://minio.24811213.xyz/netjett/wallhaven-ympzyl.jpg
挂载到 Alist
alist 不地道,我已经改成 openlist 了,挂载方法是一样的,关键参数如下:
- 驱动:对象存储
- 存储桶:你创建的存储桶名称
- Endpoint:api 端点地址,示例:
https://api.minio.com
- 访问密钥 Id:你的用户名
- 安全访问密钥:你的密码
- 自定义 HOST:你的反代 worker 域名,示例:
https://raw.minio.com
- 强制路径样式:打 √
挂载到 CloudPaste
新出来的,挺不错的,专门挂载对象存储,相比 alist 的优势:它可以上传大文件,而 alist 经常失败
参数和 alist 差不多,注意:需要勾选 使用路径样式访问
仓库地址:GitHub - ling-drag0n/CloudPaste
挂载到兰空图床
参数都一样,就是 BucketEndpoint
需要勾选
#存储 #VPS #容器