По ссылке подписки возвращается YAML-файл. Поняли его — можете его менять.
Ниже проход по полям верхнего уровня по порядку, с готовыми к вставке фрагментами.
Минимальная рабочая конфигурация
Сначала целиком, потом по частям:
mixed-port: 7897
allow-lan: false
mode: rule
log-level: info
ipv6: false
external-controller: 127.0.0.1:9090
dns:
enable: true
enhanced-mode: fake-ip
fake-ip-range: 198.18.0.1/16
nameserver: [223.5.5.5, 119.29.29.29]
fallback: [https://1.1.1.1/dns-query]
proxies:
- name: "HK-01"
type: trojan
server: hk01.example.com
port: 443
password: "your-password"
udp: true
proxy-groups:
- name: "PROXY"
type: select
proxies: ["AUTO", "HK-01"]
- name: "AUTO"
type: url-test
proxies: ["HK-01"]
url: "http://www.gstatic.com/generate_204"
interval: 300
rules:
- DOMAIN-SUFFIX,cn,DIRECT
- GEOIP,CN,DIRECT
- MATCH,PROXYЭта конфигурация работает. Теперь по каждому полю.
1. Базовые настройки
mixed-port: 7897 # общий порт HTTP + SOCKS5 (рекомендуется)
# port: 7890 # отдельный порт HTTP, нужен редко
# socks-port: 7891 # отдельный порт SOCKS5, нужен редко
redir-port: 7892 # прозрачный прокси (Linux/macOS)
tproxy-port: 7893 # TProxy (Linux)
allow-lan: false # можно ли подключаться устройствам из LAN
bind-address: "*" # адрес прослушивания, когда allow-lan true
mode: rule # rule / global / direct
log-level: info # silent / error / warning / info / debug
ipv6: false # включить IPv6
unified-delay: true # единый расчёт задержки, ближе к реальности
tcp-concurrent: true # параллельные рукопожатия, быстрее для многоадресных доменов
external-controller: 127.0.0.1:9090
secret: "" # пароль управляющего API2. dns
Раздел DNS решает, «в какой IP превращается это имя», а от этого напрямую зависят точность маршрутизации и разблокировка стриминга.
dns:
enable: true
listen: 0.0.0.0:1053
ipv6: false
enhanced-mode: fake-ip # fake-ip или redir-host
fake-ip-range: 198.18.0.1/16
fake-ip-filter: # эти имена минуют fake-ip
- "*.lan"
- "*.local"
- "+.pool.ntp.org"
- "localhost.ptlogin2.qq.com"
default-nameserver: [223.5.5.5] # чтобы разрешить имена DoH ниже
nameserver: # основной DNS
- 223.5.5.5
- https://doh.pub/dns-query
fallback: # зарубежный DNS
- https://1.1.1.1/dns-query
- tls://8.8.4.4:853
fallback-filter:
geoip: true
geoip-code: CNДва значения enhanced-mode ведут себя очень по-разному; об этом есть целая статья: конфигурация DNS и как работает fake-ip.
3. proxies
Список узлов. Поля различаются по протоколам; вот распространённые:
proxies:
# Trojan
- name: "HK-Trojan"
type: trojan
server: hk.example.com
port: 443
password: "pwd"
sni: hk.example.com
udp: true
# VMess
- name: "JP-VMess"
type: vmess
server: jp.example.com
port: 443
uuid: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
alterId: 0
cipher: auto
tls: true
network: ws
ws-opts:
path: /ws
headers: { Host: jp.example.com }
# Shadowsocks
- name: "SG-SS"
type: ss
server: sg.example.com
port: 8388
cipher: aes-256-gcm
password: "pwd"
udp: true
# Hysteria2 (поддерживается Mihomo)
- name: "US-HY2"
type: hysteria2
server: us.example.com
port: 443
password: "pwd"
sni: us.example.com4. proxy-groups
Группы политик решают, «какой узел берёт этот класс трафика». Различия между пятью типами разобраны в типах proxy-groups; а вот работающая структура:
proxy-groups:
- name: "🚀 Выбор"
type: select
proxies: ["♻️ Авто", "🇭🇰 Гонконг", "🇯🇵 Япония", "DIRECT"]
- name: "♻️ Авто"
type: url-test
include-all: true # Mihomo: подтянуть все узлы автоматически
filter: "HK|Hong" # оставить только совпавшие
url: "http://www.gstatic.com/generate_204"
interval: 300
tolerance: 50
- name: "🎬 Стриминг"
type: select
proxies: ["🇭🇰 Гонконг", "🇸🇬 Сингапур", "🚀 Выбор"]
- name: "🐟 Прочее"
type: select
proxies: ["🚀 Выбор", "DIRECT"]include-all вместе с filter — по-настоящему полезная возможность Mihomo: никаких имён узлов руками, только регулярное выражение, которое их собирает. Синтаксис — в регулярных выражениях для именования и группировки узлов.
5. rules
Сопоставление сверху вниз; побеждает первое совпавшее правило.
rules:
# локальная сеть напрямую (должно идти первым)
- IP-CIDR,127.0.0.0/8,DIRECT,no-resolve
- IP-CIDR,192.168.0.0/16,DIRECT,no-resolve
- IP-CIDR,10.0.0.0/8,DIRECT,no-resolve
# конкретные доменные правила
- DOMAIN-SUFFIX,openai.com,🚀 Выбор
- DOMAIN-SUFFIX,netflix.com,🎬 Стриминг
- DOMAIN-KEYWORD,google,🚀 Выбор
# наборы правил
- RULE-SET,cn-domain,DIRECT
- RULE-SET,proxy-domain,🚀 Выбор
# географический перехват остатка
- GEOIP,CN,DIRECT
- MATCH,🐟 ПрочееПолная таблица типов правил — в справочнике по типам правил.
6. rule-providers
Держите списки правил во внешних файлах, обновляющихся по расписанию:
rule-providers:
cn-domain:
type: http
behavior: domain
format: text
url: "https://example.com/rules/cn.txt"
path: ./ruleset/cn-domain.txt
interval: 86400
private-ip:
type: http
behavior: ipcidr
url: "https://example.com/rules/private.txt"
path: ./ruleset/private.txt
interval: 86400У behavior три значения: domain (список имён), ipcidr (диапазоны IP) и classical (полный синтаксис правил). Ошибка здесь заставляет правила молча ничего не делать без всякого сообщения — классическая ловушка. См. полное руководство по rule-providers.
7. proxy-providers
Узлы тоже могут приходить извне:
proxy-providers:
main:
type: http
url: "адрес вашей подписки"
interval: 3600
path: ./providers/main.yaml
health-check:
enable: true
url: http://www.gstatic.com/generate_204
interval: 300Затем ссылайтесь на него в группе через use: [main]. Это правильная форма для объединения нескольких подписок; см. управление несколькими профилями и их объединение.
8. tun
Настройки TUN (в Clash Verge для этого есть интерфейс, но знать, что лежит внизу, полезно):
tun:
enable: true
stack: mixed # gvisor / system / mixed
auto-route: true
auto-detect-interface: true
dns-hijack: ["any:53"]
strict-route: false
mtu: 1500Механика — в внутреннем устройстве TUN: виртуальный адаптер, таблица маршрутизации и перехват DNS.
Три ошибки в YAML, которые делают все
- Отступы пробелами, не табами. Большинство ошибок разбора — это.
- Пробел после двоеточия.
port:443неверно;port: 443верно. - Спецсимволы в кавычках. Пароль с
@,#или:обязательно берётся в кавычки:password: "p@ss#123".
Полный справочник ошибок — в разборе ошибок YAML.
Правильный способ править конфигурацию
Редактируя файл, скачанный подпиской, вы получите перезапись при следующем автообновлении.
Правильный подход — «Global Extended Config / Merge» в Clash Verge, который добавляет, не трогая оригинал:
# глобальная расширенная конфигурация
prepend-rules:
- DOMAIN-SUFFIX,mycompany.com,DIRECT
append-rules:
- DOMAIN-SUFFIX,example.net,🚀 Выбор
prepend-proxy-groups:
- name: "Моя группа"
type: select
proxies: ["DIRECT", "🚀 Выбор"]См. расширение подписки через Merge.
Коротко
Восемь полей верхнего уровня с чётким разделением обязанностей: базовые настройки отвечают за прослушивание, dns — за разрешение имён, proxies — за выходы, proxy-groups — за политику, rules — за решения, два providers — за внешние источники, а tun — за перехват на сетевом уровне.
Прежде чем менять конфигурацию, поймите, какой слой вы меняете, — и пользуйтесь Merge, а не правкой файла подписки напрямую.
Смежные документы
Что каждая группа политик делает на самом деле, когда её применять, какие параметры важны, плюс готовая структура групп и опции include-all и filter из Mihomo.
Правка скачанного конфига откатывается при следующем обновлении. Как устроен расширенный конфиг Clash Verge: синтаксис prepend/append/override, порядок слияния и набор полезных фрагментов.
Что измеряет url-test, зачем нужен unified-delay, почему показанная задержка не совпадает с ping, и рекомендуемые значения трёх ключевых параметров вместе с их побочными эффектами.