Конфигурация Tailscale

Chute включает встроенную нативную поддержку Tailscale. После настройки вы можете ссылаться на встроенную политику TAILSCALE из правил или групп политик, чтобы направлять трафик через ваш tailnet — обращаться к другим устройствам в tailnet, выходить через exit node или обращаться к подсетям, объявленным пирами.

В отличие от обычных прокси-протоколов, Tailscale — это не политика, заданная построчно в [Proxy]; он настраивается через единственный глобально уникальный раздел [Tailscale]. Он регистрирует узел на контрольном сервере с помощью auth key, без интерактивного входа через браузер.

Раздел Tailscale

Раздел [Tailscale] определяет всё, что нужно устройству для подключения к tailnet:

[Tailscale]
auth-key = tskey-auth-xxxxxxxxxxxx
control-server = https://controlplane.tailscale.com
hostname = my-device
exit-node = 100.101.102.103
accept-routes = true
force-derp = false

Примечание: во всём файле конфигурации допускается только один раздел [Tailscale]. Повторный раздел [Tailscale] считается ошибкой конфигурации. Это связано с тем, что движок Tailscale тяжеловесен, а диапазоны адресов tailnet взаимоисключающи — одновременно можно подключиться только к одному tailnet.

Параметры

Ключ Обязательно Описание
auth-key Да Auth key Tailscale. При использовании официальной контрольной плоскости должен начинаться с tskey-; сторонние контрольные серверы (например, Headscale) принимают собственные форматы ключей
control-server Нет Адрес контрольного сервера, должен быть URL вида http(s)://. Оставьте пустым, чтобы использовать официальную контрольную плоскость controlplane.tailscale.com
hostname Нет Имя устройства, сообщаемое в tailnet (MagicDNS-имя хоста)
exit-node Нет Exit node; принимает IP tailnet (100.x) или MagicDNS-имя. Оставьте пустым, чтобы не использовать exit node
accept-routes Нет Принимать ли подсетевые маршруты, объявленные пирами (логическое значение, по умолчанию false)
force-derp Нет Принудительно использовать только DERP-ретрансляцию и отключить прямые соединения (логическое значение, по умолчанию false)
direct-quality-guard Нет Отслеживать качество прямого пути и заранее переключаться на DERP при его ухудшении (логическое значение, по умолчанию false). Когда выключено, качество пути только записывается
peer-relay Нет Включить обнаружение кандидатов peer-relay и использовать peer-ретрансляторы как дополнительный путь (логическое значение, по умолчанию false, экспериментально)
exit-dns Нет DNS, используемый для имен хостов, соединения с которыми идут через exit node: auto (по умолчанию, когда задан exit node — разрешение через DNS выходного узла), off или буквальный IP DNS-сервера, доступного через exit node
advertise-exit-node Нет Предлагать это устройство сети tailnet в качестве exit node (логическое, по умолчанию false). Только macOS —— на iOS/tvOS игнорируется с предупреждением
advertise-routes Нет Локальные подсети, которые это устройство готово маршрутизировать для tailnet, списком CIDR через запятую (например 192.168.1.0/24, 10.0.0.0/8). Только macOS

Логические значения принимают следующие написания (без учёта регистра): true/false, 1/0, yes/no, on/off.

Примечание: неизвестные ключи игнорируются с предупреждением (они не блокируют загрузку конфигурации). Опечатка в ключе (например, force-derp, записанный как force_derp) незаметно отключит эту опцию — сверьтесь с таблицей выше.

Встроенная политика TAILSCALE

После настройки раздела [Tailscale] становится доступным встроенный идентификатор политики TAILSCALE — он стоит в одном ряду с DIRECT и REJECT и может напрямую использоваться в правилах и группах политик. Когда раздел [Tailscale] не настроен или Tailscale выключен, правила, ссылающиеся на TAILSCALE, обрабатываются как REJECT (fail-closed).

