Перейти к содержанию

sing-box Custom DNS


Шаг 1. Откройте вкладку sing-box Custom DNS

  1. В окне DNS Settings нажмите вкладку sing-box Custom DNS
  2. Включите переключатель Enable Custom DNS (если ещё не включён)
Вкладка sing-box Custom DNS — пустая
Вкладка sing-box Custom DNS с двумя пустыми полями

Шаг 2. Вставьте конфигурацию в ОБА поля

На вкладке два текстовых поля:

  • HTTP/SOCKS — используется когда sing-box работает в режиме прокси
  • Tun Mode settings — используется когда sing-box работает в TUN-режиме

Вставьте в оба поля

Одну и ту же конфигурацию нужно вставить в оба поля. Так DNS будет работать корректно в любом режиме.

Скопируйте JSON ниже и вставьте в оба поля:

??? note "JSON конфигурации sing-box DNS — нажмите чтобы развернуть и скопировать"

```json title="sing-box-dns.json"
{
  "servers": [
    {
      "tag": "quad9-doh",
      "type": "https",
      "server": "9.9.9.9",
      "server_port": 443,
      "path": "/dns-query",
      "headers": {
        "Host": "dns.quad9.net"
      },
      "tls": {
        "enabled": true,
        "server_name": "dns.quad9.net",
        "utls": {
          "enabled": true,
          "fingerprint": "chrome"
        }
      },
      "detour": "proxy"
    }
  ],
  "rules": [
    {
      "rule_set": [
        "geosite-category-ads-all",
        "geosite-win-spy"
      ],
      "action": "predefined",
      "rcode": "NXDOMAIN"
    }
  ],
  "final": "quad9-doh",
  "strategy": "ipv4_only",
  "cache_capacity": 8192,
  "independent_cache": false
}

```

**Онлайн:** скопируйте JSON выше, нажав :material-content-copy:

**Локально:** файл находится в `configs/v2rayn/sing-box/dns.json`

Шаг 3. Укажите стратегию и DNS address

  1. Внизу окна в поле Default domain strategy for outbound выберите: prefer_ipv4
  2. В поле Outbound DNS address выберите: dhcp://auto
  3. Нажмите Confirm
sing-box Custom DNS — заполненная конфигурация
Конфигурация вставлена в оба поля, стратегия и DNS address заполнены

prefer_ipv4 — при резолве доменов для исходящего direct-трафика предпочитать IPv4-адреса, но не отключать IPv6 полностью.

dhcp://auto — для direct-трафика использовать DNS от роутера (DHCP). Аналогично настройке Xray — прямой трафик резолвится локально.


Объяснение каждого параметра

DNS-сервер (Quad9 DoH)

{
  "tag": "quad9-doh",
  "type": "https",
  "server": "9.9.9.9",
  "server_port": 443,
  "path": "/dns-query",
  "headers": {
    "Host": "dns.quad9.net"
  },
  "tls": {
    "enabled": true,
    "server_name": "dns.quad9.net",
    "utls": {
      "enabled": true,
      "fingerprint": "chrome"
    }
  },
  "detour": "proxy"
}

server: "9.9.9.9" — подключение напрямую по IP-адресу Quad9.

Зачем IP, а не домен? Это элегантное решение проблемы DNS-петли. Если указать домен dns.quad9.net — sing-box попытается его зарезолвить, а для этого нужен DNS → петля. IP-адрес резолва не требует.

headers: { "Host": "dns.quad9.net" } — HTTP-заголовок Host, который отправляется серверу.

Зачем: мы подключаемся по IP (9.9.9.9), но серверу нужно знать, к какому «сайту» мы обращаемся. Заголовок Host говорит: «я хочу dns.quad9.net». Без него сервер может не понять запрос.

tls.server_name: "dns.quad9.net" — SNI (Server Name Indication) в TLS-хэндшейке.

Зачем: сервер 9.9.9.9 обслуживает несколько сервисов. SNI говорит ему, какой сертификат использовать. Также нужен для валидации сертификата — sing-box проверяет, что сертификат выдан именно для dns.quad9.net.

utls.fingerprint: "chrome" — имитировать TLS-отпечаток браузера Chrome.

Зачем: делает DNS-трафик неотличимым от обычного просмотра веба для систем DPI. Без этого TLS-хэндшейк выглядит как «программа, а не браузер» — и может быть заблокирован.

detour: "proxy" — DNS-запросы идут через прокси-туннель. Провайдер не видит ни запросы, ни ответы, ни сам факт обращения к DNS-серверу.


DNS-правило: блокировка рекламы и телеметрии

{
  "rule_set": [
    "geosite-category-ads-all",
    "geosite-win-spy"
  ],
  "action": "predefined",
  "rcode": "NXDOMAIN"
}

action: "predefined" + rcode: "NXDOMAIN" — для рекламных доменов и доменов Windows-телеметрии sing-box отвечает «домен не существует».

Приложение получает ответ мгновенно, без реального DNS-запроса. Реклама не загружается, телеметрия не отправляется.


Глобальные настройки

final: "quad9-doh" — DNS-сервер по умолчанию для всех запросов, не попавших ни в одно правило.

strategy: "ipv4_only" — глобально: только IPv4 для DNS-запросов через прокси.

cache_capacity: 8192 — размер DNS-кэша (количество записей). 8192 — хороший баланс между скоростью и потреблением RAM.

independent_cache: false — общий кэш для всех DNS-серверов. Если один сервер уже зарезолвил домен — повторный запрос не нужен.


Готово!

Теперь нажмите Confirm в окне DNS Settings — сохранятся настройки обеих вкладок (V2ray Custom DNS и sing-box Custom DNS).

Перезапустите соединение: кнопка Reload в меню

Проверка →