Массив JSON: несколько серверов
Квадратные скобки в конфиге означают список. В нём живут входы, выходы и правила — и именно из-за списков файл разрастается, оставаясь при этом простым по структуре.
Как читается массив
"outbounds": [
{ "tag": "proxy", "protocol": "vless", "settings": { … } },
{ "tag": "backup", "protocol": "trojan", "settings": { … } },
{ "tag": "direct", "protocol": "freedom" },
{ "tag": "block", "protocol": "blackhole" }
]
Четыре выхода: основной сервер, запасной, прямое соединение и «чёрная дыра» для того, что нужно отбрасывать. Первый в списке используется по умолчанию — всё, что не попало ни в одно правило, уйдёт через proxy.
Как переключаться между выходами
- Правилами. В
routingуказывают, какие адреса в какой тег отправлять. - Порядком. Поменяли местами
proxyиbackup— сменился выход по умолчанию. - Балансировщиком. В Xray есть
balancers: несколько выходов объединяются под одним именем, и клиент выбирает живой. Поддерживается не всеми клиентами. - Вручную в интерфейсе. Большинство приложений просто показывает список и позволяет ткнуть в нужный.
Правила тоже массив
"rules": [
{ "type": "field", "outboundTag": "direct", "ip": [ "geoip:private" ] },
{ "type": "field", "outboundTag": "direct", "domain": [ "domain:gosuslugi.ru" ] },
{ "type": "field", "outboundTag": "block", "domain": [ "domain:ads.example" ] }
]
Порядок здесь решает: правила проверяются сверху вниз, срабатывает первое подошедшее. Поэтому частные исключения ставят выше общих — иначе общее правило перехватит адрес раньше.
Ошибки при работе с массивами
-
лишняя запятаяошибка После последнего элемента запятая не ставится — разбор ошибок -
пропущенная запятаяошибка Между элементами она обязательна -
одинаковые тегиошибка Два выхода с тегомproxy— правило укажет на первый, второй окажется мёртвым -
скобки перепутаныошибка Массив — квадратные, объект — фигурные -
порядок правиллогика Ошибок разбора нет, но поведение не то, которого ждали
Когда разбираться в форматах не хочется
Ссылка-подписка от ТОК VPN: серверы, ключи и правила приходят готовыми и обновляются сами — собирать конфиг руками не нужно. Одна ссылка на все устройства, поддержка в Telegram отвечает ~10 минут.
- без карты
- одна ссылка на все устройства
- отмена в один клик