Постоянный адрес туннеля: свой поддомен и свой домен
Почему адрес туннеля меняется при каждом запуске и как его закрепить: свой поддомен на fxtun.ru, резерв имени, свой домен и порт TCP-туннеля.
Без флага --domain каждый запуск fxtunnel http даёт новый случайный адрес: сегодня https://lemon.fxtun.ru, завтра https://river.fxtun.ru. Клиент прошлый поддомен не запоминает. Чтобы адрес не менялся, есть три уровня: выбрать имя самому флагом --domain myapp, зарезервировать его за аккаунтом командой fxtunnel domains add myapp или подключить свой домен вроде app.example.com. У TCP- и UDP-туннелей адрес устроен иначе, это fxtun.ru:порт, и о нём отдельный раздел ниже.
Что ломается, когда адрес меняется
Пока туннель нужен на пять минут, чтобы показать коллеге вёрстку, случайный адрес никому не мешает. Проблемы начинаются, когда адрес куда-то записан.
Вебхуки. Адрес обработчика вписан в настройки сервиса. После перезапуска туннеля сервис шлёт события на старый адрес, а он уже никуда не ведёт. События теряются или копятся в очереди повторов, пока вы не зайдёте в настройки и не впишете новый. Подробнее в статье о вебхуках на своём компьютере.
OAuth. Адрес возврата (redirect URI) регистрируется у провайдера входа заранее, и запрос с другим адресом провайдер отклонит. Каждый новый поддомен означает очередную правку настроек приложения. Разбор есть в статье про OAuth callback на localhost.
Ссылки для людей. Заказчик сохранил ссылку на демо, тестировщик — в закладки, друг — в чат. Завтра ссылки мёртвые, и всем нужно рассылать новые.
Боты и мини-приложения. Адрес вебхука бота и адрес Mini App в настройках бота тоже придётся менять при каждом новом поддомене.
Уровень 1: выбрать поддомен самому
Флаг --domain задаёт имя вместо случайного:
fxtunnel http 8080 --domain myappConnecting to fxtunnel server...
Tunnel established!
HTTP: http://myapp.fxtun.ru
HTTPS: https://myapp.fxtun.ru
Forwarding to localhost:8080
Ready to receive connections
Флаг --subdomain делает то же самое. Этот уровень доступен на любом тарифе, включая бесплатный.
Требования к имени: до 32 символов, строчные латинские буквы, цифры и дефис, первый и последний символ — буква или цифра. Часть имён закреплена за сервисом (www, api, app, admin, dev, test и другие), их занять нельзя.
Ограничение этого уровня в том, что имя ваше только пока работает туннель. Выключили клиент, и myapp может занять кто угодно. Тогда при следующем запуске вы получите ошибку: subdomain already in use, если имя сейчас используется чужим туннелем, или subdomain is reserved by another user, если его зарезервировали. Для личных экспериментов такой риск терпим. Для адреса, вписанного в настройки платёжной системы, уже нет.
Проверить имя заранее можно так:
fxtunnel domains check myappmyapp — available
Уровень 2: зарезервировать поддомен
Резерв закрепляет имя за вашим аккаунтом. Чужой туннель на нём сервер не откроет, даже когда ваш выключен.
Команды fxtunnel domains работают от имени аккаунта, поэтому сначала войдите: fxtunnel login. Затем:
fxtunnel domains add myappReserved: myapp → https://myapp.fxtun.ru
И запускайте туннель как раньше:
fxtunnel http 8080 --domain myappАдрес https://myapp.fxtun.ru теперь постоянный: можно один раз вписать его в сервис и забыть. То же самое делается в личном кабинете, в разделе «Домены».
Резервировать поддомены можно с тарифа Base: на нём пять имён, на Pro — пятнадцать, на Business — пятьдесят. Если лимит тарифа исчерпан, сервер ответит maximum domains reached.
Полезные команды:
fxtunnel domains list # ваши поддомены и лимит тарифа
fxtunnel domains remove myapp # освободить имяОсвобождённое имя сразу становится доступно другим, поэтому не удаляйте его, если адрес ещё где-то записан.
Уровень 3: свой домен
Вместо myapp.fxtun.ru туннель может открываться по вашему домену, например app.example.com. Сертификат Let’s Encrypt сервер выпускает и продлевает сам.
Свой домен нужен, когда адрес видят клиенты и партнёры, или когда сервис требует ваш домен в настройках. Есть и приятная мелочь: предупредительная страница, которую браузер показывает при первом заходе на поддомен fxtun.ru, на своём домене не появляется.
Порядок коротко:
- Зарезервируйте поддомен:
fxtunnel domains add myapp. Свой домен привязывается к нему. - Добавьте домен в личном кабинете (раздел «Домены» → «Добавить домен») или командой
fxtunnel domains custom add app.example.com --target myapp. - Создайте в DNS две записи. TXT
_fxtunnel-challenge.app.example.comсо значениемfxtunnel-verify=<токен>подтверждает, что домен ваш; токен есть в карточке домена в кабинете. CNAMEapp.example.com→myapp.fxtun.ruнаправляет трафик. Для корневого домена вродеexample.comвместо CNAME ставится A-запись на IP из карточки. - Проверьте:
fxtunnel domains custom verify app.example.comили кнопка «Проверить» в карточке. Успешная проверка выглядит так:app.example.com — verified! TLS certificate will be obtained automatically. - Запустите туннель на целевом поддомене:
fxtunnel http 8080 --domain myapp.
TXT-запись после проверки не удаляйте: сервер перепроверяет её каждые 12 часов и после трёх неудач подряд снимает подтверждение. Все подробности, типичные ошибки DNS и проверку через dig ищите в пошаговом руководстве по своему домену и в документации.
Свои домены подключаются с тарифа Base: один домен, на Pro — пять, на Business — пятьдесят.
Адрес TCP- и UDP-туннеля: закрепить нельзя, но можно попросить порт
У TCP- и UDP-туннелей поддомена нет. Адрес состоит из базового домена и порта: fxtun.ru:14215. Порт выдаёт сервер, и без подсказки это первый свободный номер в диапазоне: 10000–20000 для TCP, 20001–30000 для UDP.
Пока клиент работает, порт держится за туннелем: при обрыве сети клиент переподключится на тот же номер. После перезапуска клиента порт может быть другим. Резервировать TCP- и UDP-порты за аккаунтом, как поддомены, сейчас нельзя.
Зато можно попросить конкретный номер:
fxtunnel tcp 25565 --remote-port 15565Работает, если выполнены два условия:
- номер из диапазона своего протокола;
--remote-port 25565для TCP сервер отклонит с ошибкойoutside allowed range; - номер свободен в момент запуска. Кто первым занял порт, того он и есть. Если занят, клиент сообщит
port 15565 is already in use.
На практике это значит: выберите не самый очевидный номер, держите запасной и не обещайте, что адрес не изменится никогда. Для игрового сервера с друзьями такого подхода хватает. Как это выглядит в Майнкрафте, разобрано в статье «Майнкрафт по сети без Хамачи».
TCP-туннели работают на всех тарифах, UDP-туннели появляются с тарифа Base.
Какой уровень выбрать
Удобно рассуждать от того, кто и где хранит ваш адрес.
Адрес живёт только в вашей голове и в чате с коллегой, туннель нужен на вечер. Хватит случайного поддомена или --domain с любым свободным именем.
Адрес вписан в настройки чужого сервиса: вебхук платёжной системы, redirect URI у провайдера входа, URL бота. Здесь нужен зарезервированный поддомен. Иначе однажды утром имя окажется занятым, а вы узнаете об этом по пропавшим уведомлениям об оплате.
Адрес видят клиенты, партнёры или пользователи. Подключайте свой домен: он выглядит как часть вашего продукта, работает без предупредительной страницы и не зависит от того, как называется поддомен.
И отдельно про TCP и UDP: там закреплять нечего, есть только --remote-port. Если постоянный адрес для игрового сервера или базы критичен, заложите в инструкцию для друзей или коллег, что порт иногда придётся обновить.
Что на каком тарифе
| Возможность | Free | Base | Pro | Business |
|---|---|---|---|---|
| Случайный поддомен при каждом запуске | да | да | да | да |
Свой поддомен через --domain, пока туннель запущен | да | да | да | да |
| Зарезервированные поддомены | — | 5 | 15 | 50 |
| Свои домены с сертификатом | — | 1 | 5 | 50 |
--remote-port для TCP | да | да | да | да |
UDP-туннели и --remote-port для них | — | да | да | да |
| Закрепить TCP/UDP-порт за аккаунтом | — | — | — | — |
| Туннелей одновременно | 1 | 5 | 15 | 50 |
Актуальные условия и цены — на странице тарифов.
Если коротко: для личных экспериментов хватает --domain на бесплатном тарифе. Как только адрес попадает в настройки чужого сервиса или в руки заказчика, имеет смысл зарезервировать поддомен или подключить свой домен.
Что дальше
- Пошагово про свой домен, DNS-записи и проверку — руководство по своему домену.
- Зачем постоянный адрес вебхукам и как проверять их подпись — вебхуки на своём компьютере.
- Когда туннелей несколько и их удобно держать в одном файле — fxtunnel up: все туннели в фоне по одному конфигу.
Постоянный адрес
Закрепить поддомен за собой можно с тарифа Base, там же — свой домен вида app.example.com с сертификатом. На бесплатном тарифе адрес меняется при каждом запуске.
Читайте дальше
Вебхук: что это и как принять вебхук на своём компьютере
Что такое вебхук, чем входящий отличается от исходящего и как принять вебхук на localhost: туннель, постоянный адрес и проверка подписи.
6 мин · 1 октября 2026Telegram и Discord боты через туннель — гайд
Telegram и Discord доставляют события только на публичный HTTPS-адрес. Показываем, как дать боту такой адрес через fxTunnel и отлаживать вебхуки в Inspector.
13 мин · 19 марта 2026WordPress на localhost через туннель — гайд
WordPress хранит URL в базе и ломается за туннелем без правки wp-config.php. Показываем настройку WP_HOME/WP_SITEURL, демо клиенту и вебхуки WooCommerce.
12 мин · 15 марта 2026