ClashX: полный разбор конфигурационного файла YAML

Обложка статьи 10

Обзор файла

ClashX использует YAML-конфиг для описания всего поведения прокси. Понимание структуры и назначения каждого параметра — ключ к эффективной настройке.

Обычно файл находится по адресу ~/.config/clash/config.yaml или обновляется по ссылке подписки. Ниже — разбор всех разделов.

💡
YAML и отступы

Отступы важны: используйте только пробелы (рекомендуется 2 пробела на уровень).

Базовая структура

Типовой минимальный конфиг включает общие параметры, список узлов, группы и правила:

Пример структуры

# Общие
port: 7890
socks-port: 7891
allow-lan: false
mode: rule
log-level: info

# Узлы
proxies:
  - name: "Node-1"
    type: ss
    server: example.com
    port: 443

# Группы
proxy-groups:
  - name: "🚀 Выбор узла"
    type: select
    proxies:
      - "Node-1"

# Правила
rules:
  - DOMAIN-SUFFIX,google.com,🚀 Выбор узла
  - GEOIP,CN,DIRECT
  - MATCH,🚀 Выбор узла

Общие настройки

Контролируют базовое поведение ClashX и производительность.

Порты

# HTTP-прокси
port: 7890

# SOCKS5
socks-port: 7891

# Смешанный порт
mixed-port: 7892

# RESTful API
external-controller: 127.0.0.1:9090

# Ключ доступа API
secret: "your-secret-key"

Сеть

# Доступ из ЛВС
allow-lan: false
bind-address: "*"

# Режим: rule / global / direct
mode: rule

# Логи: silent / error / warning / info / debug
log-level: info

# IPv6
ipv6: true

DNS

Влияет на скорость и корректность резолвинга:

dns:
  enable: true
  listen: 0.0.0.0:53
  enhanced-mode: fake-ip  # или redir-host
  fake-ip-range: 198.18.0.1/16
  fake-ip-filter:
    - "*.lan"
    - "localhost.ptlogin2.qq.com"
  nameserver:
    - 119.29.29.29
    - 223.5.5.5
    - https://doh.pub/dns-query
  fallback:
    - https://1.1.1.1/dns-query
    - https://dns.google/dns-query
  nameserver-policy:
    "geosite:cn":
      - 119.29.29.29
      - 223.5.5.5
    "geosite:geolocation-!cn":
      - https://1.1.1.1/dns-query
⚠️
Выбор режима

fake-ip быстрее, но может конфликтовать с отдельными приложениями; redir-host совместимее, но медленнее.

Узлы (Proxies)

Определяют доступные прокси-серверы. Поддерживаются SS/SSR/VMess/Trojan/HTTP(S) и др.

Shadowsocks (SS)

proxies:
  - name: "SS Node"
    type: ss
    server: example.com
    port: 443
    cipher: aes-256-gcm
    password: "your-password"
    udp: true

ShadowsocksR (SSR)

  - name: "SSR Node"
    type: ssr
    server: example.com
    port: 443
    cipher: aes-256-cfb
    password: "your-password"
    protocol: auth_aes128_md5
    protocol-param: ""
    obfs: tls1.2_ticket_auth
    obfs-param: "cloudflare.com"

VMess

  - name: "VMess Node"
    type: vmess
    server: example.com
    port: 443
    uuid: b831381d-6324-4d53-ad4f-8cda48b30811
    alterId: 0
    cipher: auto
    tls: true
    skip-cert-verify: false
    servername: example.com
    network: ws
    ws-opts:
      path: /path
      headers:
        Host: example.com

Trojan

  - name: "Trojan Node"
    type: trojan
    server: example.com
    port: 443
    password: "your-password"
    sni: example.com
    skip-cert-verify: false
    udp: true

HTTP/HTTPS

  - name: "HTTP Proxy"
    type: http
    server: example.com
    port: 8080
    username: user
    password: pass
    tls: true
    skip-cert-verify: false

Группы (Proxy Groups)

