Share anything, anywhere, instantly. Enterprise reliability. No firewall changes. No port forwarding. No hassle.
zrok
lets you securely share web services, files, and network resources with anyone—whether they're across the internet or your private network. Built on zero-trust networking, it works through firewalls and NAT without requiring any network configuration changes.
Get sharing in under 2 minutes:
- Install zrok for your platform
- Get an account:
zrok invite
(use the free zrok.io service) - Enable sharing:
zrok enable
That's it! Now you can share anything:
# Share a web service publicly
$ zrok share public localhost:8080
# Share files as a network drive
$ zrok share public --backend-mode drive ~/Documents
# Share privately with other zrok users
$ zrok share private localhost:3000
Instantly make local web apps accessible over the internet:
$ zrok share public localhost:8080
Turn any folder into a shareable network drive:
$ zrok share public --backend-mode drive ~/Repos/zrok
Share TCP/UDP services securely with other zrok users—no public internet exposure.
- Zero Configuration: Works through firewalls, NAT, and corporate networks
- Secure by Default: End-to-end encryption with zero-trust architecture
- Public & Private Sharing: Share with anyone or just specific users
- Multiple Protocols: HTTP/HTTPS, TCP, UDP, and file sharing
- Cross-Platform: Windows, macOS, Linux, and Raspberry Pi
- Self-Hostable: Run your own zrok service instance
zrok
is built on OpenZiti, a programmable zero-trust network overlay. This means:
- No inbound connectivity required: Works from behind firewalls and NAT
- End-to-end encryption: All traffic is encrypted, even from zrok servers
- Peer-to-peer connections: Direct connections between users when possible
- Identity-based access: Share with specific users, not IP addresses
Embed zrok
sharing into your applications with our Go SDK:
// Create a share
shr, err := sdk.CreateShare(root, &sdk.ShareRequest{
BackendMode: sdk.TcpTunnelBackendMode,
ShareMode: sdk.PrivateShareMode,
})
// Accept connections
listener, err := sdk.NewListener(shr.Token, root)
📖 Read the SDK guide for complete examples.
Run your own zrok
service—from Raspberry Pi to enterprise scale:
- Single binary contains everything you need
- Scales from small personal instances to large public services
- Built on the same codebase as the public
zrok.io
service
Ready to start sharing? Get started with zrok →