Skip to content

Туннели ​

Туннель связывает ваши узлы в двух ролях: пользователи подключаются к ретранслятору, а их трафик выходит в интернет через один из его исходящих узлов. Туннель нужен, когда сервер, до которого пользователям легко дотянуться, — не тот, чей адрес должен видеть интернет, или когда выходной сервер вообще не должен принимать соединения. Эта страница описывает создание туннелей и работу с ними; что происходит внутри туннеля, объясняет Внутри туннеля.

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

Перед началом ​

  1. Ретранслятор и исходящие узлы добавлены и подключены на странице Узлы.
  2. Ретранслятор обслуживает пользователей: у него есть шаблон с инбаундами, и ваши пользователи входят в этот шаблон. Туннель меняет только то, где выходит трафик ретранслятора.
  3. У слушающего узла есть адрес, доступный другой стороне: его Адреса для ссылок или его Адрес, если адресов для ссылок нет. Подключающаяся сторона пробует все адреса для ссылок одновременно, поэтому второй адрес — готовый запасной вариант.
  4. Порт туннеля открыт в файрволе слушающего сервера. Панель его за вас не открывает.

Создание туннеля ​

Нажмите Добавить. Новый туннель начинается с разумных настроек: выберите узлы, нажмите Сохранить, и туннель появится на обеих сторонах.

Поле
Названиестановится Тег туннеля: tunnel- плюс название строчными буквами. После сохранения его нельзя изменить, потому что из него строятся учётные данные обеих сторон.
Режимкакая сторона открывает порт (см. ниже)
Узел-ретрансляторкуда подключаются пользователи. Собственного трафика наружу он не выпускает.
Исходящие узлыодин или несколько; отсюда трафик уходит в интернет
Каналов на узелсколько параллельных соединений держит каждый исходящий узел. Четырёх хватает почти для любого маршрута.
Окно потокасколько данных одно соединение может держать в пути. Оставьте значение по умолчанию, если только одиночная загрузка не идёт медленно на длинном маршруте, пока несколько сразу идут быстро.
Включеновыключенный туннель убирается с обоих узлов, а его настройки сохраняются

Форма одним предложением описывает, что будет делать туннель, с названиями ваших узлов.

Узел может быть ретранслятором одного туннеля и исходящим узлом другого, но не обоими в одном туннеле.

Обратный или прямой ​

Режим решает только то, кто открывает порт. Трафик всегда идёт так: пользователи → ретранслятор → исходящий узел → интернет.

Обратный — исходящие узлы подключаются сами (по умолчанию)Прямой — ретранслятор подключается сам
Слушаетретрансляторкаждый исходящий узел
Порт должен быть открыт наретрансляторекаждом исходящем узле
Исходящий узел за NAT или без открытых портовработаетне работает

Выбирайте Обратный, если только ретранслятор может принимать соединения от исходящих узлов.

Профили: порт, защита и транспорт ​

Профиль — один из способов вести туннель: свой Порт прослушивания, своя Безопасность и свой Транспорт. У каждого туннеля есть хотя бы один профиль.

  • Безопасность: REALITY (по умолчанию) не требует сертификата, его ключи создаются при сохранении. TLS использует сертификат, который панель выпускает для туннеля и которому доверяет другая сторона; вместо него можно вставить свою пару PEM через Добавить параметр. Без шифрования передаёт трафик ваших пользователей между двумя узлами незашифрованным.
  • Транспорт: Без транспорта (обычный поток) или веб-транспорт, например WebSocket, gRPC, HTTP, HTTPUpgrade или QUIC. Веб-транспорт нужен, чтобы поставить туннель за CDN. QUIC требует TLS и не работает с REALITY; форма об этом сообщает.
  • Дополнительно показывает блоки защиты и транспорта в том виде, в каком их получает узел. Правка здесь переопределяет остальные вкладки.

