标签 Cloudflared 下的文章

RustFS 默认通过 9001 端口登录控制台,9000 端口使用 API,为了安全合规,通常采用启用 HTTPS、反向代理(诸如 nginx、traefik、caddy 等)的方式来更加安全的使用 RustFS。本文分享一种更加安全的方式,通过 Cloudflare tunnel 来访问你的 RustFS 实例。

安装 RustFS

RustFS 支持二进制、Docker 以及 Helm Chart 的安装方式,详细方法可以查看官网安装指南。将如下内容写入 docker-compose.yml 文件:

services:
  rustfs:
    image: rustfs/rustfs:latest
    container_name: rustfs
    hostname: rustfs
    environment:
      - RUSTFS_VOLUMES=/data/rustfs{1...4}
      - RUSTFS_ADDRESS=0.0.0.0:9000
      - RUSTFS_CONSOLE_ENABLE=true
      - RUSTFS_CONSOLE_ADDRESS=0.0.0.0:9001
      - RUSTFS_ACCESS_KEY=rustfsadmin
      - RUSTFS_SECRET_KEY=rustfsadmin
      - RUSTFS_TLS_PATH=/opt/tls
    ports:
      - "9000:9000"  # API endpoint
      - "9001:9001"  # Console
    volumes:
      - data1:/data/rustfs1
      - data2:/data/rustfs2
      - data3:/data/rustfs3
      - data4:/data/rustfs4
      - ./certs:/opt/tls

    networks:
      - rustfs

networks:
  rustfs:
    driver: bridge
    name: rustfs

volumes:
  data1:
  data2:
  data3:
  data4:

运行如下命令

docker compose up -d

即可安装好一个 RustFS 实例:

docker compose ps
NAME      IMAGE                          COMMAND                  SERVICE   CREATED          STATUS          PORTS
rustfs    rustfs/rustfs:1.0.0-alpha.81   "/entrypoint.sh rust…"   rustfs    22 minutes ago   Up 22 minutes   0.0.0.0:9000-9001->9000-9001/tcp, [::]:9000-9001->9000-9001/tcp

配置 Cloudflare tunnel

配置 Cloudflare tunnel 大体分为 域名配置tunnel 配置 两部分。

域名配置

域名配置是为了后期能够更方便的访问 RustFS。

  • 使用 Cloudflare 账号登录 Cloudflare Domain 界面;
  • 在左侧导航栏,Account home,如果你已经有域名,则选择 Onboard a domain,否则可选择 Buy a domain
  • 如果选择 Onboard a domain,点击该选项后,在出现的界面中输入你的域名,然后继续往下走,直到在最后选择 Continue to activation
  • 如果一切顺利,可以在域名管理首页看到添加成功的域名,其 Status 会显示为 Active

image.png

tunnel 配置

  • 使用 Cloudflare 账号登录 Cloudflare Dashboard
  • 在左侧导航栏,选择 Networks -> Connectors,在右侧界面点击 Create a tunnel
  • 在 tunnel 类型中,选择 Select Clouflared
  • Install and run connectors 中,根据 RustFS 实例所在服务器的操作系统信息,选择相应的安装方式。安装完毕后,可以在服务器上查看 cloudflared 服务的状态。运行正常后点击 Next

    systemctl status cloudflared
    ● cloudflared.service - cloudflared
         Loaded: loaded (/etc/systemd/system/cloudflared.service; enabled; preset: enabled)
         Active: active (running) since Fri 2026-01-16 21:18:53 CST; 6 days ago
       Main PID: 2538004 (cloudflared)
          Tasks: 10 (limit: 4375)
         Memory: 31.3M (peak: 38.7M swap: 8.2M swap peak: 15.3M)
            CPU: 18min 16.159s
         CGroup: /system.slice/cloudflared.service
  • Route Traffic 中,配置 HostnameService 信息。

    • Hostname 中填写的域名可用于后续访问 RustFS 实例,可以在 Domain 字段中选择 域名配置 部分添加好的域名。如果想通过子域名访问,也可以在 Subdomain 字段中输入子域名名称。
    • Service 选择服务类型和 URL。对于上述安装的 RustFS 实例,Type 可以选择 HTTP/HTTPS(如果启用了 HTTPS,可选择 HTTPS,否则用 HTTP),URL 为 localhost:9001

    image.png

  • 点击 Complete setup 完成配置。

上述配置结束后,可以在 Connectors 界面看到添加好的 tunnel,如果一切顺利,则可以看到 Status 为绿色的 HEALTHY

