zrok is a secure internet sharing tool that enables users to share web services, files, and network resources through firewalls and NAT without requiring network configuration changes.
The tool solves the problem of securely exposing local resources to remote users or the internet without opening firewall ports or configuring port forwarding. It works by building on OpenZiti, a zero-trust network overlay that establishes encrypted connections between users. All traffic is encrypted end-to-end, and the system prioritizes peer-to-peer connections when possible. Users can share web services, files and directories, or private TCP/UDP resources, with access controlled by identity rather than IP address. The quick-start process requires only installing the tool, obtaining an account, and running an enable command before sharing becomes available.
Developers should choose this tool if they need to expose local applications or services to remote users without managing firewall rules or if they operate in environments with restrictive network policies. It suits scenarios ranging from temporary file sharing to persistent service exposure, and works across Windows, macOS, Linux, and Raspberry Pi. The tool offers both public sharing with anyone and private sharing restricted to specific zrok users. For teams wanting to avoid dependency on a hosted service, the project supports self-hosting from small personal instances to enterprise scale using a single binary deployment model. A Go SDK is available for embedding sharing capabilities directly into applications.
The project maintains active development with regular commits across its codebase. Documentation is comprehensive and includes office hours videos alongside written guides. The maintainers actively engage with self-hosting scenarios, providing detailed guides for deployment at various scales. The project accepts community contributions and maintains a build guide for developers working from source.