Skip to content

Туннели ​

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

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

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

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

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

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

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

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

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

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

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

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

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

Туннель шаг за шагом
Панель
Приложения
Ретранслятор
Исходящий узел
Интернет
вход пользователей:443
порт туннеля:8443
без открытых портов
1 · Панель отправляет половины

Панель отправляет каждому узлу по половине: исходящее на ретранслятор и вход на исходящий узел. Ни одна не трогает пользователей, входящие и правила, которые уже есть на узле.

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

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

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

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

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

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

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

Профили делят один пул
один пул
Ретранслятор
Исходящий узел
выход 203.0.113.20
REALITY:8443
WebSocket:2083
связей несут трафик
0/4
1 · Связи по всем профилям

Исходящий узел подключается к обоим профилям туннеля: REALITY на одном порту и WebSocket на другом. Все связи попадают в один пул одного и того же исходящего узла.

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

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

Панель не выбирает выход и объясняет почему, если ретранслятор ведёт больше одного туннеля. Тогда напишите правила с тегом каждого туннеля в шаблоне ретранслятора.

Чтобы через туннель шла только часть трафика, дайте ретранслятору собственный шаблон (см. Шаблоны). На его вкладке Маршрутизация напишите правила, которые направляют этот трафик на тег туннеля (tunnel-…), и задайте Исходящее по умолчанию для остального, например direct. Когда в шаблоне ретранслятора есть правило с этим туннелем, панель оставляет аутбаунд по умолчанию шаблона, а в строке туннеля появляется значок фильтра: «Шаблон узла-реле направляет в этот туннель часть трафика, а для остального оставляет собственный final».

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

WARNING

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

Состояние ​

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

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

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

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

Сброс ​

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

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

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

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

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

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

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

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

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

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

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

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