Что такое VLESS YAML и зачем он нужен
VLESS (V2Ray Lightweight Enhanced Security Standard) — это современный протокол для безопасной передачи данных, который часто используется в обход блокировок. YAML (YAML Ain't Markup Language) — это формат сериализации данных, удобный для чтения человеком. В контексте прокси-клиентов, таких как Clash или ClashX, файл config.yaml является центральным конфигурационным файлом, который определяет все параметры работы: прокси-узлы, группы политик, правила маршрутизации и настройки DNS.
Использование VLESS YAML позволяет гибко управлять сетевым трафиком: какие запросы направлять через прокси, какие — напрямую, а какие блокировать. Это особенно актуально для пользователей, которым нужен тонкий контроль над соединениями, например, для обхода региональных ограничений или повышения конфиденциальности. Основное преимущество YAML-конфигурации — портативность: один файл можно использовать на нескольких устройствах, а также версионировать с помощью Git для отслеживания изменений.
В отличие от графических интерфейсов, YAML-файл предоставляет более продвинутые возможности: можно задавать сложные цепочки прокси, настраивать балансировку нагрузки, автоматический выбор узла по задержке и многое другое. Однако это требует внимательности к синтаксису, так как YAML чувствителен к отступам и пробелам.
Основы синтаксиса YAML для конфигурации прокси
Перед тем как приступить к настройке VLESS YAML, важно освоить базовые правила YAML. Этот формат использует отступы из пробелов (не табуляции) для обозначения вложенности. Обычно применяется два пробела на уровень. Ключи и значения разделяются двоеточием с обязательным пробелом после него: key: value. Списки обозначаются дефисом с пробелом: - элемент. Комментарии начинаются с символа #.
Пример базовой структуры:
port: 7890
socks-port: 7891
allow-lan: false
mode: rule
log-level: infoЗдесь port — HTTP-прокси порт, socks-port — SOCKS5 порт, allow-lan разрешает или запрещает подключения из локальной сети, mode задаёт режим работы (rule — по правилам, global — всё через прокси, direct — всё напрямую), а log-level определяет уровень детализации логов.
Ошибка в отступах — самая частая причина неработающей конфигурации. Рекомендуется использовать редакторы с подсветкой синтаксиса YAML, например VS Code, и проверять файл онлайн-валидатором перед загрузкой в клиент.
Структура config.yaml: основные разделы
Типичный файл config.yaml для Clash или ClashX состоит из нескольких ключевых разделов:
- port, socks-port, allow-lan, mode, log-level — базовые настройки запуска.
- dns — конфигурация DNS, включая серверы, режим fake-ip и фильтры.
- proxies — список всех прокси-узлов с их параметрами (тип, сервер, порт, UUID, шифрование и т.д.).
- proxy-groups — группы узлов для стратегий выбора: ручной, автоматический по скорости, отказоустойчивый, балансировка нагрузки.
- rules — правила маршрутизации, которые определяют, какой трафик куда направлять.
Каждый раздел обязателен для полноценной работы, но некоторые могут быть минимальными. Например, если не нужны сложные группы, можно обойтись одной группой с ручным выбором. DNS-раздел важен для скорости и безопасности: он предотвращает утечки DNS-запросов и ускоряет загрузку сайтов за счёт кэширования.
Пример минимальной структуры:
port: 7890
socks-port: 7891
mode: rule
log-level: info
dns:
enable: true
enhanced-mode: fake-ip
nameserver:
- 8.8.8.8
proxies:
- name: "VLESS-Node"
type: vless
server: example.com
port: 443
uuid: "ваш-uuid"
proxy-groups:
- name: "Proxy"
type: select
proxies:
- "VLESS-Node"
rules:
- MATCH,ProxyНастройка VLESS Reality в YAML: ключевые параметры
Протокол VLESS Reality (XTLS Reality) — это эволюция VLESS, которая добавляет шифрование на транспортном уровне и маскировку под обычный HTTPS-трафик. Это делает его одним из самых устойчивых к обнаружению протоколов. В конфигурации YAML для VLESS Reality необходимо указать несколько специфических параметров.
Основные поля:
- type: vless — указывает тип протокола.
- server — IP-адрес или домен сервера.
- port — порт (обычно 443 или нестандартный, например 101).
- uuid — уникальный идентификатор пользователя.
- flow — для Reality обычно используется
xtls-rprx-vision. - tls: true — включает TLS.
- servername — SNI (Server Name Indication), часто указывается
google.comили другой популярный домен для маскировки. - reality-opts — блок с параметрами Reality:
- public-key — публичный ключ сервера.
- short-id — короткий идентификатор (опционально).
- client-fingerprint — отпечаток клиента, например
chrome.
Пример узла VLESS Reality:
- name: "VLESS-Reality"
type: vless
server: for.forcedparadise.space
port: 101
uuid: "bbab7aaf-f77c-480c-be00-276c35eeedd3"
network: tcp
udp: true
tls: true
flow: xtls-rprx-vision
servername: google.com
reality-opts:
public-key: "JHvkY6wjxkk6c7CUjVR63QumCQewWrvo2VebduKcqCA"
short-id: "b4c5fc07"
client-fingerprint: chromeОбратите внимание: параметры public-key и short-id должны быть получены от администратора сервера. Неправильные значения приведут к невозможности соединения.
Прокси-группы: стратегии выбора узла
Прокси-группы (proxy-groups) — одна из самых мощных возможностей Clash. Они позволяют комбинировать несколько узлов и задавать логику их выбора. Основные типы групп:
- select — ручной выбор. Пользователь сам переключает узел в интерфейсе.
- url-test — автоматический выбор узла с наименьшей задержкой. Периодически проверяет скорость по указанному URL.
- fallback — отказоустойчивая группа. Пытается подключиться к первому узлу, при неудаче переключается на следующий.
- load-balance — балансировка нагрузки. Распределяет трафик между узлами по стратегии (например, consistent-hashing).
Пример настройки url-test:
- name: "♻️ Auto Best"
type: url-test
proxies:
- "VLESS-Reality"
- "VLESS-WS"
- "Trojan-Node"
url: http://www.gstatic.com/generate_204
interval: 300
tolerance: 50Здесь interval — интервал проверки в секундах, tolerance — допустимое отклонение задержки в миллисекундах. Группы можно вкладывать друг в друга: например, создать группу select, внутри которой будет группа url-test и отдельные узлы. Это даёт гибкость: можно оставить автоматический выбор, но при необходимости вручную переключиться на конкретный узел.
Важно: имена узлов в группе должны точно совпадать с именами, указанными в разделе proxies. Иначе конфигурация не загрузится.
Правила маршрутизации: как управлять трафиком
Раздел rules определяет, какой трафик направлять через прокси, а какой — напрямую. Правила обрабатываются сверху вниз, и первое совпадение определяет действие. Основные типы правил:
- DOMAIN-SUFFIX — совпадение по суффиксу домена (например,
google.com). - DOMAIN-KEYWORD — совпадение по ключевому слову в домене.
- DOMAIN — точное совпадение домена.
- IP-CIDR — совпадение по диапазону IP-адресов.
- GEOIP — совпадение по стране IP-адреса (например,
GEOIP,CN,DIRECT). - MATCH — правило по умолчанию (должно быть последним).
Пример правил:
rules:
- DOMAIN-SUFFIX,cn,DIRECT
- DOMAIN-SUFFIX,local,DIRECT
- DOMAIN-KEYWORD,baidu,DIRECT
- DOMAIN-SUFFIX,google.com,🚀 Proxy Select
- DOMAIN-SUFFIX,youtube.com,🚀 Proxy Select
- GEOIP,CN,DIRECT
- MATCH,🚀 Proxy SelectЗдесь все китайские сайты и локальные адреса идут напрямую, а Google и YouTube — через прокси. Для IP-адресов из Китая также используется прямое соединение. Все остальное направляется в группу 🚀 Proxy Select.
Совет: размещайте более специфичные правила выше. Например, если нужно, чтобы mail.google.com шёл напрямую, а google.com — через прокси, сначала укажите правило для mail.google.com. Используйте no-resolve для IP-правил, чтобы избежать лишних DNS-запросов.
Настройка DNS: безопасность и скорость
DNS-конфигурация в Clash влияет на скорость загрузки сайтов и защиту от утечек. Основные параметры:
- enable: true — включает DNS-сервер Clash.
- listen — адрес и порт для прослушивания (например,
0.0.0.0:53). - enhanced-mode — режим работы:
fake-ip(рекомендуется) илиredir-host. - fake-ip — возвращает фиктивные IP-адреса, что ускоряет обработку и предотвращает утечки DNS. Подходит для большинства пользователей.
- redir-host — возвращает реальные IP, может быть полезен для приложений, требующих настоящих адресов.
- nameserver — список DNS-серверов для основных запросов (например, DoH от Alibaba или Tencent).
- fallback — резервные DNS-серверы, используются, если ответ от nameserver подозрителен (например, при подмене).
- fallback-filter — фильтр для fallback: можно указать GEOIP (например,
geoip-code: CN) и диапазоны IP.
Пример:
dns:
enable: true
listen: 0.0.0.0:53
enhanced-mode: fake-ip
fake-ip-range: 198.18.0.1/16
nameserver:
- https://dns.alidns.com/dns-query
- https://doh.pub/dns-query
fallback:
- https://dns.google/dns-query
- tls://8.8.4.4:853
fallback-filter:
geoip: true
geoip-code: CN
ipcidr:
- 240.0.0.0/4Режим fake-ip рекомендуется для большинства сценариев, так как он снижает нагрузку на сеть и предотвращает утечки. Если какое-то приложение не работает с fake-ip, можно добавить домен в fake-ip-filter, чтобы для него возвращался реальный IP.
Автоматизация развертывания VLESS-сервера с Docker и Ansible
Для тех, кто управляет собственными серверами, автоматизация установки и настройки VLESS Reality экономит много времени. Популярные инструменты — Docker и Ansible.
Docker позволяет упаковать Xray (реализацию VLESS) в контейнер. Пример docker-compose.yml:
version: '3'
services:
xray:
image: teddysun/xray:latest
volumes:
- /opt/xray/config.json:/etc/xray/config.json
- /opt/xray/geosite.dat:/usr/local/share/xray/geosite.dat
ports:
- "443:443"
restart: unless-stoppedФайл config.json монтируется из хостовой системы. Для автоматизации можно использовать bash-скрипт, который устанавливает Docker, Docker Compose, копирует конфигурацию и запускает контейнер.
Ansible подходит для массового развертывания на нескольких серверах. Плейбук может включать задачи: установка Docker, копирование config.json, запуск контейнера, настройка fail2ban и т.д. Это особенно полезно, если сервера часто меняются или их много.
Пример bash-скрипта для установки Docker:
#!/bin/bash
sudo apt-get update
sudo apt-get install -y apt-transport-https ca-certificates curl software-properties-common
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
sudo apt-get update
sudo apt-get install -y docker-ce
sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-composeВажно: при использовании Reality на сервере необходимо учитывать, что некоторые провайдеры начали детектировать и блокировать IP-адреса, использующие этот протокол. В коммерческих сценариях рекомендуется изучить методы обхода, применяемые в странах с жёсткой цензурой (например, Иран, Туркменистан).
Частые проблемы и их решение
При настройке VLESS YAML пользователи часто сталкиваются с типичными ошибками. Вот основные из них и способы решения:
1. Конфигурация не загружается. Проверьте синтаксис YAML: отсутствие табуляции, правильные отступы, пробел после двоеточия. Используйте онлайн-валидатор. Убедитесь, что все имена узлов в proxy-groups совпадают с именами в proxies.
2. Нет соединения с сервером. Проверьте правильность UUID, public-key, short-id, а также порт и адрес сервера. Убедитесь, что сервер работает и не заблокирован. Попробуйте изменить SNI на другой популярный домен.
3. Медленная работа или частые разрывы. Проверьте настройки DNS: возможно, используется медленный или заблокированный DNS-сервер. Попробуйте переключить enhanced-mode на redir-host. Увеличьте интервал проверки в url-test группе.
4. Некоторые сайты не открываются. Проверьте правила маршрутизации: возможно, сайт попадает под неправильное правило. Используйте MATCH в конце списка. Убедитесь, что для нужных доменов не указано DIRECT, если они должны идти через прокси.
5. Проблемы с fake-ip. Если приложение не работает с fake-ip, добавьте его домен в fake-ip-filter или переключитесь на redir-host. Также можно временно отключить DNS-прокси для конкретного приложения.
Вопросы и ответы
Какой режим DNS лучше выбрать: fake-ip или redir-host?
Рекомендуется использовать fake-ip для большинства пользователей. Он ускоряет обработку запросов и предотвращает утечки DNS. Если какое-то приложение не работает с fake-ip, добавьте его домен в fake-ip-filter или переключитесь на redir-host.
Что делать, если после изменения config.yaml изменения не вступают в силу?
Убедитесь, что файл сохранён в правильном формате YAML (без табуляций, с пробелами после двоеточий). Затем перезагрузите конфигурацию в клиенте: в ClashX нажмите Config → Reload Config. Используйте онлайн-валидатор YAML для проверки синтаксиса.
Можно ли использовать подписки и локальные правила одновременно?
Да, Clash поддерживает функцию proxy-providers, которая позволяет импортировать узлы из подписки, а затем в локальном config.yaml задавать для них группы и правила. Это удобно, если вы хотите комбинировать свои серверы с публичными.
Как автоматизировать установку VLESS-сервера на нескольких машинах?
Используйте Docker для контейнеризации Xray и Ansible для массового развертывания. Напишите плейбук, который устанавливает Docker, копирует config.json и запускает контейнер. Это сэкономит время при частой смене серверов.
Почему VLESS Reality могут блокировать и как этого избежать?
Некоторые провайдеры научились детектировать Reality по характерным паттернам трафика. Для обхода используйте нестандартные порты, меняйте SNI на популярные домены, обновляйте версию Xray. В коммерческих сценариях изучайте методы, применяемые в странах с жёсткой цензурой.