Что это
Инструмент для проброса портов через промежуточный сервер — позволяет достучаться до устройства за NAT или домашним роутером, не открывая на нём опасные "дыры" в интернет напрямую.
Как применяем
Для постоянного туннеля между узлом в России и автономным сервером за рубежом — трафик выходит через доверенную точку, а не открывается наружу на каждом узле в отдельности.
Где это нужно бизнесу
- Новые соединения из России к зарубежному серверу теряются, а клиентам VPN нужно стабильное подключение.
- Сайт в России должен отправлять заявки боту, который живёт за границей.
- Сервис за NAT или без открытого порта должен быть доступен другому серверу.
Как мы это используем
- VPN-трасса. На трассе «Россия → Европа» вместо нового соединения на каждого клиента держится один постоянный туннель frp до выходного сервера, и все клиенты идут внутри него. Фильтр, который срабатывает при установлении соединения, новых соединений больше не видит.
- Сайты и сервисы за рубежом. На сервере сайтов десять независимых клиентов frp в одной группе балансировки везут запросы сайтов к сервису за границей: если одна сессия падает, новые соединения идут через остальные девять.
- Бот без открытого порта. Бот входа в «Переговорку» живёт за границей, а сервис в России сам открывает исходящее соединение и пробрасывает внутренний API по TLS. Управляющий порт со стороны бота открыт только для адреса сервера сервиса.
Типичные проблемы
- Обрывы без ошибок в логе. Разбор в версии 3.0.0 нашёл 46 обрывов туннеля в сутки. В режиме tcpMux frp отключает свой heartbeat, у мультиплексора фиксированный таймаут записи 10 секунд, и на канале с потерями один пропущенный пинг убивал живую сессию. Интервал keepalive подняли с 30 до 120 секунд.
- Единая точка отказа. Первый туннель был единственным; второй независимый туннель добавили, и при снятом первом подписка ответила на 10 запросов из 10.
Когда это не нужно
Если серверы в одной стране и соединение между ними никто не режет, достаточно прямого подключения или частной сети на WireGuard.