轻松部署无限节点代理池!从零开始小白轻松上手

本文由 简悦 SimpRead 转码, 原文地址 blog.cmliussss.com

.video-container { position: relative; width: 100%; padding-top: 56.25%; /* 16:9 asp……

科学上网 CM 喂饭 干货满满 Docker 代理池 ProxyPool 汇聚订阅节点测速 2025-04-192025-04-24

想拥有一个永不过期、取之不尽的节点池吗?手把手教你如何通过几步简单的配置,构建自己的代理池,让你在任何时候都能轻松获取优质节点。

正所谓授人以鱼不如授人以渔!


🛠️ 准备工作

在开始之前,请确保你已具备以下条件:

  1. 一台能运行 Docker 的设备(要求直连互联网,测试节点必须如此)。
  2. 一个 Github 账户Cloudflare 账户(并且已经完成域名托管,不要使用需要双向解析的免费域名)。

📦 涉及项目

  • Docker subs-check
    该容器化工具会自动测速筛选节点。

    • *

🐳 1. 部署 Docker subs-check

subs-check 支持三种部署方式,用户可根据自己的操作习惯和硬件环境选择最适合自己的方式:

  1. 小白命令一键部署容器
    适合新手,操作简单,但重置 Docker 后会丢失所有配置信息
  2. 使用 docker-compose.yml 部署容器
    推荐方式,便于管理和持久化配置,适合大多数用户。
  3. 命令行创建 docker 容器
    适合熟悉 Docker 命令的用户,subs-check 配置和节点信息可保留,但无法保留 Docker 构建信息

1.1 部署方式一:小白命令一键部署容器

docker run -d --name subs-check -p 8199:8199 -p 8299:8299 -e API_KEY=填入管理密码 --restart always ghcr.io/beck-8/subs-check:latest

例如:

docker run -d --name subs-check -p 8199:8199 -p 8299:8299 -e API_KEY=admin --restart always ghcr.io/beck-8/subs-check:latest

1.2 部署方式二:使用 docker-compose.yml 部署容器

创建 docker-compose.yml,并启动容器。将 config.yaml 配置文件所在目录映射到容器 /app/config 内:

version: "3"
services:
  subs-check:
    image: ghcr.io/beck-8/subs-check:latest
    container_name: subs-check

    volumes:
      - ${config 绝对路径}:/app/config
      - ${output 绝对路径}:/app/output
    ports:
      - "8199:8199"
      - "8299:8299"
    environment:
      - TZ=Asia/Shanghai
      - API_KEY=admin

    restart: always
    tty: true
    network_mode: bridge

1.3 部署方式三:命令行创建 docker 容器

docker run -d --name subs-check -p 8199:8199 -p 8299:8299 -v ${config 绝对路径}:/app/config -v ${output 绝对路径}:/app/output -e API_KEY=admin --restart always ghcr.io/beck-8/subs-check:latest

登录 WebUI 管理页面,编辑 config.yaml 配置文件

  • WebUI:

    http://你设备的IP:8199/admin

你可以通过 WebUI 编辑你的config.yaml,参考文档:config.yaml

你可以使用 SubsCheck-Win-GUI 测试完善后将 config.yaml 然后替换原文件并重启容器即可完成配置。

  • 通用订阅:

    https://你设备的IP:8299/download/sub
  • clash 订阅:

    https://你设备的IP:8299/api/file/mihomo
    • *

🔐 2. 通过 Gist 实现外网静态订阅

  • 获取 Github Token 与 Gist ID

2.1 如何生成 Github Token

  1. 点击 Github 右上角头像,依次进入:SettingsDeveloper settingsPersonal access tokensTokens (classic)Generate new token (classic)


  2. 在生成页面:将 Expiration 设置为 No expiration,勾选 gist 权限,然后点击 Generate token

  3. 生成后请务必记录这个 Github Token(仅显示一次)。

2.2 如何获取 Gist ID

  1. 登录 gist.github.com,创建一个新的 Gist;

  2. 在生成的 Gist 页面,其链接格式类似:

https://gist.github.com/cmliussss2024/055c0f79d37f79235cda63c77a985749
  • 其中 055c0f79d37f79235cda63c77a985749 就是你的 Gist ID

    • *

2.3 记录测试结果 URL

格式如下:

#clash订阅配置
https://gist.githubusercontent.com/{你的Github用户名}/{你的Gist ID}/raw/mihomo.yaml

#base64订阅配置
https://gist.githubusercontent.com/{你的Github用户名}/{你的Gist ID}/raw/base64.txt

例如:

#clash订阅配置
https://gist.githubusercontent.com/cmliussss2024/055c0f79d37f79235cda63c77a985749/raw/mihomo.yaml

#base64订阅配置
https://gist.githubusercontent.com/cmliussss2024/055c0f79d37f79235cda63c77a985749/raw/base64.txt

可选 API Mirror

  • Gist 上传失败的时候可以尝试使用以下 API Mirror 来上传:

    https://api.github.fxxk.dedyn.io
    • *

📶 3. 通过 CF 隧道 实现外网动态订阅

3.1 创建 CF 隧道,并获取隧道 TOKEN

  1. 登录 Cloudflare,进入 Zero Trust
  2. 点击 网络Tunnels添加隧道
  3. 选择隧道类型:Cloudflared
  4. 为隧道命名,填入你运行 docker 设备的名称(如:nas),点击 保存隧道
  5. 点击运行命令复制命令,如下:
  • 其中 cloudflared.exe service install 之后的内容就是我们需要的 隧道 TOKEN,请务必记录下来。

    cloudflared.exe service install eyJhIjoiOWIwM2EzMGM0NzFhOTUyMTk3YjhiOGJiNmYxMTNiZjYiLCJ0IjoiM2VmZjE3ZTYtNTVkNi00ZmEwLWEyZGUtNGE4NTZhNGFlMDE4IiwicyI6Ik0yRm1ZVEF6WlRJdE4yVXhZUzAwWTJJMUxXRmtOekV0TXpnMk5UQTROREl3T0RabSJ9

  • 将命令末尾的 TOKEN 复制保存到本地,如下:

    eyJhIjoiOWIwM2EzMGM0NzFhOTUyMTk3YjhiOGJiNmYxMTNiZjYiLCJ0IjoiM2VmZjE3ZTYtNTVkNi00ZmEwLWEyZGUtNGE4NTZhNGFlMDE4IiwicyI6Ik0yRm1ZVEF6WlRJdE4yVXhZUzAwWTJJMUxXRmtOekV0TXpnMk5UQTROREl3T0RabSJ9
    • *

3.2 部署 CF 隧道

  • 创建 docker-compose.yml ,并启动容器
    使用下面的配置来启动 Docker 容器,同时将 隧道TOKEN 替换为你复制保存的 TOKEN
version: '3'
services:
  cloudflared:
    container_name: Cloudflare_Tunnels
    image: cloudflare/cloudflared:latest
    restart: always
    command: tunnel --no-autoupdate run --token [隧道TOKEN]

如:

version: '3'
services:
  cloudflared:
    container_name: Cloudflare_Tunnels
    image: cloudflare/cloudflared:latest
    restart: always
    command: tunnel --no-autoupdate run --token eyJhIjoiOWIwM2EzMGM0NzFhOTUyMTk3YjhiOGJiNmYxMTNiZjYiLCJ0IjoiM2VmZjE3ZTYtNTVkNi00ZmEwLWEyZGUtNGE4NTZhNGFlMDE4IiwicyI6Ik0yRm1ZVEF6WlRJdE4yVXhZUzAwWTJJMUxXRmtOekV0TXpnMk5UQTROREl3T0RabSJ9

3.3 设置 CF 隧道的 4 个公共主机名

  1. 路径 download,用于通用订阅
  • 子域:任意值(但 4 个主机名必须相同)

  • 域:任意值(但 4 个主机名必须相同)

  • 路径:download

  • 类型:HTTP

  • URL:[你docker设备的内网IP]:8299(注意端口为 8299

    • *
  1. 路径 api/file,用于 clash 订阅
  • 子域:任意值(但 4 个主机名必须相同)

  • 域:任意值(但 4 个主机名必须相同)

  • 路径:api/file

  • 类型:HTTP

  • URL:[你docker设备的内网IP]:8299(注意端口为 8299

    • *
  1. 路径 admin,用于 WebUI 访问
  • 子域:任意值(但 4 个主机名必须相同)

  • 域:任意值(但 4 个主机名必须相同)

  • 路径:admin

  • 类型:HTTP

  • URL:[你docker设备的内网IP]:8199(注意端口为 8199

    • *
  1. 路径 api,用于 WebUI 获取信息
  • 子域:任意值(但 4 个主机名必须相同)

  • 域:任意值(但 4 个主机名必须相同)

  • 路径:api

  • 类型:HTTP

  • URL:[你docker设备的内网IP]:8199(注意端口为 8199

    • *

3.4 使用 CF 隧道管理 WebUI 和订阅

  • 访问 WebUI:

    https://{你的域名}/admin
  • 通用订阅:

    https://{你的域名}/download/sub
  • clash 订阅:

    https://{你的域名}/api/file/mihomo
    • *

✨ 总结

  • 导出订阅转换后的订阅地址,你可以再次进行汇聚订阅,也可以在订阅转换客户端类型更换为你对应的客户端类型,接下来你就可以自由发挥了!

自行搜索更多公益节点池

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