zapret-kvn/docs/sing-box/reference/tun-inbound.md
2026-03-27 14:15:12 +03:00

6 KiB
Raw Permalink Blame History

TUN Inbound -- справочник полей

Целевая версия: sing-box 1.14.x Только поля, поддерживаемые на Windows.

Структура

{
  "type": "tun",
  "tag": "tun-in",
  "interface_name": "xftun0",
  "address": ["172.19.0.1/30"],
  "mtu": 9000,
  "auto_route": true,
  "strict_route": false,
  "stack": "mixed",
  "route_address": [],
  "route_exclude_address": [],
  "route_address_set": [],
  "route_exclude_address_set": [],
  "endpoint_independent_nat": false,
  "udp_timeout": "5m"
}

Поля

interface_name

Тип string
По умолчанию автовыбор

Имя виртуального сетевого адаптера. Если пустое, система выберет имя автоматически. XrayFluent генерирует имя с префиксом xftun и случайным суффиксом (например xftun3a1b2c).

address

Тип string или string[]
С версии 1.10.0

Список IPv4/IPv6 CIDR-адресов для TUN-интерфейса. Пример: ["172.19.0.1/30", "fdfe:dcba:9876::1/126"]. Заменяет устаревшие inet4_address / inet6_address.

mtu

Тип number
По умолчанию 9000

Максимальный размер передаваемого блока данных (Maximum Transmission Unit).

auto_route

Тип bool
По умолчанию false

Устанавливает маршрут по умолчанию через TUN-адаптер. Должно быть true для перехвата трафика.

Важно: чтобы избежать петли маршрутизации, установите route.auto_detect_interface или route.default_interface, либо используйте outbound.bind_interface.

strict_route

Тип bool
По умолчанию false

Применяет строгие правила маршрутизации при включённом auto_route:

  • Делает неподдерживаемые сети недоступными.
  • Предотвращает утечку DNS через стандартное поведение Windows (multihomed DNS resolution).

Предупреждение (Windows): значение true может нарушить работу VirtualBox и вызвать петлю маршрутизации для direct-исходящих соединений на некоторых сборках Windows. XrayFluent по умолчанию использует false.

stack

Тип string
По умолчанию mixed (если gVisor включён в сборку)

TCP/IP стек для обработки трафика:

Значение Описание
system L3->L4 через сетевой стек ОС
gvisor L3->L4 через виртуальный стек gVisor
mixed TCP через system, UDP через gvisor

route_address

Тип string[]
С версии 1.10.0

Пользовательские CIDR-маршруты вместо маршрутов по умолчанию при включённом auto_route. Пример: ["0.0.0.0/1", "128.0.0.0/1"].

route_exclude_address

Тип string[]
С версии 1.10.0

CIDR-адреса, исключённые из маршрутизации через TUN. Пример: ["192.168.0.0/16"].

route_address_set

Тип string[]
С версии 1.11.0

Добавляет IP-адреса из указанных rule-set в маршруты TUN (эквивалент добавления в route_address). Трафик, не соответствующий правилам, обходит sing-box.

route_exclude_address_set

Тип string[]
С версии 1.11.0

Исключает IP-адреса из указанных rule-set из маршрутов TUN (эквивалент добавления в route_exclude_address).

endpoint_independent_nat

Тип bool
По умолчанию false

Включает Endpoint-Independent NAT. Работает только со стеком gvisor (остальные стеки используют EI-NAT по умолчанию). Незначительно снижает производительность -- не рекомендуется без необходимости.

udp_timeout

Тип string (duration)
По умолчанию "5m"

Время жизни UDP NAT-записи. Формат: golang duration (например "5m", "300s").

Не поддерживается на Windows

Поле Платформа
auto_redirect Linux (nftables)
auto_redirect_input_mark Linux (nftables)
auto_redirect_output_mark Linux (nftables)
auto_redirect_reset_mark Linux (nftables, 1.13)
auto_redirect_nfqueue Linux (nftables, 1.13)
auto_redirect_iproute2_fallback_rule_index Linux (1.12)
iproute2_table_index Linux
iproute2_rule_index Linux
include_interface Linux
exclude_interface Linux
include_uid, include_uid_range Linux
exclude_uid, exclude_uid_range Linux
include_android_user Android
include_package, exclude_package Android
include_mac_address Linux (1.14)
exclude_mac_address Linux (1.14)
exclude_mptcp Linux (1.13)
loopback_address Linux (auto_redirect, 1.12)

Пример

Конфигурация TUN, генерируемая XrayFluent по умолчанию:

{
  "type": "tun",
  "tag": "tun-in",
  "interface_name": "xftun3a1b2c",
  "address": ["172.19.0.1/30"],
  "auto_route": true,
  "strict_route": false,
  "stack": "mixed"
}