Перейти к содержимому
RU

Главная / Блог / Возможности

Что такое режим TUN и когда он вам действительно нужен

Что такое режим TUN и когда он вам действительно нужен

На главном экране Clash Verge есть переключатель режима TUN, и множество руководств просто говорят «включите его». Однако «включено» не значит «лучше». Поймите, что он делает, — и будете знать, когда за ним тянуться, а когда он только добавит сложностей.

Начнём с того, чего не умеет системный прокси

Когда вы включаете системный прокси, Clash Verge делает простую вещь: пишет в реестр Windows (или в сетевые настройки macOS) строку «HTTP-прокси находится на 127.0.0.1:7897».

Загвоздка в том, что это пожелание, и программы вольны его игнорировать.

Какие программы читают системный проксиБраузеры — Chrome, Edge и Firefox следуют ему по умолчаниюБольшинство десктопных приложений на ElectronЧасть приложений из Microsoft StoreКонсольные инструменты вроде curl, git и npm — им нужны переменные окруженияИгровые клиенты — большинство открывает сокеты напрямую и полностью его игнорируетТрафик UDP — системный прокси его вообще не обрабатывает
Для игнорирующих программ вы получаете «прокси включён, а это приложение всё равно не подключается»

Обычные нарушители:

  • Игры: загрузки Steam, Battle.net, большинство игр на UDP
  • Командная строка: curl, git, pip, docker pull
  • Некоторые десктопные приложения со своим сетевым стеком
  • Трафик UDP: системный прокси обрабатывает только HTTP/HTTPS/SOCKS, но никогда UDP

TUN делает нечто иное

Вместо вежливой просьбы на прикладном уровне TUN создаёт виртуальный сетевой адаптер и правит таблицу маршрутизации так, чтобы весь трафик уходил на него.

Два уровня перехватаСистемный проксинастраивается напрограммы подчиняются добровольнопокрывает только HTTPSOCKSособых привилегий не требуетРежим TUNперехватывает напрограммы не могут его обойтипокрывает и TCP, и UDPнужен виртуальный адаптер и системная служба
TUN перехватывает снизу, так что «это приложение не поддерживает прокси» перестаёт быть проблемой

С точки зрения программы она просто пользуется сетью как обычно. На деле её пакеты уходят в виртуальный адаптер, передаются ядру Mihomo и маршрутизируются по правилам.

Путь данных под TUNЛюбая программаигры, консольные утилиты, что угодноАдаптер TUNсистемная маршрутизация указывает сюдаЯдро Mihomoрешает по правиламНапрямую или через узелитоговый выходСобственный трафик ядра исключён, чтобы не получилась петля
Всё происходит на сетевом уровне, поэтому поддержка со стороны приложения не имеет значения

Когда его включать

Включить / оставить выключеннымВключить — игрызагрузки Steam, Battle.net, мультиплеер на UDPВключить — консольные инструментыкогда git clone, npm install или docker pull зависаютВключить — одно приложение отказывается маршрутизироватьсяпосле того как одного системного прокси не хватилоОставить выключенным — обычный сёрфингсистемного прокси достаточно и он прощеОставить выключенным — корпоративный ноутбук под управлением ITвиртуальные адаптеры конфликтуют с системами защиты рабочих станцийОставить выключенным — нестабильное соединениеобрывы под TUN ощущаются хуже

Правило большого пальца: живите на одном системном прокси и включайте TUN, когда конкретная программа отказывается сотрудничать.

Четыре вещи, которые стоит знать до включения

1. Нужно одно подтверждение администратора

TUN устанавливает драйвер виртуального адаптера (wintun на Windows) и системную службу. При первом включении вы получите запрос UAC — нажмите «Да». Дальше он не спрашивает.

В настройках Clash Verge есть пункт Service Mode, который этим и занимается. Если переключатель TUN ничего не делает при нажатии, проверьте, установился ли режим службы.

2. DNS уходит под управление ядра

Под TUN DNS-запросы обрабатывает ядро, обычно в режиме fake-ip. Два побочных эффекта:

  • Внутренние сервисы, полагающиеся на ваш локальный DNS, могут перестать резолвиться; добавьте их в fake-ip-filter
  • Пинг домена возвращает что-то вроде 198.18.x.x — это ожидаемо, а не поломка

3. Игры не становятся быстрее автоматически

TUN позволяет игровому трафику пойти через узел, но быть маршрутизированным — не то же самое, что быть быстрее. Игры крайне чувствительны к задержке и потерям, а лишний хоп обычно хуже. Чтобы это помогло, линия под ним должна быть по-настоящему хорошей — как правило, выделенный канал IPLC/IEPL.

Стоит проверить и другое: некоторые античит-системы реагируют на виртуальные адаптеры. Загляните в информацию по своей конкретной игре, прежде чем включать.

4. Убедитесь, что маршруты восстановились после выключения

Выключение TUN обычно заставляет ядро откатить свои правки маршрутизации. Если процесс убили принудительно, могут остаться устаревшие маршруты — это выглядит как «я его выключил, и теперь вообще ничего не работает».

Восстановление: выполните ipconfig /flushdns от администратора, затем запустите Clash Verge снова, чтобы он забрал управление и смог корректно завершиться. Перезагрузка тоже работает.

Можно ли держать TUN и системный прокси вместе?

Да, и многие так делают. Они не конфликтуют:

  • Программы, уважающие системный прокси, идут этим путём
  • Остальных ловит TUN на сетевом уровне

При этом с включённым TUN системный прокси во многом избыточен. Часть пользователей выключает системный прокси и оставляет только TUN — интерфейс опрятнее, поведение однороднее. Единственное, за чем стоит следить: приложения, явно настроенные «использовать системный прокси», могут повести себя иначе.

Частые вопросы

В: После включения TUN пропал доступ к устройствам в локальной сети. Проверьте, что в правилах есть прямые маршруты для приватных диапазонов. Вменяемая конфигурация содержит:

- IP-CIDR,192.168.0.0/16,DIRECT,no-resolve
- IP-CIDR,10.0.0.0/8,DIRECT,no-resolve
- IP-CIDR,172.16.0.0/12,DIRECT,no-resolve

В: Переключатель TUN серый и не нажимается. Не установлен режим службы. Настройки → Service Mode → Install, подтвердите запрос, попробуйте снова.

В: После включения TUN всё стало медленнее. Под TUN весь трафик проходит через ядро, что стоит больше процессорного времени, чем системный прокси. На старых машинах это заметно. Проверьте также параметр stackmixed или gvisor совместимее, system быстрее, но требовательнее.

Коротко

TUN решает проблему «эта программа не хочет сотрудничать» ценой повышенных прав, большего расхода ресурсов и более сложного поведения DNS.

Сначала системный прокси, TUN — когда чего-то не хватает: это наименее болезненный порядок.

Дальше: системный прокси против TUN в шести реальных сценариях и объяснение настроек портов.