У многих из нас есть домашний сервер или мощный ПК с Ubuntu. Хочется дать ему полезные функции: свой VPN, файловое хранилище, API для Telegram-бота или просто удалённый доступ (SSH). Но «белый» IP у провайдера стоит денег, а проброс портов на роутере — это либо больно, либо опасно.
Знакомьтесь: zrok — open-source туннелист, который делает ваш локальный сервер доступным из интернета. И при этом не светит токеном в коде, как ngrok.
Почему zrok, а не ngrok или Cloudflare Tunnel?
· Бесплатно без ограничений для self-hosted версии. Ставите свой сервер — получаете неограниченный трафик и число подключений.
· TCP и UDP. Пробрасываете не только HTTP, но и SSH (22), Minecraft (25565), свой DNS (53).
· Приватные туннели. Можно открыть доступ только сотрудникам или партнёрам — через одноразовые приглашения.
· Свой домен. На поддоменах *.ваш-сервер.ru или даже корневом — с помощью reverse proxy.
· Open Source на Go. Никаких «вдруг отключат бесплатный тариф».
Сценарии: чем вы сможете пользоваться сразу
1. SSH для удалённой работы
Опубликовали порт 22 — и зашли с ноутбука, поезда или кафе без настройки VPN.
2. Веб-сервер для своих сервисов
Домашний Nextcloud, Grafana, Jupyter Notebook, админка бизнес-бота. Доступны по HTTPS (zrok умеет LetsEncrypt).
3. Временные демо для клиентов
Хотите показать макет сайта? Одной командой zrok share public 3000 — ссылка готова через 3 секунды. После демо ссылку отзываете.
4. API для интеграций
Свой OAuth-прокси, вебхуки от Telegram, Stripe. zrok сохраняет адрес постоянным (если использовать reserved).
5. Файловый сервер (встроенный)
zrok share public /home/user/share — доступ по WebDAV с паролем.
Как настроить свою инстанцию (self-hosted)
Пусть звучит сложно, но это три шага:
1. Ставим zrok на сервер с публичным IP (маленький VPS за 400 ₽ или домашний сервер с белым адресом).
2. Запускаем контроллер и шлюз одной командой zrok controller + zrok edge router.
3. На клиенте (вашей домашней Ubuntu):
export ZROK_API_ENDPOINT="https://your-vps:8080"
zrok enable (токен получаете на своём сервере)
zrok share public --backend-mode tcpTunnel 22 — и SSH готов!
Для постоянного доступа используйте reserved туннели — они не меняют адрес при перезапуске.
Безопасность: то, о чём молчат другие
· Не оставляйте публичный SSH без ключа. zrok не шифрует трафик от клиента до вашего сервера (используйте SSH + ключи).
· Лучше развернуть свой сервер zrok с HTTPS и фаерволом.
· Для приватных сервисов ставьте zrok share reserved --access-grants="email@partner.ru".
Реальный кейс — моя практика
У меня дома стоит старый ноутбук с Ubuntu. На нём:
· Gitea (Git-сервер)
· Jenkins для сборки
· Postgres для тестов
С помощью zrok (мой VPS за 350 ₽) я открыл только нужные порты. Дебилы не брутфорсят SSH, потому что порт нестандартный и без пароля не войти. Весь трафик — через мой домен dev.mycompany.ru. За год ни одного взлома, хотя раньше на прямом порту fail2ban банил по 500 IP в день.
Что в итоге
zrok — это инструмент для тех, кто хочет иметь свой личный интернет, а не арендовать дорогой VPS для каждого сервиса. Он даёт контроль, бесплатность и гибкость. А если не хотите возиться с сервером — пользуйтесь публичным хабом zrok.io (только не для секретных данных).
Попробуйте сегодня: установите на Ubuntu curl -sSL https://get.zrok.io | bash, получите токен на zrok.io и опубликуйте локальный сайт за 10 секунд. Вы удивитесь, как просто обладать своим кусочком интернета.
А вы уже туннелируете что-то с домашнего сервера? Каким инструментом пользуетесь? Поделитесь в комментариях — сравним опыт.