在 Hostname 和 Service 设置页面的 Additional application settings 部分,点击 HTTP Settings,在 HTTP Host Header 部分,输入访问 RustFS 的域名,这是为了避免后续使用出现签名错误。

登录验证

恭喜你,如果你顺利完成了上述两部分的配置后,那么现在你就可以通过你配置好的域名来访问 RustFS 实例了。本文配置的域名为 rustfs.xiaomage.vip,所以在浏览器中输入 https://rustfs.xiaomage.vip 即可访问 RustFS 实例:

image.png

输入 rustfsadmin/rustfsadmin 即可登录。

接下来就可以通过多种方式来使用 RustFS 实例了,比如 mcrc 以及 rclone

通过 mc 使用 RustFS

mc 是 Minio 的专属客户端,由于 RustFS 是 S3 兼容的,而且是 Minio 的平替,所以可以用 mc 来操作 RustFS。

前提

mc --version
mc version RELEASE.2025-08-29T21-30-41Z (commit-id=f7560841be167a94b7014bf8a504e0820843247f)
Runtime: go1.24.6 darwin/arm64
Copyright (c) 2015-2025 MinIO, Inc.
MinIO Enterprise License

使用

# 添加 `alias`
mc alias set rustfs https://rustfs.xiaomage.vip rustfsadmin rustfsadmin

# 创建存储桶
mc mb rustfs/hello

# 列出存储桶
mc ls rustfs
[2026-01-23 21:39:36 CST]     0B hello/
[2026-01-23 20:12:59 CST]     0B test/

# 上传文件到存储桶
echo "123456" > 1.txt
mc cp 1.txt rustfs/hello
/tmp/1.txt:                         ██████████████████████████████████████████████████████████████████████████████████ 100.0% 7 B       1 B/s      

# 查看上传的文件
mc ls rustfs/hello
[2026-01-23 21:40:44 CST]     7B STANDARD 1.txt

更多用法可自行探索。

通过 rclone 使用 RustFS

rclone是一个命令行工具,可以对不同云提供商上的文件和目录进行同步。

前提

rclone --version
rclone v1.72.1
- os/version: ubuntu 24.04 (64 bit)
- os/kernel: 6.8.0-71-generic (x86_64)
- os/type: linux
- os/arch: amd64
- go/version: go1.25.5
- go/linking: static
- go/tags: none

使用

  • 配置 rclone

执行 rclone config 命令,根据 RustFS 实例信息,一步步进行配置。配置完成后,会生成一个 ~/.config/rclone/rclone.conf 文件,一般内容如下:

[rustfs]
type = s3
provider = Minio
access_key_id = rustfsadmin
secret_access_key = rustfsadmin
endpoint = https://rustfs.xiaomage.vip
region = us-east-1
force_path_style = true
由于目前 RustFS 还未向 rclone 官方提 PR 以增加 RustFS provider 信息,因此使用 Minio 作为 provider。
  • 开始使用
# 列出存储桶和对象

rclone ls rustfs: --s3-sign-accept-encoding=false
        7 hello/1.txt
    11792 test/1.log
   520512 test/123.mp3
     7394 test/2.log
   147240 test/321.mp3
   

# 查看某个对象内容
rclone cat rustfs:hello/1.txt --s3-sign-accept-encoding=false
123456 

对于其他用法,可以通过 rclone --help 来自行探索。

注意:添加 --s3-sign-accept-encoding=false 参数是因为 Cloudflare 会对 Accept-Encoding 参数进行修改,在 S3 协议中,这种变更会导致 SignatureDoesNotMatch 错误,详情可以查看 RustFS issue

通过 rc 使用 RustFS

rc 是 RustFS 的 Client,用来对 RustFS 进行操作。目前,刚发布 0.1.1。可以使用 cargo 或源码编译安装。

rc --version
rc 0.1.1

目前提供 aliaslsmbrb 等多种常规命令。使用方式和 mc 类似。

# 设置 alias
rc alias set rustfs https://rustfs.xiaomage.vip rustfsadmin rustfsadmin
✓ Alias 'rustfs' configured successfully.

# 列出存储桶
rc ls rustfs
[2026-01-23 13:39:36]         0B hello/
[2026-01-23 13:56:57]         0B rclone/
[2026-01-23 12:12:59]         0B test/

# 创建存储桶
rc mb rustfs/client
✓ Bucket 'rustfs/client' created successfully.

