Portal Tunnel: публикация локальных сервисов в интернете без сложной настройки
Portal Tunnel — это инструмент для публикации локальных сервисов в интернете без необходимости в пробросе портов или настройке DNS. Он может быть особенно полезен для разработчиков, которым нужно быстро протестировать локальные приложения или API, не вникая в сложные сетевые настройки.
Проект позволяет запускать собственные реле или использовать публичные, обеспечивая при этом анонимность и отсутствие зависимости от централизованных провайдеров. Это реализуется через простую команду для запуска собственного реле. Также Portal обеспечивает E2E шифрование и защиту от MITM-атак. Такой подход дает больше контроля и безопасности по сравнению с традиционными сервисами туннелирования.
Код написан на Go. Чтобы запустить, достаточно выполнить несколько команд в терминале для установки и настройки. Учитывай, что проект еще не окончателен, поэтому могут быть баги. С лицензией MIT ты можешь использовать его свободно, но не забывай о правилах использования общедоступных реле.
Проект Portal представляет собой сервис, который позволяет публиковать локальные приложения и API через реле, которые можно развернуть самостоятельно или использовать публичные. Это решение избавляет от необходимости настраивать перенаправление портов, изменять правила брандмауэра и заниматься настройкой DNS.
Зачем нужен Portal?
Portal создает туннель для доступа к локальным сервисам через независимые реле. Он подходит для публикации приложений, API, инструментов и агентов. Основные преимущества включают:
- Полностью открытый исходный код — ты можешь запустить свое реле с помощью одной команды, при этом не нужно никаких платных подписок или ограничений по функционалу.
- Анонимная сеть реле — ты можешь подключаться к публичным реле без необходимости создания аккаунта.
- Шифрование TLS и ECH — обеспечивает защиту трафика на уровне пользователя, а не на уровне реле.
- Обнаружение MITM — встроенная проверка соединения для обнаружения возможного вмешательства.
- Без аккаунтов и API-ключей — аутентификация происходит с помощью подписания сгенерированным локально ключом.
- Поддержка платежей x402 — возможность совершать платежи перед доступом к определенным маршрутам.
Как установить и запустить
Установка Portal достаточно проста. Вот как это сделать:
Для macOS и Linux:
curl -fsSL https://github.com/gosuda/portal-tunnel/releases/latest/download/install.sh | bash
portal expose 3000
Для Windows (PowerShell):
$ProgressPreference = 'SilentlyContinue'
irm https://github.com/gosuda/portal-tunnel/releases/latest/download/install.ps1 | iex
portal expose 3000
После запуска команда выдаст публичный HTTPS URL для твоего локального приложения.
Основные команды и примеры
Portal поддерживает множество команд для настройки различных туннелей:
portal expose 3000 --name myapp --relays https://portal.example.com --discovery=false
portal expose --name paid-app --http-route "/paid=http://127.0.0.1:3001 GET:0.01" --x402-pay-to 0x...
portal agent run --config config.toml
С полным синтаксисом команд можно ознакомиться в [CLI Reference](cmd/portal-tunnel/README.md).
Запуск собственного реле
Если ты хочешь запустить свое реле, тебе нужно выполнить следующие команды:
git clone https://github.com/gosuda/portal-tunnel
cd portal-tunnel && cp .env.example .env
docker compose up
Это позволит тебе настроить публичное развертывание с автоматизацией DNS и управлением политиками реле.
Ограничения
Хотя Portal предоставляет много возможностей, стоит учитывать некоторые ограничения. Например, требуется установка Docker для запуска своего реле, а также наличие базовых знаний в работе с командной строкой. Также необходимо следить за безопасностью, хотя проект и обеспечивает механизмы защиты, полная безопасность зависит от конфигурации.
В целом, Portal — это мощное решение для туннелирования, которое подходит как для разработчиков, так и для пользователей, которые хотят безопасно публиковать локальные сервисы.
Радар проекта: 75 из 100 — зрелый и живой проект
- Импульс 8 ≈ 16 звёзд в месяц
- Темп разработки 100 453 коммита за 12 недель
- Зрелость 86 проекту 12 месяцев, 72 релиза
- Сообщество 53 32 участника, 30 форков
- Свежесть 99 последний коммит — 1 день назад
- Быстрый старт 90 есть: команда установки, Docker, сайт/демо
- Готовность к продакшену 90 релиз v2.7.1, автосборка, тесты
- Безопасность и доверие 75 лицензия MIT, организация
- Документация 96 README 8.3 тыс. знаков, 21 раздел, папка docs
- Экосистема 49 1 подписчик на обновления, 12 тем
Как считаем
Только открытые данные GitHub на 31.10.2026, без оценок нейросети. Каждая ось — от 0 до 100, итог — среднее.
- Импульс — звёзд в день: за время наших замеров, а пока их нет — за всю жизнь проекта; 200 в день — максимум.
- Темп разработки — коммитов за последние 12 недель; 300 — максимум. Пока GitHub не досчитал статистику, ось не учитывается.
- Зрелость — возраст проекта (3 года — максимум) и число релизов (30 — максимум), поровну.
- Сообщество — участников с коммитами (200 — максимум) и форков (5000 — максимум), поровну.
- Свежесть — дней с последнего коммита: сегодня — 100, полгода и больше или архив — 0.
- Быстрый старт — в README есть команда установки, раздел «быстрый старт» или примеры использования, в репозитории — Docker и папка примеров, у проекта есть сайт или демо.
- Готовность к продакшену — релизы, версия 1.0 и выше, автосборка (GitHub Actions), тесты, лицензия, журнал изменений.
- Безопасность и доверие — открытая лицензия (своя — половина балла), политика безопасности (SECURITY.md), проект организации, правила для участников, не в архиве.
- Документация — объём и структура README, папка docs или сайт, оценка «здоровья сообщества» GitHub.
- Экосистема — звёзды (50 тыс. — максимум), подписчики на обновления (1000 — максимум), темы репозитория.
Открыть на GitHub: gosuda/portal-tunnel →
RepoRadar