Что такое файл конфигурации Clash Meta и зачем его изучать?
Clash Meta (ныне mihomo) — один из самых популярных прокси-движков, используемый в ClashX, Clash Verge, Clash Nyanpasu и других клиентах. Его ключевые функции — прокси-узлы, DNS и маршрутизация трафика правилами — определяются одним YAML-файлом конфигурации.
Хотя большинство пользователей получают конфигурацию через подписку, понимание структуры и принципов конфигурации дает ощутимые плюсы:
- Точная маршрутизация: свои правила — внутринациональный трафик напрямую, зарубежный через прокси без лишних обходов.
- Быстрая диагностика: при проблемах быстро понять — узлы, DNS или правила.
- Оптимизация: грамотный DNS и TUN заметно ускоряют сеть.
- Контроль и приватность: понимаете смысл каждой опции и не рискуете приватностью из-за сомнительных конфигов.
Для пользователей ClashX/Clash Verge, которые хотят понять и настроить конфиг под себя. Будь вы новичок или продвинутый, это руководство будет полезным.
Базовая структура файла
Полный конфиг Clash Meta состоит из нескольких верхнеуровневых полей. Ниже — минимальный скелет, далее разберем каждое поле:
# Clash Meta (mihomo) 基础配置
# 混合代理端口(HTTP + SOCKS5 共用一个端口)
mixed-port: 7890
# 允许局域网设备连接
allow-lan: true
# 绑定地址,* 表示所有网卡
bind-address: '*'
# 运行模式:rule(规则)/ global(全局代理)/ direct(直连)
mode: rule
# 日志级别:silent / error / warning / info / debug
log-level: info
# 外部控制器 API,用于仪表盘或客户端通信
external-controller: 127.0.0.1:9090
# 外部控制器访问密钥(可选但推荐设置)
secret: "your-secret-here"
# 查找进程名称(用于基于进程的规则匹配)
find-process-mode: strict
# GeoIP 数据文件格式
geodata-mode: true
geox-url:
geoip: "https://cdn.jsdelivr.net/gh/MetaCubeX/meta-rules-dat@release/geoip.dat"
geosite: "https://cdn.jsdelivr.net/gh/MetaCubeX/meta-rules-dat@release/geosite.dat"
mmdb: "https://cdn.jsdelivr.net/gh/MetaCubeX/meta-rules-dat@release/country.mmdb"
Ключевые поля
- mixed-port: общий порт для HTTP и SOCKS5. С 7890 оба работают на одном порту. Раздельно —
portиsocks-port. - allow-lan: при
trueустройства в сети (телефон/планшет) могут использовать ваш Mac как шлюз. - mode: глобальное поведение трафика.
rule— по правилам;global— всё через прокси;direct— всё напрямую. - external-controller: REST API для Dashboard/yacd и клиентов.
- find-process-mode: позволяет в правилах сопоставлять по имени процесса (например, Telegram) —
strictсамый точный.
DNS: подробные настройки
DNS — одна из наиболее влияющих на опыт частей Clash Meta. Ошибочные настройки ведут к медленному резолву, недоступности сайтов и утечкам DNS.
dns:
enable: true
listen: 0.0.0.0:53
ipv6: false
# enhanced-mode 决定 DNS 的工作方式
# fake-ip: 返回虚拟 IP,加速首次连接(推荐)
# redir-host: 返回真实 IP,兼容性更好
enhanced-mode: fake-ip
fake-ip-range: 198.18.0.1/16
# 排除不走 fake-ip 的域名
fake-ip-filter:
- '*.lan'
- '*.local'
- 'localhost.ptlogin2.qq.com'
- '+.stun.*.*'
- '+.stun.*.*.*'
- 'lens.l.google.com'
- 'stun.l.google.com'
# 默认 DNS 服务器(用于解析国内域名)
nameserver:
- https://doh.pub/dns-query
- https://dns.alidns.com/dns-query
- 223.5.5.5
- 119.29.29.29
# 回退 DNS(用于解析可能被污染的域名)
fallback:
- https://dns.cloudflare.com/dns-query
- https://dns.google/dns-query
- tls://8.8.4.4:853
# 回退过滤策略
fallback-filter:
geoip: true
geoip-code: CN
geosite:
- gfw
ipcidr:
- 240.0.0.0/4
domain:
- '+.google.com'
- '+.facebook.com'
- '+.youtube.com'
fake-ip vs redir-host
fake-ip — рекомендуемый режим: при запросе DNS Clash сразу возвращает виртуальный IP (из fake-ip-range), а реальное разрешение делает асинхронно. Первое соединение ощутимо быстрее.
redir-host ждет реального DNS-результата. Медленнее, но необходим там, где важен реальный IP (LAN-обнаружение, ряд игр).
nameserver и fallback
nameserver — основные DNS (часто локальные/региональные для скорости). fallback — запасные (обычно зарубежные), используются при вероятной «порче» IP, что определяется fallback-filter.
При совместном использовании fake-ip и TUN убедитесь, что dns.listen настроен корректно, чтобы системные DNS не обходили Clash.
Настройка прокси-узлов
Раздел proxies описывает каждый доступный сервер. Clash Meta поддерживает множество протоколов. Примеры:
Shadowsocks (SS)
proxies:
- name: "SS-HK"
type: ss
server: hk.example.com
port: 8388
cipher: aes-256-gcm
password: "your-password"
udp: true
VMess
- name: "VMess-JP"
type: vmess
server: jp.example.com
port: 443
uuid: a1b2c3d4-e5f6-7890-abcd-ef1234567890
alterId: 0
cipher: auto
tls: true
network: ws
ws-opts:
path: /ws-path
headers:
Host: jp.example.com
Trojan
- name: "Trojan-US"
type: trojan
server: us.example.com
port: 443
password: "your-password"
udp: true
sni: us.example.com
skip-cert-verify: false
VLESS (расширение Clash Meta)
- name: "VLESS-SG"
type: vless
server: sg.example.com
port: 443
uuid: a1b2c3d4-e5f6-7890-abcd-ef1234567890
network: ws
tls: true
udp: true
flow: xtls-rprx-vision
ws-opts:
path: /vless-ws
headers:
Host: sg.example.com
reality-opts:
public-key: "your-public-key"
short-id: "your-short-id"
Hysteria2 (расширение Clash Meta)
- name: "Hy2-TW"
type: hysteria2
server: tw.example.com
port: 8443
password: "your-password"
obfs: salamander
obfs-password: "obfs-password"
sni: tw.example.com
skip-cert-verify: false
up: "30 Mbps"
down: "200 Mbps"
Если есть поддержка Hysteria2 — чаще всего это лучший вариант для сетей с потерями (QUIC). VLESS + Reality — один из наиболее скрытных современных подходов. Классические SS и VMess — стабильные универсальные решения.
Группы прокси: стратегии
Группы (proxy-groups) позволяют объединять узлы и определять стратегию выбора.
Ручной выбор (select)
proxy-groups:
- name: "🚀 节点选择"
type: select
proxies:
- "♻️ 自动选择"
- "🔮 负载均衡"
- "SS-HK"
- "VMess-JP"
- "Trojan-US"
- "VLESS-SG"
- "Hy2-TW"
- DIRECT
Автотест URL (url-test)
- name: "♻️ 自动选择"
type: url-test
proxies:
- "SS-HK"
- "VMess-JP"
- "Trojan-US"
- "VLESS-SG"
- "Hy2-TW"
url: http://www.gstatic.com/generate_204
interval: 300
tolerance: 50
Failover (fallback)
- name: "🔄 故障转移"
type: fallback
proxies:
- "Hy2-TW"
- "VLESS-SG"
- "Trojan-US"
url: http://www.gstatic.com/generate_204
interval: 300
Балансировка (load-balance)
- name: "🔮 负载均衡"
type: load-balance
proxies:
- "SS-HK"
- "VMess-JP"
- "Trojan-US"
strategy: consistent-hashing
url: http://www.gstatic.com/generate_204
interval: 300
Когда что использовать:
- select: гибкость и ручной контроль (например, для конкретных региональных сервисов).
- url-test: автоматический выбор «быстрейшего» с порогом
tolerance, без дерганий. - fallback: приоритетный список: первый доступный — активен.
- load-balance: распределение нагрузки;
consistent-hashingдержит один домен за одним узлом.
Правила маршрутизации
Правила (rules) определяют, для каждого соединения — прокси, прямой или блок. Clash Meta идет сверху вниз до первого совпадения — порядок критичен.
rules:
# 域名精确匹配
- DOMAIN,google.com,🚀 节点选择
# 域名后缀匹配(包括所有子域名)
- DOMAIN-SUFFIX,googleapis.com,🚀 节点选择
- DOMAIN-SUFFIX,github.com,🚀 节点选择
- DOMAIN-SUFFIX,youtube.com,🚀 节点选择
# 域名关键词匹配
- DOMAIN-KEYWORD,google,🚀 节点选择
- DOMAIN-KEYWORD,twitter,🚀 节点选择
- DOMAIN-KEYWORD,facebook,🚀 节点选择
# GeoSite 规则(使用 Meta 扩展数据库)
- GEOSITE,google,🚀 节点选择
- GEOSITE,github,🚀 节点选择
- GEOSITE,telegram,🚀 节点选择
- GEOSITE,cn,DIRECT
# IP 地址段匹配
- 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
- IP-CIDR,172.16.0.0/12,DIRECT,no-resolve
# GeoIP 规则(根据 IP 归属地匹配)
- GEOIP,CN,DIRECT
- GEOIP,private,DIRECT,no-resolve
# 进程名匹配(需要 find-process-mode 开启)
- PROCESS-NAME,Telegram,🚀 节点选择
- PROCESS-NAME,Steam,DIRECT
# 兜底规则(必须放在最后)
- MATCH,🚀 节点选择
Справочник по типам правил
- DOMAIN: точное совпадение целого домена.
- DOMAIN-SUFFIX: по суффиксу, включает поддомены.
- DOMAIN-KEYWORD: по ключевому слову (самый широкий и риск ложных совпадений).
- GEOSITE: база доменов из Meta — гораздо удобнее ручных списков.
- IP-CIDR: по IP-подсети;
no-resolve— без DNS-резолва в fake-ip. - GEOIP: по географии IP,
CN— материковый Китай. - PROCESS-NAME: по имени процесса приложения.
- MATCH: «на все остальное», всегда в самом низу.
Сначала точные (DOMAIN), затем широкие (DOMAIN-KEYWORD/GEOSITE), потом IP и, в конце, MATCH. Так баланс точности и производительности лучший.
Режим TUN
TUN перехватывает системный трафик, включая приложения без настроек прокси. В Clash Meta TUN зрелый и лучший способ «настоящего» глобального прокси.
tun:
enable: true
stack: system # system / gvisor / mixed
dns-hijack:
- any:53
- tcp://any:53
auto-route: true
auto-detect-interface: true
# macOS 下的 MTU 设置
mtu: 9000
Выбор стека
- system: системный стек — лучшая производительность и совместимость (рекомендован в macOS).
- gvisor: в user space — может быть стабильнее на ряде Linux.
- mixed: смешанный; TCP — system, UDP — gvisor.
dns-hijack перенаправляет все DNS в модуль DNS Clash, предотвращая обход системными DNS. auto-route — автодобавление маршрутов. auto-detect-interface — автоопределение исходящего интерфейса.
В macOS нужен доступ как к «VPN». При первом запуске подтвердите системный запрос. В ClashX Pro TUN встроен.
Продвинутое: скриптовые правила и sub-rules
Clash Meta предоставляет более мощные подходы к управлению трафиком — для сложных сценариев.
Sub-Rules (подправила)
Позволяют после первого совпадения использовать отдельный набор правил для дополнительного деления.
# 主规则中引用子规则
rules:
- SUB-RULE,(AND,((GEOSITE,geolocation-!cn),(NOT,((GEOSITE,cn))))),overseas-rules
- SUB-RULE,(GEOSITE,cn),china-rules
- MATCH,🚀 节点选择
# 子规则定义
sub-rules:
overseas-rules:
- GEOSITE,youtube,📹 YouTube
- GEOSITE,netflix,🎬 Netflix
- GEOSITE,openai,🤖 AI 服务
- GEOSITE,telegram,📱 Telegram
- MATCH,🚀 节点选择
china-rules:
- GEOSITE,bilibili,📺 哔哩哔哩
- GEOSITE,zhihu,DIRECT
- MATCH,DIRECT
Rule Providers (внешние наборы правил)
Когда правил много, используйте rule-providers — файлы или удаленные URL.
rule-providers:
reject:
type: http
behavior: domain
url: "https://cdn.jsdelivr.net/gh/Loyalsoldier/clash-rules@release/reject.txt"
path: ./ruleset/reject.yaml
interval: 86400
proxy:
type: http
behavior: domain
url: "https://cdn.jsdelivr.net/gh/Loyalsoldier/clash-rules@release/proxy.txt"
path: ./ruleset/proxy.yaml
interval: 86400
direct:
type: http
behavior: domain
url: "https://cdn.jsdelivr.net/gh/Loyalsoldier/clash-rules@release/direct.txt"
path: ./ruleset/direct.yaml
interval: 86400
rules:
- RULE-SET,reject,REJECT
- RULE-SET,proxy,🚀 节点选择
- RULE-SET,direct,DIRECT
- GEOIP,CN,DIRECT
- MATCH,🚀 节点选择
Плюсы: автoобновление по interval (сек) и компактный основной конфиг. behavior: domain, ipcidr или classical.
Частые ошибки и отладка
Даже опытные пользователи ошибаются. Самые частые ситуации:
1. Ошибки YAML
YAML чувствителен к отступам:
- Только пробелы, не Tab.
- Единый шаг отступа (обычно 2 пробела).
- После двоеточия — пробел:
key: value. - Строки со спецсимволами — в кавычках.
2. Порт занят
Если mixed-port занят, смените порт или завершите процесс, занимающий его (lsof -i :7890 в macOS).
3. Узел не подключается
- Проверьте адрес/порт.
- Убедитесь в корректности пароля/UUID.
- Шифр
cipherсовпадает с сервером. - При TLS — верный
sni.
4. Проблемы DNS
dns.enable: true.- Используйте DoH, чтобы избежать перехвата провайдером.
- В fake-ip добавьте проблемные домены в
fake-ip-filter.
5. Правила «не срабатывают»
- Проверьте порядок — верхние могли перехватить трафик.
- Имена групп в правилах должны точно совпадать (регистр/эмодзи).
- Смотрите панель «Соединения» клиента: какую именно строку правило попало.
Включите log-level: debug, чтобы видеть подробный трейс сопоставления. Потом верните info, чтобы журнал не разрастался.
Частые вопросы (FAQ)
1. Чем отличается конфиг Clash Meta от оригинального Clash?
Clash Meta (mihomo) расширяет формат оригинала: новые протоколы (VLESS, Hysteria2, TUIC), детальный TUN, sub-rules, расширенный DNS. Конфиги Clash обычно работают в Meta, обратная совместимость не гарантирована.
2. Где лежит файл конфигурации?
В macOS ClashX по умолчанию хранит конфиг в ~/.config/clash/. У Clash Verge свой каталог. Путь можно задать вручную. Расширение: .yaml/.yml.
3. Какой режим лучше: fake-ip или redir-host?
В большинстве случаев — fake-ip для более быстрых первых соединений. Если нужны реальные IP (устройства в LAN/игры) — redir-host.
4. Почему конфиг не загружается?
Чаще всего: неверные отступы YAML, конфликт порта mixed-port, данные узлов, синтаксис правил. Проверьте валидатором YAML и логи.