Перейти к основному содержимому

Шаблон подписки mihomo

mihomo (бывшее Clash Meta) — ядро семейства Clash. Оно принимает подписку в формате YAML и само строит из неё конфиг: выбирает локальные порты, DNS и режим работы. Важно помнить: VLESS+Reality поддерживают только Meta-ядра (mihomo, clash-meta), классический Clash Premium такую подписку не поймёт.

Структура YAML​

СекцияЗачем
mixed-portлокальный порт для HTTP и SOCKS одновременно
allow-lan, mode, log-levelбазовые режимы работы
dnsDNS-резолвер ядра
proxiesсписок серверов (по одному на каждый inbound)
proxy-groupsгруппы выбора: авто или вручную
rulesправила маршрутизации

Прокси​

Блок proxies повторяет параметры вашего inbound в Xray. Пример для VLESS+Reality+Vision:

proxies:
- name: "MyServer-Reality"
type: vless
server: 203.0.113.10
port: 443
uuid: 11111111-2222-3333-4444-555555555555
udp: true
network: tcp
tls: true
flow: xtls-rprx-vision
servername: www.microsoft.com
client-fingerprint: chrome
reality-opts:
public-key: REALITY_PUBLIC_KEY
short-id: "ab12"

Запасной вариант VLESS+WS+TLS для старых ядер отличается транспортом:

proxies:
- name: "MyServer-WS"
type: vless
server: 203.0.113.10
port: 443
uuid: 11111111-2222-3333-4444-555555555555
udp: true
network: ws
tls: true
servername: sub.example.com
client-fingerprint: chrome
ws-opts:
path: /ws
headers:
Host: sub.example.com
Поле mihomoЗначение для VLESS
typeвсегда vless
server, portадрес и порт из vnext
uuidid пользователя
udpвключить передачу UDP
networktcp для Reality, ws для WebSocket
tlstrue в обоих случаях
flowxtls-rprx-vision для Reality
servernameSNI (маскировочный домен)
client-fingerprintотпечаток TLS, обычно chrome
reality-optspublic-key и short-id для Reality
ws-optspath и заголовок Host для WebSocket
Внимание

uuid — это учётные данные пользователя. Не публикуйте YAML и не пересылайте его в открытых чатах: получивший его подключается к вашему серверу как вы.

Proxy-groups​

Группы решают, какой сервер использовать. url-test автоматически выбирает самый быстрый, select даёт ручной выбор:

proxy-groups:
- name: AUTO
type: url-test
url: https://www.gstatic.com/generate_204
interval: 300
tolerance: 50
proxies:
- MyServer-Reality
- MyServer-WS
- name: PROXY
type: select
proxies:
- AUTO
- MyServer-Reality
- MyServer-WS
Совет

Оставляйте в группе select и AUTO, и отдельные серверы: при сбое автопроверки пользователь сможет переключиться вручную.

Rules​

Минимальный набор правил пропускает локальную сеть напрямую и всё остальное — через прокси:

rules:
- GEOIP,LAN,DIRECT
- MATCH,PROXY

Список правил расширяют по мере надобности: правила маршрутизации в панели описаны в разделе Правила маршрутизации.

Подстановка из Xray-конфига​

Если у вас есть клиентский конфиг Xray, поля переносятся в mihomo один в один:

Xray (клиентский JSON)mihomo
outbounds[].settings.vnext[].addressserver
outbounds[].settings.vnext[].portport
outbounds[].settings.vnext[].users[].iduuid
users[].flowflow
streamSettings.networknetwork
streamSettings.securitytls: true + reality-opts
realitySettings.serverNameservername
realitySettings.publicKeyreality-opts.public-key
realitySettings.shortIdreality-opts.short-id
realitySettings.fingerprintclient-fingerprint
wsSettings.pathws-opts.path
wsSettings.headers.Hostws-opts.headers.Host

Например, фрагмент клиентского конфига

{
"outbounds": [
{
"protocol": "vless",
"settings": {
"vnext": [
{
"address": "203.0.113.10",
"port": 443,
"users": [{ "id": "11111111-2222-3333-4444-555555555555", "flow": "xtls-rprx-vision" }]
}
]
},
"streamSettings": {
"network": "tcp",
"security": "reality",
"realitySettings": {
"serverName": "www.microsoft.com",
"publicKey": "REALITY_PUBLIC_KEY",
"shortId": "ab12",
"fingerprint": "chrome"
}
}
}
]
}

превращается ровно в первый proxy из примера выше.

Как это попадает в клиент​

Не отдавайте пользователю один общий JSON-конфиг: в нём пришлось бы зашить локальные порты и DNS конкретного приложения. Отдавайте ссылку подписки — тогда каждое приложение строит конфиг под себя. Клиенты семейства Clash/mihomo/Stash запрашивают YAML сами: сервер подписки определяет формат по заголовку User-Agent и дополнительно сообщает интервал автообновления заголовком Profile-Update-Interval.

Примечание

Одна и та же подписка работает везде: mihomo получает YAML, клиенты на Xray-core — base64 со ссылками. Разделять подписки по клиентам не нужно.

Что дальше​