4net · Документация
Одна ссылка для Android и iOS
Передайте подписку из Telegram-бота или с сайта через HTTPS-страницу 4net. На iOS корректная подписка добавляется автоматически после открытия приложения.
Единая HTTPS-ссылка
https://vps-tech.ru/open#url=<percent-encoded HTTPS subscription URL>Используйте эту ссылку для Android, iPhone и iPad. Страница определяет платформу в браузере, включая режим сайта для компьютера на iPad. Если устройство не удалось определить, пользователь выбирает iOS или Android. Приложение открывается только после нажатия «Открыть в 4net», автоматического запуска нет.
const subscriptionUrl = "https://provider.example/sub/DEMO_ONLY?plan=demo&device=any";
const openIn4net = "https://vps-tech.ru/open#url=" + encodeURIComponent(subscriptionUrl);https://vps-tech.ru/open#url=https%3A%2F%2Fprovider.example%2Fsub%2FDEMO_ONLY%3Fplan%3Ddemo%26device%3DanyЗакодируйте исходную HTTPS-ссылку целиком ровно один раз, включая путь, параметры и знаки «+». Не добавляйте /sub/ и не изменяйте токен провайдера. #url= — фрагмент ссылки, а не query-параметр: сохраняйте разделитель #.
provider.example и DEMO_ONLY — демонстрационные значения, а не рабочий доступ. Страница vps-tech.ru/open — действующий переходник 4net. Реальная ссылка подписки является секретом: передавайте её лично нужному пользователю, не публикуйте в канале, логах или репозитории.
Кнопка Telegram-бота
Передайте значение openIn4net из примера выше в URL-кнопку бота. Telegram Bot API принимает в кнопках HTTP(S) и tg://, поэтому для inline-клавиатуры используйте эту HTTPS-ссылку вместо fournet://.
const reply_markup = {
inline_keyboard: [[{
text: "Open in 4net",
url: openIn4net
}]]
};- Пользователь нажимает кнопку бота и открывает страницу 4net.
- Нажимает «Открыть в 4net». Страница использует формат импорта для его платформы.
- На iOS подписка загружается и добавляется автоматически; при частичных пропусках сохраняются поддерживаемые серверы. При ошибке приложение показывает её описание и не сохраняет некорректную подписку. На Android завершите шаги импорта, показанные клиентом. Импорт сам не запускает VPN.
Если встроенный браузер Telegram блокирует переход в приложение, откройте ту же HTTPS-ссылку в Safari на iPhone/iPad или в Chrome на Android, затем снова нажмите «Открыть в 4net». Если приложение не установлено, сначала установите 4net. Браузер может запросить подтверждение перехода.
Как переходник обрабатывает ссылку
Подписка находится во фрагменте после #, который не отправляется веб-серверу при запросе страницы. Страница обрабатывает его только в вашем браузере: не загружает подписку, не записывает её в лог и не отправляет другому сервису. После продолжения импорта в 4net клиент обращается к провайдеру обычным способом.
Переходник не заменяет адрес подписки и не добавляет маршрутизацию, учётные данные или параметры подключения. Он выбирает существующий deep link нужной платформы. Для перехода по custom scheme нужны совместимое установленное приложение и нажатие пользователя.
Прямой deep link · Android
fournet://import?url=<percent-encoded HTTPS subscription URL>fournet://import?url=https%3A%2F%2Fprovider.example%2Fsub%2FDEMO_ONLY%3Fplan%3Ddemo%26device%3Dandroidconst subscriptionUrl = "https://provider.example/sub/DEMO_ONLY?plan=demo&device=android";
const importUrl = "fournet://import?url=" + encodeURIComponent(subscriptionUrl);Для прямой интеграции с Android кодируйте ссылку подписки целиком один раз. Activity принимает её при закрытом и уже открытом приложении. Поддерживаемая схема — fournet://, а не 4net://. Если VPN включён, отключите его перед подтверждением импорта.
Прямой deep link · iPhone и iPad
fournet://add-proxy?link=<percent-encoded HTTPS subscription URL>Формат iOS отличается от Android. Не заменяйте link= на url= и не используйте Android-хост import на iOS. Единая HTTPS-страница выше выбирает правильный формат для устройства. Подробнее об импорте iOS →