更多用法,可以通过 rc --help 进行查看并自行探索,使用过程中有任何问题,可以在 GitHub Issue中进行反馈。

背景

由于鼠鼠我在服务器上没有 sudo 权限,没法使用 github 上提供的方法,而仅仅通过 SSH 反向隧道经常出现连接不稳定、端口假死或断连的情况。经过一番折腾,我找到了基于 Cloudflare Tunnel 的终极解决方案。本文将分享两种配置方法:一种适合临时测试(无域名),另一种适合长期稳定运行(有域名)。

准备工作:本地服务配置


方案一:我没有域名

如果你只是想临时测试一下,或者不想购买域名,可以使用 Cloudflare 提供的免费临时隧道。

步骤:

  1. 下载 Cloudflared 工具。
  2. 在下载目录打开 PowerShell,运行以下命令:
cloudflared.exe tunnel --url http://localhost:8045
  1. 终端会输出一个临时的公网地址,格式如:
    https://random-name.trycloudflare.com
  2. 复制这个地址,去服务器配置即可使用。


方案二:我有自己的域名

如果你有域名(托管在 Cloudflare),我们可以利用 Cloudflare Zero Trust 面板,将本地电脑变成一台 “服务器”,实现开机自启固定域名无需保持黑窗口运行

特点:稳定、专业、后台静默运行。

1. 创建隧道与安装服务

  1. 进入 Cloudflare Zero Trust 面板NetworksManage Tunnels

  2. 创建 Tunnel

  3. 在安装界面选择你 Antigravity Tools 所在的操作系统,复制那一长串安装命令进行安装。

  4. 成功提示Cloudflared agent installed successfully。此时服务已在后台安装,电脑重启也会自动连上。

2. 绑定域名

在你的 tunnel 中

点击 这个 routes 进入配置页面:

  • Subdomain: 填写前缀(如 api)。
  • Domain: 选择你的域名(如 example.xyz)。
  • Service:
  • Type: HTTP
  • URL: 127.0.0.1:8045 (或局域网 IP,或者是你的计算机名,我这里使用的是计算机名,因为我的电脑会经常到处跑)。

保存后,你的 API 地址就是固定的 https://api.example.xyz 了。


避坑指南:解决 524 Timeout 与断连

在使用过程中,我遇到了几个关键问题,这里给出解决方案:

1. 致命的 HTTP 524 Timeout 错误

现象:域名能 ping 通,但请求 API 时卡顿很久,最后报错 524: A timeout occurred
原因:Windows 默认将 localhost 解析为 IPv6 (::1),而某些服务只监听 IPv4。Cloudflare 转发请求时 “迷路” 了。
解决
在 Cloudflare 后台配置 Service URL 时,** 千万不要填 localhost:8045**

  • 稳妥写法:填 127.0.0.1:8045
  • 进阶写法:填局域网 IP,如 192.168.1.5:8045

2. 局域网 IP 变动怎么办?

如果你使用局域网 IP 配置,重启路由器后 IP 可能会变,这也是我目前使用的方法。
解决

