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


Перед началом
- Ретранслятор и исходящие узлы добавлены и подключены на странице Узлы.
- Ретранслятор обслуживает пользователей: у него есть шаблон с инбаундами, и ваши пользователи входят в этот шаблон. Туннель меняет только то, где выходит трафик ретранслятора.
- У слушающего узла есть адрес, доступный другой стороне: его Адреса для ссылок или его Адрес, если адресов для ссылок нет. Подключающаяся сторона пробует все адреса для ссылок одновременно, поэтому второй адрес — готовый запасной вариант.
- Порт туннеля открыт в файрволе слушающего сервера. Панель его за вас не открывает.
Создание туннеля
Нажмите Добавить. Новый туннель начинается с разумных настроек: выберите узлы, нажмите Сохранить, и туннель появится на обеих сторонах.
| Поле | |
|---|---|
| Название | становится Тег туннеля: tunnel- плюс название строчными буквами. После сохранения его нельзя изменить, потому что из него строятся учётные данные обеих сторон. |
| Режим | какая сторона открывает порт (см. ниже) |
| Узел-ретранслятор | куда подключаются пользователи. Собственного трафика наружу он не выпускает. |
| Исходящие узлы | один или несколько; отсюда трафик уходит в интернет |
| Каналов на узел | сколько параллельных соединений держит каждый исходящий узел. Четырёх хватает почти для любого маршрута. |
| Окно потока | сколько данных одно соединение может держать в пути. Оставьте значение по умолчанию, если только одиночная загрузка не идёт медленно на длинном маршруте, пока несколько сразу идут быстро. |
| Включено | выключенный туннель убирается с обоих узлов, а его настройки сохраняются |
Форма одним предложением описывает, что будет делать туннель, с названиями ваших узлов.
Узел может быть ретранслятором одного туннеля и исходящим узлом другого, но не обоими в одном туннеле.
Обратный или прямой
Режим решает только то, кто открывает порт. Трафик всегда идёт так: пользователи → ретранслятор → исходящий узел → интернет.
| Обратный — исходящие узлы подключаются сами (по умолчанию) | Прямой — ретранслятор подключается сам | |
|---|---|---|
| Слушает | ретранслятор | каждый исходящий узел |
| Порт должен быть открыт на | ретрансляторе | каждом исходящем узле |
| Исходящий узел за NAT или без открытых портов | работает | не работает |
Выбирайте Обратный, если только ретранслятор может принимать соединения от исходящих узлов.
Профили: порт, защита и транспорт
Профиль — один из способов вести туннель: свой Порт прослушивания, своя Безопасность и свой Транспорт. У каждого туннеля есть хотя бы один профиль.
- Безопасность: REALITY (по умолчанию) не требует сертификата, его ключи создаются при сохранении. TLS использует сертификат, который панель выпускает для туннеля и которому доверяет другая сторона; вместо него можно вставить свою пару PEM через Добавить параметр. Без шифрования передаёт трафик ваших пользователей между двумя узлами незашифрованным.
- Транспорт: Без транспорта (обычный поток) или веб-транспорт, например WebSocket, gRPC, HTTP, HTTPUpgrade или QUIC. Веб-транспорт нужен, чтобы поставить туннель за CDN. QUIC требует TLS и не работает с REALITY; форма об этом сообщает.
- Дополнительно показывает блоки защиты и транспорта в том виде, в каком их получает узел. Правка здесь переопределяет остальные вкладки.
Нажмите + рядом с метками профилей (Добавить ещё один способ вести туннель), чтобы добавить ещё один профиль, всего до восьми. Профили — не отдельные туннели: у них один общий пул соединений с теми же исходящими узлами. Если один протокол заблокируют, туннель теряет пропускную способность этого профиля и продолжает работать на остальных, а выходной адрес пользователей не меняется.
Когда профилей два или больше:
- Балансировка: Распределение использует все подключённые профили и отправляет каждый новый поток в наименее загруженный. Приоритет использует первый подключённый профиль в списке, а остальные держит в запасе.
- Связи этого профиля задаёт долю каждого профиля. Профиль с шестью каналами берёт втрое больше трафика, чем профиль с двумя. Пустое поле означает Каналов на узел.
Каждому профилю нужен свой порт, отличный от всех инбаундов и всех других туннелей на слушающем узле.
Куда идёт трафик ретранслятора
Когда ретранслятор ведёт ровно один туннель, панель сама делает этот туннель выходом ретранслятора по умолчанию: всё, что ретранслятор отправил бы в интернет, идёт в туннель. Правила маршрутизации шаблона всё равно применяются первыми, поэтому трафик, который правило отправляет напрямую или блокирует, в туннель не попадает. Строка Выход по умолчанию туннеля (в подробностях его строки) показывает, так ли это.
Панель не выбирает выход и объясняет почему, если ретранслятор ведёт больше одного туннеля или у него есть собственный аутбаунд по умолчанию. В этом случае, а также всякий раз, когда через туннель должна идти только часть трафика, напишите правила с тегом туннеля в собственной маршрутизации ретранслятора: Узлы → Конфигурация → Маршрутизация (переопределение для узла). См. Маршрутизация и DNS.
WARNING
Никогда не вписывайте тег туннеля в маршрутизацию шаблона. Этот тег есть только у ретранслятора. Всем остальным узлам шаблона будет велено использовать аутбаунд, которого у них нет, и они откажутся от всей своей конфигурации.
Состояние
Столбец Состояние при открытии страницы опрашивает обе стороны каждого туннеля:
| Состояние | Значение |
|---|---|
| Соединений: {n} | работает, поднято столько соединений |
| Нет соединений | ретранслятор отвечает, но ни один исходящий узел к нему не подключён |
| Ретранслятор недоступен | панель не может достучаться до узла-ретранслятора |
| Неизвестно | не удалась сама проверка; о туннеле это ничего не говорит |
Полоса сводки считает те же состояния. Обновить состояние опрашивает заново.
Состояние в реальном времени в меню строки опрашивает все узлы туннеля и, пока окно открыто, обновляется каждые несколько секунд. Для каждого исходящего узла оно показывает соединения, потоки и время работы. Для подключающейся стороны показываются Пауза перед повтором до следующей попытки и Последняя ошибка: если туннель не подключается, читайте её первой.
Сброс
Сброс в окне состояния в реальном времени пересобирает туннель на всех узлах: все соединения обрываются, а подключающаяся сторона сразу начинает заново. Используйте его, когда одна сторона поднята, но ничего не передаёт, или когда вы что-то разблокировали и не хотите ждать следующей попытки. Трафик через туннель прерывается до переподключения.
Один туннель на ретранслятор
Несколько ретрансляторов перед одними и теми же исходящими узлами — это по одному туннелю на каждый ретранслятор. Тогда учётные данные, взятые с одного ретранслятора, ничего не открывают на другом, а добавление ретранслятора никогда не затрагивает туннели, которые уже передают трафик.
Дублировать в меню строки создаёт следующий туннель: задайте название и ретранслятор, а исходящие узлы, профили и настройки будут скопированы. Сертификат и ключи не копируются: копия получает свои.
Работа с несколькими туннелями
Отметьте строки, чтобы действовать над ними вместе:
- Изменить выбранные… задаёт исходящие узлы, Каналов на узел, Балансировка или Окно потока для всех сразу. Пустое поле не меняется.
- Включить, Отключить, Сброс и Удалить.
Каждый туннель проверяется так, будто вы изменили его отдельно. Если панель отклоняет один, об этом сообщается, а остальные всё равно меняются.
График трафика в меню строки показывает трафик, прошедший через туннель.
Если туннель не подключается
- Прочитайте Последняя ошибка в Состояние в реальном времени.
- Проверьте, что порт прослушивания открыт на слушающем узле: на ретрансляторе в режиме Обратный, на каждом исходящем узле в режиме Прямой. С другого узла:
nc -vz <address> <port>. - Проверьте, что адреса для ссылок слушающего узла доступны с другого узла, а не только с панели.
- Исходящий узел за NAT работает только в режиме Обратный.
- Исправив что-то, нажмите Сброс.
Связанные страницы
- Внутри туннеля: как две стороны находят друг друга и почему у пользователя остаётся один и тот же выход.
- Узлы: адреса для ссылок и маршрутизация отдельного узла.
- Маршрутизация и DNS: как пустить через туннель только часть трафика.
