Clash Verge Rev

tim-qtp...大约 4 分钟Clash Verge

提示

开坑之前,想的是使用Electron和Tauri开发一款桌面程序。

然后最近也在研究Clash Meta内核,不过现在改名了,叫Mihamo,作者也挺有趣,和去年Clash For Windows删库事件可能有千丝万缕影响,改成了崩坏。

然后发现Clash-Verge-Rev正好是用Tauri构建的,而且开源,所以正中下怀。

Tel群中也正好看见大家在讨论得物从Electron迁移到Tauri的事情,https://mp.weixin.qq.com/s/UxmJxU4-fv9GeRxl2fzOGwopen in new window,所以,开扒!

放一个内核文档地址:配置 - Docs (metacubex.one)open in new window

先从配置文件开始

# Generated by Clash Verge

# Clash 的混合代理端口,支持 HTTP、HTTPS 和 SOCKS 代理协议的请求。
mixed-port: 7897 
# 单独的 SOCKS5 代理端口
socks-port: 7898
# 支持纯 HTTP 和 HTTPS 协议的代理请求
port: 7899
log-level: debug
# 允许局域网设备通过本机的 Clash 代理访问互联网
allow-lan: true
# 流量分流模式
# rule:根据规则(如域名匹配、IP 匹配等)分流。
mode: rule
# 配置外部控制端口,通过这个端口,外部应用(如Clash Dashboard)可以连接并控制 Clash。
# 详细看下面折叠
external-controller: 127.0.0.1:9097
secret: ''
# TUN 模式配置:实现系统级流量代理
tun:
  auto-detect-interface: true #自动检测网络接口
  auto-route: true #自动路由流量,将TUN模式的流量重定向到代理
  device: Mihomo #虚拟TUN网卡的设备名称
  dns-hijack: #拦截所有DNS请求(端口 53),强制通过Clash处理
  - any:53
  mtu: 1500 #设置最大传输单元(MTU),默认1500字节
  stack: mixed #协议栈:支持混合(IPv4和IPv6)
  strict-route: false #是否强制路由流量
# 跨域控制配置
external-controller-cors:
  allow-private-network: true #允许来自私有网络(如局域网)的跨域访问
  allow-origins: #定义允许的跨域来源,* 表示允许所有来源
  - '*'
unified-delay: true #优化不同节点的测速结果,统一延迟计算
外部控制设置 RESTful API 文档

日志

  • 接口: /logs

    • 方法: GET

      • 完整路径: GET /logs

      • 描述: 获取实时日志


流量

  • 接口: /traffic
    • 方法: GET

      • 完整路径: GET /traffic

      • 描述: 获取实时流量数据


版本

  • 接口: /version
    • 方法: GET

      • 完整路径: GET /version

      • 描述: 获取 Clash 版本


配置

  • 接口: /configs
    • 方法: GET
      • 完整路径: GET /configs
      • 描述: 获取基础配置
    • 方法: PUT
      • 完整路径: PUT /configs
      • 描述: 重新加载配置文件
    • 方法: PATCH
      • 完整路径: PATCH /configs
      • 描述: 增量修改配置

节点

  • 接口: /proxies
    • 方法: GET
      • 完整路径: GET /proxies
      • 描述: 获取所有节点信息
  • /proxies/:name
    • 方法: GET
      • 完整路径: GET /proxies/:name
      • 描述: 获取指定节点信息
    • 方法: PUT
      • 完整路径: PUT /proxies/:name
      • 描述: 切换 Selector 中选中的节点
  • /proxies/:name/delay
    • 方法: GET
      • 完整路径: GET /proxies/:name/delay
      • 描述: 获取指定节点的延迟测试信息

规则

  • 接口: /rules

    • 方法: GET

      • 完整路径: GET /rules

      • 描述: 获取规则信息


连接

  • 接口: /connections
    • 方法: GET
      • 完整路径: GET /connections
      • 描述: 获取连接信息
    • 方法: DELETE
      • 完整路径: DELETE /connections
      • 描述: 关闭所有连接
  • /connections/:id
    • 方法: DELETE
      • 完整路径: DELETE /connections/:id
      • 描述: 关闭指定连接

DNS查询

  • 接口: /dns/query
    • 方法: GET

      • 完整路径: GET /dns/query?name={name}[&type={type}]

      • 描述: 获取指定域名和类型的 DNS 查询数据

    • 参数:

      • name (必填): 要查询的域名
      • type (可选): 要查询的 DNS 记录类型 (例如, A, MX, CNAME)。默认为 A
    • 示例: GET /dns/query?name=example.com&type=A