在 Cloudflare Service URL 里填写计算机名,前提是你的计算机名是全网独一无二的?(如 http://My-Desktop:8045),让它通过主机名解析。

服务器端配置示例

最后,在远程 Linux 服务器上,只需要修改 JSON 配置文件中的 Base URL 即可:

{ "env": { "ANTHROPIC_AUTH_TOKEN": "sk-your-key-here", "ANTHROPIC_BASE_URL": "https://api.example.xyz", "ANTHROPIC_MODEL": "claude-sonnet-4-5-thinking" } } 

希望能帮助到佬友,有更好的方法大家也可以在下面提出来呀。


📌 转载信息
转载时间:
2026/1/18 19:16:42

背景

由于鼠鼠我在服务器上没有 sudo 权限,没法使用 github 上提供的方法,而仅仅通过 SSH 反向隧道经常出现连接不稳定、端口假死或断连的情况。经过一番折腾,我找到了基于 Cloudflare Tunnel 的终极解决方案。本文将分享两种配置方法:一种适合临时测试(无域名),另一种适合长期稳定运行(有域名)。

准备工作:本地服务配置


方案一:我没有域名

如果你只是想临时测试一下,或者不想购买域名,可以使用 Cloudflare 提供的免费临时隧道。

步骤:

  1. 下载 Cloudflared 工具。
  2. 在下载目录打开 PowerShell,运行以下命令:
cloudflared.exe tunnel --url http://localhost:8045
  1. 终端会输出一个临时的公网地址,格式如:
    https://random-name.trycloudflare.com
  2. 复制这个地址,去服务器配置即可使用。


方案二:我有自己的域名

如果你有域名(托管在 Cloudflare),我们可以利用 Cloudflare Zero Trust 面板,将本地电脑变成一台 “服务器”,实现开机自启固定域名无需保持黑窗口运行

特点:稳定、专业、后台静默运行。

1. 创建隧道与安装服务

  1. 进入 Cloudflare Zero Trust 面板NetworksManage Tunnels

  2. 创建 Tunnel

  3. 在安装界面选择你 Antigravity Tools 所在的操作系统,复制那一长串安装命令进行安装。

  4. 成功提示Cloudflared agent installed successfully。此时服务已在后台安装,电脑重启也会自动连上。

2. 绑定域名

在你的 tunnel 中

点击 这个 routes 进入配置页面:

  • Subdomain: 填写前缀(如 api)。
  • Domain: 选择你的域名(如 example.xyz)。
  • Service:
  • Type: HTTP
  • URL: 127.0.0.1:8045 (或局域网 IP,或者是你的计算机名,我这里使用的是计算机名,因为我的电脑会经常到处跑)。

保存后,你的 API 地址就是固定的 https://api.example.xyz 了。


避坑指南:解决 524 Timeout 与断连

在使用过程中,我遇到了几个关键问题,这里给出解决方案:

1. 致命的 HTTP 524 Timeout 错误

现象:域名能 ping 通,但请求 API 时卡顿很久,最后报错 524: A timeout occurred
原因:Windows 默认将 localhost 解析为 IPv6 (::1),而某些服务只监听 IPv4。Cloudflare 转发请求时 “迷路” 了。
解决
在 Cloudflare 后台配置 Service URL 时,** 千万不要填 localhost:8045**

  • 稳妥写法:填 127.0.0.1:8045
  • 进阶写法:填局域网 IP,如 192.168.1.5:8045

2. 局域网 IP 变动怎么办?

如果你使用局域网 IP 配置,重启路由器后 IP 可能会变,这也是我目前使用的方法。
解决

在 Cloudflare Service URL 里填写计算机名,前提是你的计算机名是全网独一无二的?(如 http://My-Desktop:8045),让它通过主机名解析。

服务器端配置示例

最后,在远程 Linux 服务器上,只需要修改 JSON 配置文件中的 Base URL 即可:

{ "env": { "ANTHROPIC_AUTH_TOKEN": "sk-your-key-here", "ANTHROPIC_BASE_URL": "https://api.example.xyz", "ANTHROPIC_MODEL": "claude-sonnet-4-5-thinking" } } 

希望能帮助到佬友,有更好的方法大家也可以在下面提出来呀。


📌 转载信息
转载时间:
2026/1/18 15:50:26

+--------------------+           +---------------------+           +----------------------+
|     VPS A          |           |   Cloudflare Edge   |           |        VPS B         |
|  (发送端 / Client) |           |  (Zero Trust)       |           |   (接收端 / Server)  |
|                    |           |                     |           |                      |
|  App / Client      |           |                     |           |  Target Service      |
|  mysql / nc / ...  |           |                     |           |  (127.0.0.1:3306)    |
|        |           |           |                     |           |        ^             |
|        v           |           |                     |           |        |             |
|  127.0.0.1:9000    |--TCP----->|  TLS Tunnel         |--TCP----->|  cloudflared tunnel  |
|  cloudflared       |           |  Auth + Policy      |           |                      |
|  access tcp        |           |                     |           |                      |
+--------------------+           +---------------------+           +----------------------+

Legend:
- Local Port        : 127.0.0.1:9000 (VPS A)
- Tunnel Hostname   : 主机名
- Remote Port       : 127.0.0.1:3306 (VPS B)

配置

接下来需要一点 xray 基础,不懂问 AI。xray 分流配置、cloudflared 程序保活等待

接收端

需要部署 cloudflared tunnel 隧道

  • 创建一个主机名
  • 服务类型需要设置为 TCP
  • 地址 localhost:入站端口

发送端

需安装 clouflared

  • 使用命令 cloudflared access tcp --hostname 主机名 --url 127.0.0.1:9000 创建一个本地监听端口
  • Xray 配置分流出站转发至 127.0.0.1:9000

主要加速 VPS 之间的传输速度,使用 CF 的黑盒线路。使用感受明显提升,暂时没找到测速的方法


📌 转载信息
原作者:
ili
转载时间:
2026/1/12 15:01:04