[Proxy Group]
Mesh = select, TAILSCALE, DIRECT

[Rule]
IP-CIDR,100.64.0.0/10,TAILSCALE,no-resolve
FINAL,DIRECT

Автоматическая маршрутизация

При включённом Tailscale Chute автоматически инжектирует следующие три правила перед всеми вашими правилами, поэтому обычно не нужно вручную писать правила для доступа к tailnet:

DOMAIN-SUFFIX,ts.net,TAILSCALE
IP-CIDR,100.64.0.0/10,TAILSCALE,no-resolve
IP-CIDR6,fd7a:115c:a1e0::/48,TAILSCALE,no-resolve

Эти инжектированные правила действуют только во время выполнения и никогда не изменяют ваш файл конфигурации. Если установлено accept-routes = true, подсети, объявленные пирами, также автоматически добавляются как соответствующие правила IP-CIDR / IP-CIDR6 и обновляются автоматически при добавлении или отзыве подсетей пирами.

Использование

Доступ к устройствам в tailnet

После настройки раздела [Tailscale] для обращения к другим устройствам в tailnet не нужны дополнительные правила — инжектированные правила уже покрывают диапазоны tailnet и суффикс MagicDNS. Вы можете адресовать пиры напрямую по MagicDNS-имени или IP tailnet:

[Tailscale]
auth-key = tskey-auth-xxxxxxxxxxxx
hostname = my-iphone

[Rule]
FINAL,DIRECT

Теперь такие цели, как my-pc.<tailnet>.ts.net или 100.101.102.103, будут автоматически идти через Tailscale.

Выход через exit node

Установите TAILSCALE как цель FINAL, чтобы направить весь трафик, не подпавший под более конкретное правило, через exit node:

[Tailscale]
auth-key = tskey-auth-xxxxxxxxxxxx
exit-node = 100.101.102.103

[Rule]
FINAL,TAILSCALE

Примечание: сам по себе параметр exit-node не направляет трафик через выходной узел — необходимо также добавить правило, отправляющее трафик в TAILSCALE (например, FINAL,TAILSCALE). Без такого правила выходной узел настроен, но не используется; редактор конфигурации приложения сообщает об этом.

Приём подсетевых маршрутов

Когда устройство в tailnet выступает как subnet router и объявляет локальные подсети, включите accept-routes = true, чтобы получить доступ к этим подсетям; соответствующие правила маршрутизации инжектируются автоматически:

[Tailscale]
auth-key = tskey-auth-xxxxxxxxxxxx
accept-routes = true

Сделать это устройство exit node (только macOS)

Только macOS. iOS и tvOS могут использовать exit node, но не могут им быть. Приведённые ниже ключи там тоже разбираются, но игнорируются с предупреждением.

Mac с Chute может сам быть exit node, чтобы остальные ваши устройства выходили в интернет через него. Включите это в Настройках → Tailscale → Работать как exit node для других устройств или прямо в конфигурации:

[Tailscale]
auth-key = tskey-auth-xxxxxxxxxxxx
advertise-exit-node = true

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

[Tailscale]
auth-key = tskey-auth-xxxxxxxxxxxx
advertise-routes = 192.168.1.0/24, 10.0.0.0/8

Объявление — это лишь предложение. Администратор должен одобрить маршруты в консоли управления Tailscale (в Headscale — командой headscale nodes approve-routes), и только после этого другие устройства смогут выбрать этот Mac. До тех пор в строке меню отображается Ожидание одобрения в консоли управления, и трафик не идёт.

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

Несколько моментов, которые стоит знать до включения:

  • Трафик других устройств использует интернет-подключение этого Mac и выходит наружу под его IP-адресом, поэтому он учитывается на этом подключении и относится к этой сети.
  • Пока Mac спит, exit node не работает. Включите в меню Tailscale пункт Не давать Mac засыпать во время работы — Mac будет бодрствовать ровно столько, сколько он одобрен и передаёт трафик. При закрытии крышки он всё равно уснёт: это не переопределяется, и у официального клиента Tailscale для macOS то же ограничение.
  • ICMP не пересылается, поэтому ping с другого устройства через этот exit node останется без ответа. На tailscale ping это не влияет — он не использует ICMP.

