Диагностика и исправление troubleshooting Обновлено 7 Windows, macOS, Linux, Android, iOS

sing-box connected, но сайты не открываются: DNS, route и MTU

Подключение sing-box активно, а сайты не грузятся? Разбираем три главные причины: неправильный DNS, неработающие правила route и проблемы с MTU. Пошаговая диагностика и исправление конфигурации.

sing-boxDNSrouteMTUTUNtroubleshootingVLESS
Содержание
КороткоПроверьте, что трафик действительно идёт через sing-box (прокси или TUN). Убедитесь, что DNS-серверы доступны и правильно настроены. Пересмотрите правила route, чтобы нужные домены/IP не блокировались. Уменьшите MTU до 1280–1400, если HTTPS-сайты виснут или не открываются.

Почему sing-box показывает «connected», а сайты не открываются

Когда sing-box запущен, а браузер пишет «нет соединения» или «сайт не доступен», это вызывает недоумение. Подключение к серверу установлено, статус зелёный — но трафик не идёт. Проблема почти всегда в трёх вещах: DNS, правилах маршрутизации (route) или MTU. Рассмотрим каждую причину и способы её устранения.

Шаг 1. Убедитесь, что трафик действительно проходит через sing-box

Первое, что стоит проверить — идёт ли вообще трафик через ваш туннель. Если вы используете режим прокси (например, HTTP/SOCKS на порту 2080), настройте браузер или системные параметры прокси явно. В TUN-режиме sing-box перехватывает весь трафик автоматически, но для этого нужны права администратора (root) и правильно созданный виртуальный адаптер.

Быстрый тест: откройте терминал и выполните curl -x socks5://127.0.0.1:2080 https://example.com (если у вас mixed-inbound). Если запрос выполняется, прокси работает. Если нет — проверьте, что inbound настроен и listen-адрес совпадает.

Шаг 2. Диагностика DNS

Сайт может не открываться, потому что имя не резолвится. В sing-box за DNS отвечает блок dns. Проверьте, какие серверы используете вы. Частая ошибка — задать только один DNS-сервер, который недоступен из-за блокировок или несовместимости.

Рекомендуемая конфигурация: используйте локальный DNS для прямых запросов и удалённый (через прокси) для остальных. Пример:

"dns": {
  "servers": [
    { "tag": "remote", "address": "https://1.1.1.1/dns-query" },
    { "tag": "local", "address": "223.5.5.5", "detour": "direct" }
  ],
  "strategy": "prefer_ipv4"
}

Здесь remote — это DNS-сервер, работающий через прокси, а local — для прямых соединений. Если сайт не резолвится, проверьте, доступен ли сервер из вашей сети. Используйте dig @223.5.5.5 example.com для теста.

Шаг 3. Route: правила, которые блокируют или не перехватывают трафик

Блок route определяет, как направлять пакеты. Если правило не подходит, трафик может улететь в block или reject, и тогда сайты не откроются. Проверьте порядок правил: правила, которые должны срабатывать, ставьте выше, а final (действие по умолчанию) задайте как proxy или direct.

Для диагностики полезно временно добавить правило, которое выводит журнал трафика:

"route": {
  "rules": [
    { "domain_suffix": "example.com", "outbound": "proxy" },
    { "ip_cidr": ["0.0.0.0/0"], "outbound": "proxy" }
  ]
}

Если домен не попадает ни под одно правило, он уходит по final. Убедитесь, что final не является block. Также проверьте, что route включает auto_detect_interface или явный interface для VPN.

Шаг 4. MTU и TUN: проблема с размером пакетов

MTU — максимальный размер пакета, который может пройти через сетевой интерфейс. В TUN-режиме sing-box сам создаёт виртуальный сетевой адаптер с определённым MTU. Если MTU слишком велик (например, стандартные 1500), пакеты могут фрагментироваться и теряться, особенно при использовании PPPoE, VPN-туннелей или некоторых серверов. Симптом: обычный HTTP открывается, а HTTPS (TLS) виснет или вообще не грузится, так как TLS-пакеты чувствительны к фрагментации.

Рекомендуется установить MTU 1280–1400. В конфигурации TUN-инбаунда это делается так:

"inbounds": [
  {
    "type": "tun",
    "mtu": 1400,
    "auto_route": true,
    "strict_route": false
  }
]

После изменения перезапустите sing-box и сбросьте сетевые настройки устройств. Также не забудьте проверить MTU на самом сервере — если там ограничение 1400, то и клиент должен использовать не больше.

Шаг 5. Пример исправления конфигурации для типичного кейса

Предположим, у вас VLESS+Reality, весь трафик идёт через TUN, но пользователи жалуются, что YouTube не открывается, а Google — открывается. Обычно это указывает на DNS или MTU. Сбалансированный конфиг может выглядеть так:

