Структура конфига
Файл конфигурации выглядит пугающе, пока не увидишь, что верхних разделов всего пять и каждый отвечает за свой этап пути трафика: откуда пришёл, куда уходит, по какому правилу и через какой DNS.
Пять разделов
-
logопц. Что писать в журнал и насколько подробно -
inboundsобяз. Входы: на каком локальном порту клиент принимает трафик от системы и программ -
outboundsобяз. Выходы: куда трафик уходит. Здесь живёт ваш сервер -
routingопц. Правила: какой адрес в какой выход отправить -
dnsопц. Как разрешать имена сайтов и куда отправлять эти запросы
Как трафик проходит по файлу
программа → inbounds → routing → outbounds → сервер-
01
inboundsПриёмКлиент слушает локальный порт (или системный туннель) и принимает запрос -
02
dnsРазрешение имениИмя сайта превращается в адрес — по правилам этого раздела -
03
routingВыбор путиПравила решают, отправить запрос в туннель или напрямую -
04
outboundsОтправкаВыбранный выход отправляет запрос: proxy — через сервер, direct — сам
Минимальный работающий пример
{
"log": { "loglevel": "warning" },
"inbounds": [
{ "port": 10808, "listen": "127.0.0.1", "protocol": "socks",
"settings": { "udp": true } }
],
"outbounds": [
{ "tag": "proxy", "protocol": "vless",
"settings": { "vnext": [ { "address": "node.example.net", "port": 443,
"users": [ { "id": "11111111-2222-3333-4444-555555555555",
"encryption": "none", "flow": "xtls-rprx-vision" } ] } ] },
"streamSettings": { "network": "tcp", "security": "reality",
"realitySettings": { "serverName": "www.microsoft.com",
"publicKey": "xu9K1Yb0eUq5m0wKX2mQ2p3TlqLtQ8vJt3sYqR7Yc1E",
"shortId": "9f2a", "fingerprint": "chrome" } } },
{ "tag": "direct", "protocol": "freedom" }
],
"routing": {
"domainStrategy": "IPIfNonMatch",
"rules": [ { "type": "field", "outboundTag": "direct", "ip": [ "geoip:private" ] } ]
}
}
Здесь есть всё необходимое: локальный вход, выход через сервер, запасной прямой выход и одно правило — локальную сеть не заворачивать в туннель. Из чего собираются эти блоки, разобрано в сборке конфига вручную.
Теги и как они связывают разделы
Поле tag у выхода — это его имя. В правилах маршрутизации указывают именно тег: "outboundTag": "direct" означает «отправить мимо туннеля». Опечатка в теге — типичная причина «правила не работают»: клиент не находит выход с таким именем и молча использует первый в списке.
Чем отличается конфиг sing-box
Идея та же, имена другие: входы называются inbounds, выходы — outbounds, а правила лежат в route вместо routing. Прямой перенос файла между ядрами не работает — сравнение.
Когда разбираться в форматах не хочется
Ссылка-подписка от ТОК VPN: серверы, ключи и правила приходят готовыми и обновляются сами — собирать конфиг руками не нужно. Одна ссылка на все устройства, поддержка в Telegram отвечает ~10 минут.
- без карты
- одна ссылка на все устройства
- отмена в один клик
Обязательно ли писать раздел dns?
Нет. Без него клиент использует системные настройки. Свой раздел добавляют, когда нужно исключить утечки DNS или направить запросы к конкретному резолверу.
Почему в примере порт 10808?
Это локальный порт на вашем устройстве, а не порт сервера. Программы подключаются к нему как к обычному прокси; число можно менять.
Можно ли держать несколько серверов в одном файле?
Да, это обычная практика — как устроен массив.
Разбор формата отвечает на вопрос «строка составлена правильно?», но не на вопрос «доступ ещё живой?». Второй проверяется только подстановкой: демо ТОК VPN на 3 дня, без карты — ссылка приходит сразу, и по ней видно, ваш ли ключ виноват.
Взять ссылку для сверки →