Мне часто нужно открыть доступ к локальному стенду, вебхуки там и так далее, и раньше я всегда использовал Ngrok. По последнее время пользоваться им становится сложнее, оплатить подписку уже нельзя, а бесплатные функции всё время урезают. По этому решил найти какие есть альтернативы, желательно в России.
Так как поднимать SSH-туннели к своей VPS или какой то self-hosted мне не хотелось, да и тратить свои часы на обслуживание всего этого зоопарка снова не хочется. Всё таки SaaS сервис удобнее, а если посчитать свои часы потраченные на обслуживание self-hosted, оказывается ещё и дешевле. Плюс у SaaS решений как правило есть фичи которых не будет в SSH-туннелях.
Вообще есть целый репозиторий с альтернативами, естественно там 0 сервисов которые можно купить в РФ.
Дисклеймер: Я не рекламирую ни один из сервисов, это просто мой обзор на рынок сегодня!
И так, немного погуглив и поисследовав вопрос, составил короткий список:
Давайте разберём поподробнее, естественно сужу субьективно со своей колокольни и через призму опыта использования ngrok.
Порты в VSCODE
Ссылка: https://code.visualstudio.com/docs/editor/port-forwarding
Встроенный функционал в IDE.
Плюсы:
В принципе удобно, ничего делать не надо, сразу работает. Нажал - туннель есть, отжал - нету. Изи.
Минусы:
Только HTTP туннели, нет TCP
Нет работы с заголовками, нельзя добавить авторизацию и т.д.
Туннельная нода чёрт знает где, большая задержка
Нельзя запустить как агента в фоне, расчитана только на работу в IDE.
Нет инспектора запросов
VK Tunnel
Ссылка: https://dev.vk.com/ru/libraries/tunnel
Бесплатный сервис от VK, приложение на JS, в целом почти как порты от VSCODE.
Плюсы:
Туннельная нода в России, задержка радует
Минусы:
Только HTTP туннели, нет TCP
Для работы нужен Node.js
Нет работы с заголовками, нельзя добавить авторизацию и т.д.
Нельзя запустить как сервис в фоне (может и можно, но этого того не стоит)
Нет инспектора запросов
Tuna
Ссылка: https://tuna.am
Пожалуй лидер в списке. Нашёл написав в гугле ngrok аналог. Вообще очень похож на ngrok, я даже удивился и обрадовался когда нашёл.
Плюсы:
Туннельная нода в России, задержка радует
Клиент похож на ngrok, статичный бинарник, можно запускать как агента в фоне
Есть работа с заголовками, авторизация и прочие фишки
Есть инспектор запросов
Есть TCP тунннели
Приятная документация
Цена, всего 299 рублей в месяц
Минусы:
Для себя я их особо не нашёл, но надо что то написать. Видно что сервис новый, ещё не всё отлажено, например клиент не переподключается сам, если подключиться к VPN, приходится перезапускать. Но это вроде мелочи, хотя с ngrok я привык, что запустил агента в консоли и забыл.
xTunnel
Ссылка: https://xtunnel.ru/
Нашёл написав в гугле ngrok аналог. Сначала я нашёл его, а не tuna и даже начал пользоваться.
Плюсы:
Туннельная нода в России, задержка радует
Есть клиент, можно запустить агента в фоне
Есть TCP туннели
Цена, всего 99 рублей в месяц
Минусы:
Нет работы с заголовками, нельзя добавить авторизацию и т.д
Нет инспектора запросов
Бинарник не статический, на старых OS может не завестись
Нет документации (хотя и функционала почти нет, может и не нужна)
В целом проект выглядит заброшеным и не развивается, хотя в интернете везде про себя пишут, что убийца ngrok )
Итого
Если у вас есть заметки о подобных сервисах, пожалуйста поделитесь в коментариях, кто чем пользуется?
Комментарии (16)
ret77876
05.08.2024 11:56+1Есть ещё serveo.net. Задержка неидеальная, но очень удобно использовать
ValerkaDev Автор
05.08.2024 11:56+1Он есть в репозиторий с альтернативами, который я привёл в статье.
kellas
05.08.2024 11:56+1В процессе разработки telegram mini web app столкнулся с тем что очень желателен туннель с https и фиксированным доменом, остановился на self-hosted решении - sish
Hidden text
version: '3.8' services: router: image: valian/docker-nginx-auto-ssl environment: ALLOWED_DOMAINS: 'dev.proxy.example.com' SITES: 'dev.proxy.example.com=dev-tunnel:8888;' volumes: - ./DATA/nginx/ssl:/etc/resty-auto-ssl ports: - 443:443 - 80:80 restart: always logging: driver: json-file options: max-file: '3' max-size: '5m' # SSH tunnel # https://docs.ssi.sh/getting-started dev-tunnel: image: antoniomika/sish:latest volumes: # for access from local machine need ssh key at folder v: # ssh-keygen -t ed25519 -C "usermail@gmail.com" # cp ~/.ssh/id_ed25519.pub ./DATA/proxy/pubkeys - ./DATA/proxy/pubkeys:/pubkeys - ./DATA/proxy/keys:/keys ports: - 2222:2222 command: | --ssh-address=:2222 --http-address=:8888 --https=true --authentication-keys-directory=/pubkeys --private-keys-directory=/keys --redirect-root=false --bind-random-ports=false --bind-random-subdomains=false --bind-root-domain=true --domain=proxy.example.com restart: always logging: driver: json-file options: max-file: '3' max-size: '5m'
на локальной машине еще autossh использую чтобы само переподключалось при разрыве соединения
autossh -M 0 -p 2222 -R dev:80:localhost:3000 dev.proxy.example.com
AnthonyAxenov
05.08.2024 11:56В своё время часто использовал telebit.io, проблем не возникало, но давненько не приходилось запускать. Возможно, что-то изменилось.
ValerkaDev Автор
05.08.2024 11:56Он есть в репозиторий с альтернативами, который я привёл в статье.
Опять же или селф хостед или не в россии
eigrad
05.08.2024 11:56+1Кроме sish упомянутого на пару комментов выше, стоит глянуть на frp. У sish свой оригинальный подход, а frp более функциональный и чуть ближе к ngrok. Вот тут хорошая подборка похожих инструментов https://github.com/anderspitman/awesome-tunneling.
iv_kingmaker
Хм, как интересно. Сегодня приглашён и сразу же статья, где из всех сервисов "оптимальным" является тот, где автор является и владельцем, почти наверняка. "Ни разу не реклама")
.
ValerkaDev Автор
Если что это не мой ТГ, шерлок)
iv_kingmaker
Ой, и рисуешь как в блоге?
ValerkaDev Автор
слышал про https://miro.com/ ??
iv_kingmaker
Я ещё слышал и про другие сервисы, которые позволяют рисовать) Слишком много совпадений
ValerkaDev Автор
.