标签 Cloudflare Tunnel 下的文章

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中进行反馈。

总所周知 cf 只转发指定端口
但是我买的低价 nat 鸡,那些端口都被别人占用了,
于是想着能不能任意端口都能经过 cf 的转发,
那个 cf 的隧道就能实现。
cf 主页的这个:
nat 鸡任意端口套 cf 转发教程 - 加速节点1
在网络 - 连接器中创建隧道:


选 cf 的这个就行了:


然后我的 nat 鸡是 debian13,选这个:


建议上面的代码分开执行,反正我一键复制执行就不行:


最后执行下面的那个启动隧道就是了。
然后自己添加最右边那个:


我懒得折腾证书了,直接用域名:80 端口就算了,反正都是连接到 cf,管他什么安全性的,唉


然后 3x-ui,里面整个 vmess 的 ws,主机名肯定是自己上面整的域名



nat 鸡肯定需要端口映射,自己整吧,
首先确认自己的 vmess 是能连通的:
nat 鸡任意端口套 cf 转发教程 - 加速节点10
然后直接,改成隧道的域名,和 80 端口:


然后发现也是通的:
nat 鸡任意端口套 cf 转发教程 - 加速节点11
然后直接改成 cf 的优选域名,(优选域名一大堆自己随便搜索,找一个自己 ping 低的就行了):
nat 鸡任意端口套 cf 转发教程 - 加速节点13
然后就能低延迟一点,连接到辣鸡节点了,
测速图:


我的网络就 100m, 没办法。

这个的优点:辣鸡节点能套 cf 加速下载,延迟也能低一点;
缺点:晚上必寄,只有白天才舒服,晚上直接卡死。

所以我一般整来下载东西吧,不过需求也不大,不过白天用用也是不错的,至少能加速连接,加速下载。


📌 转载信息
转载时间:
2026/1/22 12:57:52

背景

由于鼠鼠我在服务器上没有 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

方案概述

本方案利用 Cloudflare 的 Zero Trust(原 Cloudflare Access)和 Cloudflare Tunnel(原 Argo Tunnel)功能,实现内网服务的安全访问。

通过配置安全认证和基于 Cloudflare Worker 的动态 IP 白名单,确保只有授权用户能够访问内网资源,同时适配不支持认证的客户端。

前期准备

  • Cloudflare 账号及域名

  • Docker 环境(可选)

  • npm 环境(用于部署 Worker 脚本)


一、配置 Cloudflare Tunnel

1. 创建隧道

  1. 登录 Cloudflare 控制台,选择 Zero Trust

  2. 导航到 网络 > 连接器

  3. 选择 创建隧道 > 选择 Cloudflared > 填入名称 > 保存隧道

2. 启动隧道

网页会提供一段启动命令,复制并在内网服务器上执行。默认显示 Windows,可切换至 Mac、Debian、Red Hat、Docker 等系统。

Docker Compose 方式:

 services: cloudflared:  cloudflare/cloudflared:latest container_name: cloudflared restart: unless-stopped command: tunnel --no-autoupdate run --token <YOUR_TUNNEL_TOKEN> 

3. 配置路由

