Если нужна именно модель Tunnel (сервис не публикуется наружу, наружу идёт исходящее соединение), но на своей инфраструктуре и без зависимости от зарубежного облака — смотрите в сторону self-hosted ZTNA:
1. OpenZiti — открытая реализация: контроллер + роутеры на ваших серверах (VPS у любого российского хостера, bare-metal, для дома хватит Raspberry Pi). Доступ выдаётся к конкретному сервису, по identity и на срок. Клиенты под Windows/macOS/Linux/Android/iOS плюс headless-туннелер для серверов. Конфиги и сертификаты ваши — перенос на другую площадку это переезд конфигов, а не миграция с вендора.
2. NetBird — свой control plane, в основе WireGuard. Старт проще, но гранулярность «по сервисам» достигается ACL-правилами, а не моделью доступа.
3. Headscale — своя координация для Tailscale-клиентов: минимум работы, но остаётесь на клиентах вендора.
4. WireGuard/OpenVPN на своём VPS + reverse-proxy — дёшево и привычно, но: доступ «в сеть», эндпоинт виден из интернета, ротация ключей и аудит руками.
5. Бастион (VPS + SSH ProxyJump) — достаточно для 1–2 админов, не масштабируется на команду и не-технических сотрудников.
Выбор по задаче: «несколько сервисов наружу без публикации портов» — OpenZiti/NetBird; «два админа по SSH» — бастион; «нужны сроки доступа, подрядчики, аудит» — только ZTNA-класс.