🔒 安全提示:此服务已启用访问令牌(Token)保护。所有订阅链接和 API 请求都需要附带 ?token=... 参数才能访问。 请妥善保管你的 Token,不要分享给他人。

🚀 快速入门

你的访问令牌

访问令牌配置在服务器 .env 文件中,查看方式:

# 在项目目录下查看
cat .env | grep ACCESS_TOKEN

如需更换,编辑 .env 中的 ACCESS_TOKEN 值,然后重启服务即可。

1. 生成配置文件

打开 配置生成页面,选择你需要代理的服务(Google、GitHub、Telegram 等), 然后选择以下方式之一提供代理节点:

  • 方式一(推荐): 填入订阅地址,配置自动拉取节点列表
  • 方式二: 手动填写自定义代理节点(YAML 格式)
  • 方式三: 先生成不带节点的模板配置,在客户端自行添加

2. 下载配置

点击「下载配置」按钮,将生成的 clash-config.yaml 保存到本地。

3. 导入客户端

将配置文件导入你的 Clash 客户端:

  • Clash for Windows: Profiles → Drag & drop 或 Import
  • Clash Verge: 订阅 → 导入
  • Clash Meta for Android: 配置 → 导入配置
  • ClashX / Stash (macOS/iOS): 配置 → 远程文件 → 添加

🔗 使用订阅链接(推荐)

订阅链接可以让客户端自动获取配置更新,无需每次手动下载。在配置生成页面复制订阅链接, 然后在 Clash 客户端中添加为远程订阅:

https://你的域名/api/subscribe?token=你的访问令牌&services=google,github,telegram,twitter
⚠️ 重要:Token 参数不可省略!缺少 Token 的请求将返回 403 错误。 你的 Token 在 .env 文件中,部署后请牢记。

支持的查询参数:

  • services - 逗号分隔的服务标识,如 google,github,telegram
  • mode - 代理模式:rule(默认)、globaldirect
  • subscription - 代理提供商订阅地址(URL 编码)
  • allow_lan - 是否允许局域网连接:true(默认)、false
⚠️ 如果使用了 subscription 参数,请确保订阅地址是 URL 编码的,以避免特殊字符冲突。

📱 各平台客户端配置指南

Windows - Clash Verge

  1. 下载并安装 Clash Verge
  2. 打开软件,进入「订阅」页面
  3. 点击「添加」,粘贴订阅链接,点击「确定」
  4. 在「设置」中开启「系统代理」
  5. 切换到「规则」模式

macOS - ClashX Meta

  1. 下载 ClashX Meta
  2. 将配置文件放入 ~/.config/clash/ 目录
  3. 点击菜单栏图标 → 配置 → 选择配置文件
  4. 开启「设置为系统代理」

Android - Clash Meta for Android

  1. 下载 Clash Meta for Android
  2. 打开 App → 配置 → 点击右上角「+」
  3. 选择「从 URL 导入」,粘贴订阅链接
  4. 返回主页,点击「启动」

iOS - Stash / Shadowrocket

  1. 在 App Store 下载 Stash 或 Shadowrocket
  2. 打开 App → 配置 → 添加配置
  3. 粘贴订阅链接,下载配置文件
  4. 开启代理开关

🛠️ 自定义代理节点

如果你有自建的代理服务器,可以在「自定义代理节点」框中填写 YAML 格式的节点信息。 支持以下节点类型:

Shadowsocks (ss):

- name: "我的 SS 节点"
  type: ss
  server: your-server.com
  port: 443
  cipher: chacha20-ietf-poly1305
  password: "your-password"
  udp: true

VMess (vmess):

- name: "我的 VMess 节点"
  type: vmess
  server: your-server.com
  port: 443
  uuid: "your-uuid"
  alterId: 0
  cipher: auto
  tls: true
  network: ws
  ws-path: /path
  ws-headers:
    Host: your-server.com

Trojan:

- name: "我的 Trojan 节点"
  type: trojan
  server: your-server.com
  port: 443
  password: "your-password"
  udp: true
  sni: your-server.com

🤖 Telegram Bot 服务说明

ClashNet 平台预留了后端服务扩展接口,你可以在此服务器上运行 Telegram Bot 等数据服务。 无需额外配置代理规则——因为 Telegram 已经在预置规则集中,Bot 的所有 API 请求会自动走代理转发。

建议的 Bot 框架:

  • Node.js: telegrafgrammy
  • Python: python-telegram-bot
  • Go: go-telegram-bot-api
💡 部署 Bot 时,只需在服务器上运行 Bot 进程,其 API 请求会经过服务器本地的 Clash 代理转发。 确保服务器上 Clash 客户端已运行并开启「允许局域网连接」。

📡 API 参考

ClashNet 提供以下 API 接口,方便开发集成:

GET /api/subscribe

获取 Clash 配置文件(YAML),是最核心的 API。

GET /api/subscribe?services=google,github,telegram&mode=rule

POST /api/config

通过 POST 请求生成配置,支持更复杂的参数:

POST /api/config
Content-Type: application/json

{
  "selectedServices": ["google", "github", "telegram"],
  "mode": "rule",
  "subscriptionUrl": "https://your-provider.com/sub",
  "customProxies": "..."
}

GET /api/rulesets

获取所有可用的规则集列表。

GET /api/status

查看服务运行状态和统计信息。

☁️ Cloudflare 部署方案(推荐,零成本)

不需要 VPS,不需要机场!只要你有域名托管在 Cloudflare,就能用 Workers 做代理转发。

整体架构

手机 Clash → proxy.你的域名(Cloudflare Worker) → 目标网站(GitHub/Telegram)
        ↑ 网站放在 Cloudflare Pages
        ↑ 代理用 Cloudflare Workers

第一步:部署网站到 Cloudflare Pages

  1. 登录 Cloudflare Dashboard
  2. 进入 Pages → 创建项目 → 连接到 Git 仓库
  3. 构建设置:框架=None,构建命令=留空,输出目录=public
  4. 部署后设置自定义域名

第二步:部署代理 Worker

项目中的 workers/proxy-worker.js 是代理 Worker。

# 安装 wrangler CLI
npm install -g wrangler

# 登录 Cloudflare
wrangler login

# 部署 Worker
wrangler deploy

# 设置访问令牌(安全)
wrangler secret put ACCESS_TOKEN

部署后,在 Cloudflare Dashboard 添加 DNS 记录:

  • 类型:CNAME
  • 名称:proxy
  • 目标:你的域名
  • 代理状态:开启(橙色云)
💡 Workers 免费版每天 10 万请求,日常浏览 GitHub/Telegram 完全够用。 如果要看视频/大文件,建议升级 Workers 付费版($5/月)。

第三步:配置 Clash 客户端

在配置生成页面,填入 Cloudflare 代理域名:

  • Cloudflare 代理域名: proxy.你的域名

然后生成配置,导入手机 Clash App 即可。

🌐 部署到服务器(备选方案)

将项目部署到你的域名服务器上:

使用 Node.js 直接运行

cd D:\claw\clashnet
npm install
# 编辑 .env 文件,设置你的域名
npm start

使用 PM2 进程管理(推荐)

npm install -g pm2
pm2 start server.js --name clashnet
pm2 save
pm2 startup

使用 Nginx 反代(推荐)

server {
    listen 80;
    server_name your-domain.com;

    location / {
        proxy_pass http://127.0.0.1:3000;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
    }
}