Нажмите + рядом с метками профилей (Добавить ещё один способ вести туннель), чтобы добавить ещё один профиль, всего до восьми. Профили — не отдельные туннели: у них один общий пул соединений с теми же исходящими узлами. Если один протокол заблокируют, туннель теряет пропускную способность этого профиля и продолжает работать на остальных, а выходной адрес пользователей не меняется.

Когда профилей два или больше:

  • Балансировка: Распределение использует все подключённые профили и отправляет каждый новый поток в наименее загруженный. Приоритет использует первый подключённый профиль в списке, а остальные держит в запасе.
  • Связи этого профиля задаёт долю каждого профиля. Профиль с шестью каналами берёт втрое больше трафика, чем профиль с двумя. Пустое поле означает Каналов на узел.

Каждому профилю нужен свой порт, отличный от всех инбаундов и всех других туннелей на слушающем узле.

Куда идёт трафик ретранслятора ​

Когда ретранслятор ведёт ровно один туннель, панель сама делает этот туннель выходом ретранслятора по умолчанию: всё, что ретранслятор отправил бы в интернет, идёт в туннель. Правила маршрутизации шаблона всё равно применяются первыми, поэтому трафик, который правило отправляет напрямую или блокирует, в туннель не попадает. Строка Выход по умолчанию туннеля (в подробностях его строки) показывает, так ли это.

Панель не выбирает выход и объясняет почему, если ретранслятор ведёт больше одного туннеля или у него есть собственный аутбаунд по умолчанию. В этом случае, а также всякий раз, когда через туннель должна идти только часть трафика, напишите правила с тегом туннеля в собственной маршрутизации ретранслятора: Узлы → Конфигурация → Маршрутизация (переопределение для узла). См. Маршрутизация и DNS.

WARNING

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

Состояние ​

Столбец Состояние при открытии страницы опрашивает обе стороны каждого туннеля:

СостояниеЗначение
Соединений: {n}работает, поднято столько соединений
Нет соединенийретранслятор отвечает, но ни один исходящий узел к нему не подключён
Ретранслятор недоступенпанель не может достучаться до узла-ретранслятора
Неизвестноне удалась сама проверка; о туннеле это ничего не говорит

Полоса сводки считает те же состояния. Обновить состояние опрашивает заново.

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

Сброс ​

Сброс в окне состояния в реальном времени пересобирает туннель на всех узлах: все соединения обрываются, а подключающаяся сторона сразу начинает заново. Используйте его, когда одна сторона поднята, но ничего не передаёт, или когда вы что-то разблокировали и не хотите ждать следующей попытки. Трафик через туннель прерывается до переподключения.

Один туннель на ретранслятор ​

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

Дублировать в меню строки создаёт следующий туннель: задайте название и ретранслятор, а исходящие узлы, профили и настройки будут скопированы. Сертификат и ключи не копируются: копия получает свои.

Работа с несколькими туннелями ​

Отметьте строки, чтобы действовать над ними вместе:

  • Изменить выбранные… задаёт исходящие узлы, Каналов на узел, Балансировка или Окно потока для всех сразу. Пустое поле не меняется.
  • Включить, Отключить, Сброс и Удалить.

Каждый туннель проверяется так, будто вы изменили его отдельно. Если панель отклоняет один, об этом сообщается, а остальные всё равно меняются.

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

Если туннель не подключается ​

  • Прочитайте Последняя ошибка в Состояние в реальном времени.
  • Проверьте, что порт прослушивания открыт на слушающем узле: на ретрансляторе в режиме Обратный, на каждом исходящем узле в режиме Прямой. С другого узла: nc -vz <address> <port>.
  • Проверьте, что адреса для ссылок слушающего узла доступны с другого узла, а не только с панели.
  • Исходящий узел за NAT работает только в режиме Обратный.
  • Исправив что-то, нажмите Сброс.
  • Внутри туннеля: как две стороны находят друг друга и почему у пользователя остаётся один и тот же выход.
  • Узлы: адреса для ссылок и маршрутизация отдельного узла.
  • Маршрутизация и DNS: как пустить через туннель только часть трафика.

Текст и изображения — CC BY 4.0.