← Back to list

clashX config分析

情景:参考【mac 修复DNS】

xiaoqiqi · 2025-04-26 06:14 · 0 claps · 6.0 min read
#clashx
Open on Medium ↗

clashX config分析

情景:参考【mac 修复DNS】

趁此机会,研究了一下clashX的config文件的结构。

配置目录:/Users/sevan/.config/clash

➜  clash pwd
/Users/sevan/.config/clash
➜  clash ll
total 13296
-rw-r--r--@ 1 sevan  staff   653K  4 26 11:38 2504.yaml
-rw-r--r--@ 1 sevan  staff   5.7M  4 26 10:56 Country.mmdb
-rw-r--r--@ 1 sevan  staff   128K  4 26 12:00 cache.db
-rw-------@ 1 sevan  staff    81B  4 26 11:23 config-win.yaml
-rw-r--r--@ 1 sevan  staff   663B 10 18  2023 config.yaml

config.yaml是clash提供的demo文件。2504为从机场导入的生效文件。多次导入,会生成多个名称不同的文件。

分析一下这几个文件

config.yaml

#---------------------------------------------------#
## 配置文件需要放置在 $HOME/.config/clash/*.yaml

## 这份文件是clashX的基础配置文件,请尽量新建配置文件进行修改。
## 端口设置请在 菜单条图标->配置->更多配置 中进行修改

## 如果您不知道如何操作,请参阅 官方Github文档 https://dreamacro.github.io/clash/
#---------------------------------------------------#

mode: rule
log-level: debug

proxies:

proxy-groups:

rules:
  - DOMAIN-SUFFIX,google.com,DIRECT
  - DOMAIN-KEYWORD,google,DIRECT
  - DOMAIN,google.com,DIRECT
  - DOMAIN-SUFFIX,ad.com,REJECT
  - GEOIP,CN,DIRECT
  - MATCH,DIRECT

提供的demo config,实际配置文件就是按此结构,填充上各配置项的具体内容。

rules

  • DOMAIN-SUFFIX,google.com,DIRECT

域名后缀为google.com,则走直接连接,请求不经梯子。当然实际配置文件,这里是:- DOMAIN-KEYWORD,youtube,节点组。

“节点组”,是proxy-groups里其中一个group的name。

proxy-groups:
-
  name: 节点组
  type: select
  proxies:
    - 国外流量
    - 香港负载组
    - 台湾负载组
    - 新加坡负载组
    - 日本负载组
    - 美国负载组
    - ChatGPT
    - 直接连接
  • MATCH,DIRECT

这是一行兜底配置。含义:未被前面规则匹配的请求,走直连。适合仅需要特定域名走代理/拦截,其余全部直连的场景。

2504.yaml

#---------------------------------------------------#
## 更新:2025-04-26 10:59:47
## 感谢:https://github.com/Hackl0us/SS-Rule-Snippet
## 链接:https://scdy03.scsub.com//apiv2/deg6wfonwt8vrkfy?clash=1
#---------------------------------------------------#

# HTTP 代理端口
port: 7890 

# SOCKS5 代理端口
socks-port: 7891 

# Linux 和 macOS 的 redir 代理端口
redir-port: 7892 

# 允许局域网的连接
allow-lan: true

# 规则模式:Rule(规则) / Global(全局代理)/ Direct(全局直连)
mode: Rule

# 设置日志输出级别 (默认级别:silent,即不输出任何内容,以避免因日志内容过大而导致程序内存溢出)。
# 5 个级别:silent / info / warning / error / debug。级别越高日志输出量越大,越倾向于调试,若需要请自行开启。
log-level: debug
# Clash 的 RESTful API
external-controller: '127.0.0.1:9090'
experimental:
  ignore-resolve-fail: true
# RESTful API 的口令
secret: '' 

# 您可以将静态网页资源(如 clash-dashboard)放置在一个目录中,clash 将会服务于 `RESTful API/ui`
# 参数应填写配置目录的相对路径或绝对路径。
# external-ui: folder
#  # Clash DNS 请求逻辑:
#  # (1) 当访问一个域名时, nameserver 与 fallback 列表内的所有服务器并发请求,得到域名对应的 IP 地址。
#  # (2) clash 将选取 nameserver 列表内,解析最快的结果。
#  # (3) 若解析结果中,IP 地址属于 国外,那么 Clash 将选择 fallback 列表内,解析最快的结果。

#  # 注意:
#  # (1) 如果您为了确保 DNS 解析结果无污染,请仅保留列表内以 tls:// 开头的 DNS 服务器,但是通常对于国内没有太大必要。
#  # (2) 如果您不在乎可能解析到污染的结果,更加追求速度。请将 nameserver 列表的服务器插入至 fallback 列表内,并移除重复项。

proxies:
-
-
-

proxy-groups:
-
-
-

我本地真正生效的config文件,1.5万行,结构跟demo config是一样的。

兜底配置:

  • MATCH,其他流量

“其他流量”是proxy-groups里的一个group。

config文件 渲染到软件UI

可见,config里的内容,跟界面各功能入口,是对应的。

终端代理命令

此入口从上图界面可见。还挺方便的,当命令行执行命令,需要走梯子访问外网时。其实就是配置http_proxy环境变量。

export https_proxy=http://127.0.0.1:7890 http_proxy=http://127.0.0.1:7890 all_proxy=socks5://127.0.0.1:7890
export http_proxy=127.0.0.1:7890 && export https_proxy=127.0.0.1:7890
export http_proxy= && export https_proxy=

메타데이터
post_id
9d6e622e4e7b
slug
clashx-config分析-9d6e622e4e7b
url
https://medium.com/@xiaoqiqi/clashx-config%E5%88%86%E6%9E%90-9d6e622e4e7b
canonical_url
https://medium.com/@xiaoqiqi/clashx-config%E5%88%86%E6%9E%90-9d6e622e4e7b
author_url
https://medium.com/@xiaoqiqi
status
ok
fetched_at
2026-07-20 04:28:34