{
  "outbounds": [
    { "type": "vless", "tag": "proxy", "server": "your-server.com", "tls": { "enabled": true, "server_name": "your-server.com" } }
  ],
  "dns": {
    "servers": [
      { "tag": "remote", "address": "https://8.8.8.8/dns-query" },
      { "tag": "local", "address": "https://1.1.1.1/dns-query", "detour": "direct" }
    ]
  },
  "route": {
    "final": "proxy"
  },
  "inbounds": [
    { "type": "tun", "mtu": 1400, "auto_route": true }
  ]
}

Здесь все запросы идут через прокси, DNS-запросы — тоже через прокси (remote), но для локальных доменов можно добавить правило direct. Обратите внимание, что в route нет правил, и final — proxy, поэтому весь трафик уходит в туннель.

Шаг 6. Дополнительные проверки: сервер, транспорт, фаервол

Если после всех настроек сайты всё ещё не открываются, проверьте:

  • Транспорт VLESS/VMess — правильно ли указаны flow, network, tls. Например, для Reality требуется определённый public_key и short_id.
  • Сервер — не блокирует ли файрвол порт или протокол. Попробуйте подключиться с другого клиента.
  • Файрвол на устройстве — не мешает ли он TUN-интерфейсу.
  • Кэш DNS — очистите системный DNS-кэш после изменения конфигурации.

Заключение

Когда sing-box подключён, но сайты не открываются, — не паникуйте. Планомерно проверяйте DNS, route и MTU. В большинстве случаев проблему решает уменьшение MTU до 1400 и правильная настройка DNS-серверов через detour. Если не помогло — углубляйтесь в логи и проверяйте конфигурацию outbound. Все параметры подробно описаны в официальной документации sing-box.

Проверено на практике

  • Дата проверки: 2025-03-30
  • Среда: Официальная документация sing-box и GitHub-репозиторий SagerNet
  • Версии: 1.11.0,1.10.0

Мини-чеклист

  • Проверьте, что трафик реально проходит через sing-box (curl через прокси или проверка TUN).
  • Протестируйте DNS-резолвинг: используйте dig/nslookup с DNS-серверами из конфига.
  • Убедитесь, что в route-правилах нет блокирующих правил и final не равен block.
  • Если используете TUN, проверьте MTU и при необходимости уменьшите до 1400.
  • Очистите системный DNS-кэш после изменения конфигурации.
  • Проверьте настройки транспорта (VLESS flow/tls) на соответствие серверу.

Частые ошибки

  • MTU слишком большой (1500) для сетей с PPPoE/фрагментацией — сайты по HTTPS зависают.
  • Указан один DNS-сервер, который недоступен из-за блокировок, — трафик не резолвится.
  • В route rules отсутствует правило для нужного домена, а final установлен как block.
  • Настройка system proxy не совпадает с портом inbound, из-за чего браузер не видит прокси.
  • Использование устаревших версий sing-box, где синтаксис полей отличался.

Источники и документация

FAQ

Что означает 'connected' в sing-box и почему сайты всё равно не грузятся?

Статус 'connected' показывает, что соединение с сервером установлено, но не гарантирует, что трафик правильно маршрутизируется. Проблемы с DNS, route или MTU могут заблокировать передачу данных даже при активном туннеле.

Как узнать MTU, который нужно поставить в TUN?

Самый безопасный способ — начать с 1400. Если сайты с TLS всё ещё не работают, уменьшайте до 1280. Для PPPoE-подключений часто требуется 1400 или 1492. Экспериментируйте и проверяйте доступность HTTPS-сайтов.

Почему некоторые сайты открываются, а другие нет при работающем sing-box?

Это часто указывает на DNS-проблемы: домены, которые резолвятся через определенные DNS-серверы, могут давать разные IP. Либо route-правила блокируют конкретные домены/IP. Проверьте логи sing-box и тестируйте домены по отдельности.

Нужно ли настраивать DNS в sing-box, если уже есть настройки в ОС?

Да, если вы используете TUN, sing-box перехватывает DNS-запросы и должен иметь собственные настройки DNS. В противном случае ваши запросы могут остаться вне туннеля и попасть под блокировки. Рекомендуется настроить блок dns в конфиге.

Что делать, если после изменения MTU конфигурация не применяется?

Перезапустите sing-box полностью и пересоздайте TUN-интерфейс. Проверьте, что вы сохранили конфиг в правильном формате и не забыли закрывающие скобки. Также сбросьте сетевой адаптер TUN в настройках ОС.

Нужен быстрый рабочий доступ?

Если сейчас важнее вернуть подключение, чем продолжать ручную диагностику, переходите к прямому сценарию оформления доступа.

Получить доступ

Дальше по теме

Связанные статьи