选择 路由隧道 / 已发布应用程序路由 添加路由,填写子域名和内网服务地址(如 http://localhost:8080)。

注意: 直接填写内网服务地址,不要经过 nginx 等代理。


二、配置 Cloudflare Access 安全认证

1. 创建应用程序

  1. 导航到 Zero Trust > 访问控制 > 应用程序 > 添加应用程序

  2. 输入应用名称

  3. 添加公共主机名(即上一步配置的子域名)

2. 创建访问策略

  1. 选择 创建新策略,输入策略名称

  2. 操作选择 允许

  3. 选择器类型选择 电子邮件

  4. 输入允许访问的用户邮箱(可根据需要选择其他认证方式)

  5. 保存策略

提示: 不支持认证的客户端应用的处理办法将在后续章节介绍。

3. 关联策略

回到应用程序页面,选择现有策略,关联刚创建的策略。

完成配置后,访问该子域名时会被重定向到 Cloudflare 的认证页面,只有通过认证的用户才能访问内网服务。


三、配置动态 IP 白名单(可选)

3.1 适用场景

如果应用程序不支持 Cloudflare Access 认证,或者频繁认证不便,可以通过 Cloudflare Worker 实现动态 IP 白名单功能。

3.2 部署项目

使用项目 cloudflare_dynamic_ip_list 来实现动态 IP 白名单功能。

3.2.1 克隆项目


git clone https://github.com/AinzRimuru/cloudflare_dynamic_ip_list.git

3.2.2 创建 KV Namespace

运行以下命令创建 KV 命名空间,用于维护 IP 的过期状态:


wrangler kv namespace create IP_WHITELIST

记下返回的 ID,填入 wrangler.toml[[kv_namespaces]] 部分的 id 字段。

3.2.3 创建 IP 列表

  1. 打开 Zero Trust > 可重用组件 > 列表 > 创建列表

  2. 创建后记下列表 ID(点开 List 页面,在 URL 中可以看到 ID,形如 ********-****-****-****-************

  3. 将该 ID 填入 wrangler.toml[vars] 部分的 LIST_ID 字段

3.2.4 获取 Account ID

  1. 打开 计算和 AI > Workers 和 Pages

  2. 在右边可以看到 Account Details

  3. 记下 Account ID,填入 wrangler.toml 中的 ACCOUNT_ID 字段

3.2.5 配置允许的域名(可选)

如果配置了新域名,且希望仅允许该域名访问,可以在 wrangler.toml[vars] 部分的 ALLOWED_HOSTS 字段添加域名,多个域名用逗号分隔。

如果不配置该字段,则允许所有域名访问。

3.2.6 部署 Worker 脚本


npx wrangler login

npx wrangler deploy --config config/wrangler.toml

3.3 配置白名单的 Bypass 策略

  1. 在 Cloudflare 控制台,导航到 Zero Trust > 访问控制 > 策略

  2. 创建新策略,名称自定义

  3. 操作选择 BYPASS

  4. 选择器类型选择 IP List,值为刚创建的 List 名称

  5. 保存策略

关联策略: 将策略添加到刚刚创建的应用程序中,排名第 1 位。这样,IP 在白名单中的请求将绕过认证直接访问内网服务。

3.4 IP 白名单的注册鉴权(Token 方式)

3.4.1 创建服务凭据

  1. 选择 Zero Trust > 访问控制 > 服务凭据 > 创建凭据

  2. 输入名称,创建后记下 Client IDClient Secret

3.4.2 创建 Worker 应用程序

  1. 新建应用程序,名称自定义

  2. 公共主机名填写 Worker 脚本的域名(如 your-worker.your-domain.com

3.4.3 创建 SERVICE AUTH 策略

  1. 创建新策略,名称自定义

  2. 操作选择 SERVICE AUTH

  3. 选择器类型选择 Service Token,值为刚创建的服务凭据名称

  4. 保存策略

3.4.4 关联策略

回到 Worker 的应用程序页面,选择现有策略,关联刚创建的策略。

3.5 IP 白名单的注册鉴权(Email 方式)

  1. 创建新策略,名称自定义

  2. 操作选择 Allow

  3. 选择器类型选择 Emails,值为允许注册的邮箱地址(可添加多个)

  4. 保存策略后,回到 Worker 的应用程序页面,关联刚创建的策略

3.6 使用说明

  • 浏览器访问 Worker 脚本的域名,完成认证后,IP 将被添加到白名单中,且在指定时间内有效。

  • 对于不支持认证的客户端应用,可使用自动化任务(如 iOS 的快捷指令等)配置 CF-Access-Client-IdCF-Access-Client-Secret 请求头,实现自动认证。

注意: 自动化任务可能无法指定请求时的 IPv4/IPv6 地址,因此可以尝试重复请求多次以确保 IPv4 和 IPv6 地址均被添加到白名单中。

这些是全部的内容了,但还是希望能够来博客看看。基于 Cloudflare 的内网穿透解决方案(含安全认证及动态 IP 白名单)


📌 转载信息
原作者:
RimuruTempest
转载时间:
2026/1/18 08:51:32

+--------------------+           +---------------------+           +----------------------+
|     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

简介

AutoCFT(Automate Cloudflare Tunnel)是一个简化 Cloudflare Tunnels 配置和运维的开源工具,适合 Self-hosted 的 Docker 环境,主要提供配置自动化更新,避免频繁登录 Zero Trust Dashboard 进行更新;通过 Docker 或 Docker compose 部署,便于管理;采用 Go 实现,轻量化结构;中英文文档完整。

项目地址:GitHub - cloudfogtech/autocft: A tool for Docker Compose to automatically update access endpoints to Cloudflare Tunnel.

官方文档:https://autocft.cloudfogtech.ltd/

部署与使用

要使用 AutoCFT,基本上默认已经有 Docker 环境了,下面的教程将直接基于 Docker 环境开始。

AutoCFT 部署

services: autocft:  cloudfogtech/autocft:latest container_name: autocft restart: always environment: - AUTOCFT_CF_API_TOKEN=<AUTOCFT_CF_API_TOKEN> - AUTOCFT_CF_ACCOUNT_ID=<AUTOCFT_CF_ACCOUNT_ID> - AUTOCFT_CF_TUNNEL_ID=<AUTOCFT_CF_TUNNEL_ID> volumes: - /var/run/docker.sock:/var/run/docker.sock:ro - /root/data/autocft:/app/data networks: - test_net networks: test_net: external: true 

必填参数获取指南:https://autocft.cloudfogtech.ltd/zh/cloudflare.html

Cloudflared 部署

宿主机部署

如果 Cloudflared 在宿主机部署,则需要为每个应用增加端口映射。auto.service 设置为从宿主机访问的地址。

容器部署

services: cloudflared:  cloudflare/cloudflared:2025.11.1 container_name: cloudflared restart: always command: tunnel run environment: - TUNNEL_TOKEN=<TUNNEL_TOKEN> networks: - test_net networks: test_net: external: true 

容器部署的情况下,所有容器应该处于同一网络,因此不需要端口映射到宿主机,直接通过 Docker 网络访问。

示例应用

下面将部署示例应用展示应用如何和 AutoCFT 结合使用

普通应用

services: nginx:  nginx container_name: nginx restart: always # 宿主机部署Cloudflared需要开启端口映射 # ports: #   - "80:80" volumes: - /etc/ssl/certs:/etc/ssl/certs:ro labels: - autocft.enabled=true - autocft.hostname=nginx.example.com - autocft.service=http://nginx:80 # 宿主机访问地址为本地方位映射的端口 # - autocft.service=http://localhost:80 networks: - test_net networks: test_net: external: true 

HTTPS 应用

services: nginx:  nginx container_name: nginx restart: always # 宿主机部署Cloudflared需要开启端口映射 # ports: #   - "443:443" volumes: - /etc/ssl/certs:/etc/ssl/certs:ro labels: - autocft.enabled=true - autocft.hostname=nginx.example.com - autocft.service=https://nginx:443 # 宿主机访问地址为本地方位映射的端口 # - autocft.service=https://localhost:443 - autocft.origin.origin-server-name=nginx.example.com # 如需忽略TLS证书验证,请设置下面的值 - autocft.origin.no-tls-verify=true networks: - test_net networks: test_net: external: true 

应用部署后,默认配置的情况下大约 10s 后,配置将同步到 Tunnel,就可以访问了。

问题与反馈

两种方式供君挑选

  • 跟帖反馈
  • 通过 Github Issue 反馈


这算是我首次成体系的一个开源项目,在 2025 年末给大家一个更便于使用的工具,也给我自己做一个 2025 年的总结。

感谢始皇和 linux.do 平台的各位佬提供的各种教程、公益资源和这个交流的平台,缘分让我们聚在一起。

真诚友善团结专业 ,共建你我引以为荣之社区。

预祝 2026 的各位佬事业步步高升,生活顺心如意~linux.do 做大做强,再创辉煌~

新年快乐


📌 转载信息
原作者:
catfishlty
转载时间:
2025/12/31 17:14:05