Шаблон подписки 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 | базовые режимы работы |
dns | DNS-резолвер ядра |
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 |
uuid | id пользователя |
udp | включить передачу UDP |
network | tcp для Reality, ws для WebSocket |
tls | true в обоих случаях |
flow | xtls-rprx-vision для Reality |
servername | SNI (маскировочный домен) |
client-fingerprint | отпечаток TLS, обычно chrome |
reality-opts | public-key и short-id для Reality |
ws-opts | path и заголовок 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[].address | server |
outbounds[].settings.vnext[].port | port |
outbounds[].settings.vnext[].users[].id | uuid |
users[].flow | flow |
streamSettings.network | network |
streamSettings.security | tls: true + reality-opts |
realitySettings.serverName | servername |
realitySettings.publicKey | reality-opts.public-key |
realitySettings.shortId | reality-opts.short-id |
realitySettings.fingerprint | client-fingerprint |
wsSettings.path | ws-opts.path |
wsSettings.headers.Host | ws-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 со ссылками. Разделять подписки по клиентам не нужно.