DC Relay
DC Relay нужен, когда b4 работает внутри цензурируемой сети и WebSocket-транспорт тоже заблокирован, поэтому прямой маршрут до Telegram должен уходить через VPS.
Телефон ──────▶ b4 (роутер) ──────▶ VPS ──────▶ Telegram
ТСПУ видит ТСПУ видит
"HTTPS на google.com" "трафик на VPS"
VPS нужен только как TCP-форвардер. Ни ключей, ни специфичного для MTProto софта.
Релей принадлежит прокси-серверу. WebSocket-мост очищает его для каждой своей сессии, а режим Только WebSocket вообще не создаёт TCP-плеча, поэтому в обоих случаях поле ни на что не влияет.
Настройка
Установить socat на VPS:
apt install -y socat
Указать DC Relay в разделе Настройки, Telegram как адрес VPS с базовым портом, например my-vps.com:7007. Поле появляется при режиме транспорта Прямой TCP или Авто.
Затем открыть кнопку ? рядом с полем. Окно Настройка socat для DC Relay перечисляет дата-центры и готовую команду socat для каждого, а внизу есть Копировать всё.

Каждый socat пересылает один порт релея на публичный адрес дата-центра, к которому b4 подключается напрямую: базовый порт + DC - 1 на эндпоинт :443 этого дата-центра. Медиа-дата-центр 203 использует порт DC 2, поэтому отдельная команда для него не нужна.
Каждый порт из списка должен быть открыт на VPS, всего пять, по одному на основной дата-центр. Окно печатает их последней строкой.
Запуск команд из /etc/rc.local или юнита systemd сохраняет их после перезагрузки.
При режиме Авто с настроенным релеем план ставит relay TCP первым, а WebSocket за ним. Прогретый пул WebSocket-соединений прокси-сервера проверяется до построения этого плана, поэтому прогретое соединение из пула всё равно может быть использовано раньше релея.
IPv4 или IPv6
Переключатель Семейство адресов в окне меняет, к каким адресам Telegram подключаются сгенерированные команды. Он нужен для VPS, который дотягивается до Telegram по IPv6, но не по IPv4.
Переключатель меняет только верхнюю сторону команды:
# IPv4
socat TCP-LISTEN:7007,fork,reuseaddr TCP:149.154.175.50:443 &
# IPv6
socat TCP-LISTEN:7007,fork,reuseaddr TCP6:[2001:b28:f23d:f001::a]:443 &
Сторона прослушивания следует адресу из поля DC Relay. IPv6-литерал там записывается в скобках, [2001:db8::1]:7007, и помощник выдаёт TCP6-LISTEN, чтобы VPS принимал соединение от b4 тоже по IPv6. Стороны независимы, и IPv4-адрес релея с IPv6-адресами наверх - допустимое сочетание.
Адреса дата-центров, которые набирает b4, встроены в сервис - и по IPv4, и по IPv6. Обновить меняет список, по которому b4 сопоставляет наблюдаемый адрес с дата-центром, и адреса, которые печатает это окно; на то, куда идёт подключение, оно не влияет.
У медиа-DC 203 нет адреса IPv6, и он использует порт DC 2, поэтому медиа идёт туда же, куда указывает команда для DC 2. Если после перехода на IPv6 медиа перестало загружаться, эту одну команду возвращают на IPv4, а остальные оставляют.