Группы позволяют объединять узлы, выбирать лучший или распределять нагрузку.

select — ручной выбор

Пользователь выбирает нужный узел:

proxy-groups:
  - name: "🚀 Выбор узла"
    type: select
    proxies:
      - "🇭🇰 Hong Kong"
      - "🇯🇵 Japan"
      - "🇺🇸 US"
      - DIRECT

url-test — авто-выбор

Автоматически выбирает узел с минимальной задержкой:

  - name: "♻️ Автовыбор"
    type: url-test
    proxies:
      - "Node-1"
      - "Node-2"
      - "Node-3"
    url: "http://www.gstatic.com/generate_204"
    interval: 300
    tolerance: 50

fallback — отказоустойчивость

Автопереключение на резерв:

  - name: "🔰 Отказоустойчивость"
    type: fallback
    proxies:
      - "Main"
      - "Backup-1"
      - "Backup-2"
    url: "http://www.gstatic.com/generate_204"
    interval: 300

load-balance — балансировка

Распределение трафика по узлам:

  - name: "⚖️ Балансировка"
    type: load-balance
    proxies:
      - "Node-1"
      - "Node-2"
      - "Node-3"
    url: "http://www.gstatic.com/generate_204"
    interval: 300
    strategy: consistent-hashing  # либо round-robin

relay — цепочки

Маршрутизация через цепочку:

  - name: "🔗 Цепочка"
    type: relay
    proxies:
      - "Node-1"
      - "Node-2"
💡
Практика

Создавайте отдельные группы под стриминг, игры и загрузки. Включайте url-test внутри select для гибкости.

Правила (Rules)

Решают, что идет через прокси, а что — напрямую. Срабатывают сверху вниз, первое совпадение — финальное.

Пример правил

rules:
  - DOMAIN-SUFFIX,local,DIRECT
  - IP-CIDR,127.0.0.0/8,DIRECT
  - IP-CIDR,192.168.0.0/16,DIRECT,no-resolve
  - IP-CIDR,10.0.0.0/8,DIRECT,no-resolve
  - DOMAIN-KEYWORD,adservice,REJECT
  - DOMAIN-SUFFIX,doubleclick.net,REJECT
  - DOMAIN-SUFFIX,youtube.com,🎬 Стриминг
  - DOMAIN-SUFFIX,netflix.com,🎬 Стриминг
  - DOMAIN-KEYWORD,spotify,🎬 Стриминг
  - DOMAIN-SUFFIX,apple.com,🍎 Apple
  - DOMAIN-SUFFIX,icloud.com,🍎 Apple
  - DOMAIN-SUFFIX,google.com,🚀 Прокси
  - DOMAIN-SUFFIX,googleapis.com,🚀 Прокси
  - DOMAIN-SUFFIX,gstatic.com,🚀 Прокси
  - GEOIP,CN,DIRECT
  - MATCH,🚀 Прокси

Приоритет

1. ЛВС
максимальный приоритет
2. Блокировки
REJECT
3. Спец-сервисы
стриминг/игры
4. География
GEOIP
5. По умолчанию
MATCH

Расширенные опции

Rule Providers

Подключайте внешние наборы правил:

rule-providers:
  reject:
    type: http
    behavior: domain
    url: "https://cdn.example.com/reject.yaml"
    path: ./ruleset/reject.yaml
    interval: 86400
  proxy:
    type: http
    behavior: domain
    url: "https://cdn.example.com/proxy.yaml"
    path: ./ruleset/proxy.yaml
    interval: 86400
rules:
  - RULE-SET,reject,REJECT
  - RULE-SET,proxy,🚀 Прокси

TUN

Системный перехват трафика:

tun:
  enable: true
  stack: system
  dns-hijack:
    - any:53
  auto-route: true
  auto-detect-interface: true

Experimental

experimental:
  ignore-resolve-fail: true
  interface-name: en0
⚠️
Важно

TUN требует прав администратора. После правок перезагружайте конфиг. Проверяйте изменения на тестовой конфигурации.