У официальных клиентов Tailscale для iOS и tvOS то же ограничение и по той же причине: сетевое расширение не может держать долго живущий путь пересылки.

Собственный контрольный сервер (Headscale)

Помимо официальной контрольной плоскости, Chute поддерживает самохостинг контрольных серверов Headscale / Ionscale. Просто укажите соответствующий URL:

[Tailscale]
auth-key = your-headscale-preauth-key
control-server = https://headscale.example.com
hostname = my-device

Сторонние контрольные серверы не требуют префикса tskey- и принимают собственные auth key. Использование адреса http:// в открытом виде рекомендуется только в доверенной сети (например, для локального самохостинга Headscale).

Известные ограничения и рекомендации

Реализация Tailscale сосредоточена на возможностях, наиболее часто используемых в прокси-сценариях; некоторые функции официального клиента пока не поддерживаются. Обратите внимание на следующие поведенческие различия:

  1. Используйте force-derp = true только для диагностики. Обычно Chute предпочитает прямые UDP-соединения с пирами (disco hole-punching), которые, как правило, обеспечивают меньшую задержку и большую пропускную способность, чем DERP-ретрансляция. Если в конкретной сети прямые соединения постоянно нестабильны или медленнее DERP, сравните оба режима и включайте force-derp только для этой среды.

  2. Поддерживается только вход по auth key. SSO / интерактивный вход через браузер, Tailscale SSH, Taildrop и Funnel / serve не поддерживаются. На iOS и tvOS Chute не может объявлять маршруты локальных подсетей или предоставлять это устройство как exit node — эти платформы подключаются только как потребители; на macOS поддерживается и то и другое, см. раздел «Сделать это устройство exit node (только macOS)» выше.

  3. При использовании exit node общесистемный DNS остается локальным, но имена хостов, соединения с которыми идут через TAILSCALE, разрешаются через exit node. Имена MagicDNS разрешаются локально по карте tailnet. Для соединений, маршрутизируемых через exit node, имена хостов разрешаются через DNS выходного узла (peerapi ExitDNS или резолвер, заданный через exit-dns); установите exit-dns = off, чтобы оставить разрешение локальным. Глобальные резолверы и удалённые split-DNS-резолверы не поддерживаются.

  4. MagicDNS поддерживает только записи A / AAAA. Глобальные Resolvers, split-DNS-маршруты (записи с выделенным резолвером) и не-адресные ExtraRecords (TXT / CNAME / SRV) игнорируются; при обнаружении в лог записывается предупреждение.

  5. Внутренний MTU прямого пути фиксирован на 1280. Обнаружения Path MTU нет; это консервативное значение предотвращает чёрные дыры на PPPoE / составных туннельных каналах. Путь через DERP-ретрансляцию не затрагивается.

  6. Tailnet Lock (сетевая блокировка) не поддерживается. В tailnet с включённой сетевой блокировкой ключ этого узла не будет подписан, а заблокированные пиры будут незаметно отбрасывать трафик от этого устройства.

  7. Mullvad-exit и другие сценарии с перезаписью источника недоступны. Функции exit node, требующие перезаписи локального адреса источника, пока не реализованы.

  8. Восстановление после смены сети зависит от системного уведомления. При переключении Wi-Fi / сотовой связи Chute оперативно перестраивает соединения; в редком случае, когда уведомление о смене сети не получено, восстановление откатывается к переподключению по watchdog примерно через 3 минуты.

S. Smart Rabbit LLC © All Rights Reserved            updated 2026-08-18 11:36:57

Эта страница — перевод английской версии. При расхождениях приоритет имеет английская версия.

results matching ""

    No results matching ""