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

TUN

tun:
enable: true
stack: mips
auto-route: true
auto-redirect: true
auto-detect-interface: true
# dns-mode: hijack
dns-hijack:
- any:53
- tcp://any:53
device: utun0
mtu: 9000
strict-route: true
gso: true
gso-max-size: 65536
inet6-address: [fdfe:dcba:9876::1/126]
udp-timeout: 300
iproute2-table-index: 2022
iproute2-rule-index: 9000
endpoint-independent-nat: false
route-address-set:
- ruleset-1
route-exclude-address-set:
- ruleset-2
route-address:
- 0.0.0.0/1
- 128.0.0.0/1
- "::/1"
- "8000::/1"
route-exclude-address:
- 192.168.0.0/16
- fc00::/7
include-interface:
- eth0
exclude-interface:
- eth1
include-uid:
- 0
include-uid-range:
- 1000:9999
exclude-uid:
- 1000
exclude-uid-range:
- 1000:9999
include-mac-address:
- 00:11:22:33:44:55
exclude-mac-address:
- 00:11:22:33:44:66
include-android-user:
- 0
- 10
include-package:
- com.android.chrome
exclude-package:
- com.android.captiveportallogin
## Устаревший синтаксис
inet4-route-address:
- 0.0.0.0/1
- 128.0.0.0/1
inet6-route-address:
- "::/1"
- "8000::/1"
inet4-route-exclude-address:
- 192.168.0.0/16
inet6-route-exclude-address:
- fc00::/7

Включение tun

Стек режима tun, если нет проблем с использованием, рекомендуется использовать стек mips, по умолчанию используется mips

Возможные значения: system/gvisor/mixed/mips

Указывает имя TUN-устройства, на устройствах MacOS можно использовать только имена сетевых карт, начинающиеся с utun

Автоматическая настройка глобальной маршрутизации, автоматически направляет весь глобальный трафик в TUN-устройство

Поддерживается только на Linux, автоматически настраивает iptables/nftables для перенаправления TCP-соединений, требует включенного auto-route

На Android:

Перенаправляет только локальные IPv4-соединения. Для совместного использования VPN-соединения через точку доступа или ретранслятор используйте VPNHotspot.

На Linux:

auto-redirect с auto-route теперь может работать на роутерах без вмешательства, как и ожидалось.

Автоматически определяет интерфейс для исходящего трафика. На устройствах с несколькими сетевыми картами, подключенными одновременно, рекомендуется вручную указать исходящую сетевую карту

Способ настройки системного DNS

  • disabled не настраивает системный DNS
  • native устанавливает адрес tun в качестве системного DNS
  • hijack дополнительно перехватывает трафик на порт 53 других интерфейсов в дополнение к native (требуется strict-route в Windows и auto-redirect в Linux)
  • Если оставить пустым, сохраняется прежнее поведение: Windows и Linux по умолчанию используют hijack при включенном auto-route, иначе disabled; macOS по умолчанию использует disabled

Перехват DNS, направляет соответствующие соединения во внутренний модуль dns, если протокол не указан, то используется udp://

Применяет строгие правила маршрутизации при включенном auto-route

На Linux:

  • Делает недоступными неподдерживаемые сети
  • Маршрутизирует все соединения через tun

Это предотвращает утечку адресов и обеспечивает работу перехвата DNS на Android.

На Windows:

Это может привести к тому, что некоторые приложения (например, VirtualBox) не будут работать должным образом в определенных ситуациях.

Максимальная единица передачи, влияет на скорость в экстремальных условиях. Обычным пользователям достаточно значения по умолчанию.

Включает Generic Segmentation Offload, поддерживается только на Linux

Максимальная длина блоков данных

Указывает IPv6-адрес для tun

Время истечения UDP NAT в секундах, по умолчанию 300 (5 минут)

Индекс таблицы маршрутизации iproute2, создаваемой auto-route, по умолчанию используется 2022

Начальный индекс правил iproute2, создаваемых auto-route, по умолчанию используется 9000

Включает NAT, независимый от конечной точки. Производительность может немного снизиться, поэтому не рекомендуется включать, если в этом нет необходимости.

Алгоритм управления перегрузкой TCP. Доступные значения: cubic, reno, bbr, bbr3. Значение по умолчанию — cubic. Действует только при использовании стека mips.

Добавляет правила целевых IP CIDR из указанного набора правил в брандмауэр, несоответствующий трафик обходит маршрутизацию. Поддерживается только на Linux и требует nftables, а также включенных auto-route и auto-redirect.

Добавляет правила целевых IP CIDR из указанного набора правил в брандмауэр, соответствующий трафик обходит маршрутизацию. Поддерживается только на Linux и требует nftables, а также включенных auto-route и auto-redirect.

Маршрутизирует пользовательские сегменты сети вместо маршрута по умолчанию при включенном auto-route. Обычно не требует настройки.

Исключает пользовательские сегменты сети при включенном auto-route

Ограничивает маршрутизируемые интерфейсы, по умолчанию без ограничений. Конфликтует с exclude-interface, не может быть настроено одновременно.

Исключает интерфейсы из маршрутизации. Конфликтует с include-interface, не может быть настроено одновременно.

Включает пользователей, чей трафик будет маршрутизирован через Tun. Пользователи, не указанные в настройке, не будут маршрутизированы через Tun. По умолчанию без ограничений.

Включает диапазоны пользователей, чей трафик будет маршрутизирован через Tun. Пользователи, не указанные в настройке, не будут маршрутизированы через Tun.

Исключает пользователей, чей трафик не будет маршрутизирован через Tun.

Исключает диапазоны пользователей, чей трафик не будет маршрутизирован через Tun.

Ограничивает маршрутизацию устройств локальной сети по MAC-адресу источника. Поддерживается только в Linux и требует включенных auto-route и auto-redirect.

Исключает трафик устройств локальной сети по MAC-адресу источника. Поддерживается только в Linux и требует включенных auto-route и auto-redirect.

Включает пользователей Android, чей трафик будет маршрутизирован через Tun. Пользователи, не указанные в настройке, не будут маршрутизированы через Tun.

Частые пользователиID
Владелец устройства0
Второй профиль10
Многоэкземплярные приложения999

Включает пакеты приложений Android, чей трафик будет маршрутизирован через Tun. Пакеты приложений, не указанные в настройке, не будут маршрутизированы через Tun.

Исключает пакеты приложений Android, чей трафик не будет маршрутизирован через Tun.

Маршрутизирует пользовательские сегменты сети вместо маршрута по умолчанию при включенном auto-route. Обычно не требует настройки.

Маршрутизирует пользовательские сегменты сети вместо маршрута по умолчанию при включенном auto-route. Обычно не требует настройки.

Исключает пользовательские сегменты сети при включенном auto-route

Исключает пользовательские сегменты сети при включенном auto-route

Тестирование производительности сетевых стеков Tun

Заголовок раздела «Тестирование производительности сетевых стеков Tun»

Сверху вниз: system/gvisor/lwip, только для справки, платформа - linux, Windows и MacOS могут иметь различия

iperf