Режим TUN или системный прокси: сравнение и выбор
Содержание
Клиенты на ядре mihomo предлагают два способа направить трафик через прокси: системный прокси и режим TUN. Разница между ними принципиальная. Системный прокси — это всего лишь объявление на уровне операционной системы: «прокси находится по такому-то адресу и порту», а приложения следуют этому объявлению добровольно. Режим TUN создаёт виртуальный сетевой адаптер и перехватывает весь IP-трафик на сетевом уровне, не спрашивая согласия программ.
Отсюда практическое правило: для браузера и большинства повседневных приложений системного прокси достаточно, а режим TUN нужен там, где программа игнорирует системные настройки — игры, консольные утилиты, отдельные десктопные приложения с собственным сетевым стеком. Ниже разберём сравнение по критериям и определимся, когда что включать.
Сравнительная таблица: системный прокси и режим TUN
| Критерий | Системный прокси | Режим TUN |
|---|---|---|
| Уровень работы | Прикладной: HTTP/SOCKS-прокси, объявленный в настройках ОС | Сетевой: виртуальный адаптер перехватывает IP-пакеты |
| Охват трафика | Только приложения, которые читают системные настройки прокси | Практически весь трафик системы |
| Права доступа | Обычные права пользователя | Повышенные: служебный режим или администратор в Windows, подтверждение и пароль в macOS |
| Сложность включения | Один переключатель в клиенте | Установка службы, системные разрешения, иногда перезапуск клиента |
| Диагностика | Проще: сразу видно, какое приложение обходит прокси | Сложнее: подключаются DNS, таблица маршрутов и другие адаптеры |
| Конфликты | Редки, чаще всего с расширениями браузера | Возможны с другими VPN-клиентами и виртуальными адаптерами |
Разница в охвате трафика
Системный прокси работает по принципу договорённости. ОС хранит запись вида «HTTP-прокси на 127.0.0.1, порт такой-то», а библиотеки и приложения при желании эту запись читают. Браузеры, почтовые клиенты, мессенджеры и большинство программ с сетевыми функциями её уважают. Но никакого механизма принуждения нет: приложение, которое открывает сокет напрямую, спокойно уйдёт мимо прокси. Именно так ведут себя многие игры, часть консольных инструментов и программы со встроенным сетевым стеком. Подробнее механика описана в статье про системный прокси.
Режим TUN обходит эту проблему архитектурно. Виртуальный адаптер выглядит для системы как обычный сетевой интерфейс, маршруты направляют пакеты в него, и ядро mihomo разбирает их само. Приложению не нужно ничего знать о прокси — оно просто отправляет пакеты, а решение о маршрутизации принимается ниже по стеку. Как это включается на практике, разобрано в руководстве по режиму TUN.
Права доступа, стабильность и накладные расходы
За универсальность TUN приходится платить правами. Создание виртуального адаптера и правка таблицы маршрутов — привилегированные операции: в Windows клиент обычно ставит вспомогательную службу, в macOS запрашивает пароль администратора и разрешение на системное расширение, в Linux требуются соответствующие права. Системному прокси ничего этого не нужно, поэтому он включается мгновенно и так же мгновенно отключается.
Про производительность корректно говорить только качественно: TUN добавляет обработку пакетов и собственный слой разрешения имён, поэтому нагрузка на процессор при интенсивном трафике заметнее, чем при обычном проксировании. Для повседневного просмотра сайтов разница обычно несущественна, и ориентироваться стоит на собственные ощущения, а не на чужие цифры.
Важно. TUN тесно связан с DNS. Если после включения режима интернет пропал целиком, начинать проверку стоит именно с настроек DNS в конфигурации, а не с узлов.
Какой режим включать в повседневной работе
Разумная стратегия выглядит так:
- По умолчанию используйте системный прокси. Он проще, безопаснее для сетевой конфигурации системы и легче диагностируется.
- Заметили приложение, которое не видит прокси, — сначала проверьте, есть ли у него собственные настройки прокси или переменные окружения.
- Если таких приложений несколько или трафик нужно перехватывать целиком, включайте режим TUN и оставляйте его основным режимом.
- На Android отдельного выбора нет: клиенты вроде Clash Meta for Android и FlClash работают через системный VPN-интерфейс, что по механике близко к TUN.
Что происходит при одновременном включении
Формально режимы не исключают друг друга: можно включить и системный прокси, и TUN. Трафик приложения, читающего системные настройки, попадёт в ядро через прокси-порт, остальной — через виртуальный адаптер. Конечный результат обычно одинаковый, но картина усложняется, а при разборе проблем становится непонятно, какой путь виноват.
Поэтому при любой диагностике первым делом отключите один из режимов и проверьте поведение по отдельности. Этот приём экономит массу времени и упоминается почти в каждом сценарии из разбора частых ошибок. Отдельно следите за другими VPN-приложениями: два виртуальных адаптера, борющиеся за маршрут по умолчанию, — типичная причина «всё включено, но сети нет».
Короткий чек-лист
- Нужен браузер и обычные приложения — достаточно системного прокси.
- Программа игнорирует прокси — включайте TUN.
- Нет прав администратора — TUN, скорее всего, недоступен.
- Сеть ведёт себя странно — оставьте один режим и проверяйте по очереди.
- Работают другие VPN-клиенты — отключите их перед включением TUN.
Если подходящего клиента ещё нет, начните с настольной сборки Clash Verge Rev из центра загрузок: оба режима переключаются там в пару кликов, а служебный компонент для TUN устанавливается из самого приложения.