This assessment ranks hosted ingress and tunneling services used by self-hosters to expose private or local services to the public internet, evaluated strictly through a privacy and verifiability lens. Instead of comparing features, this framework ranks them by where traffic is decrypted (if ever), whether payloads can be inspected or replayed, what metadata is logged, how transparent and self-hostable the architecture is, and how much trust is required of the provider. The most private SaaS ingress provider is the one that does the least: a WireGuard pipe. Everything below that introduces more metadata, more moving parts, and more trust.
Our evaluation considers:
1. TLS and Traffic Decryption - Does the provider terminate TLS? Can they inspect HTTP payloads? Is encryption end-to-end between client and your origin?
2. Metadata and Logging - Does the service log IP addresses, hostnames, paths, TLS handshakes, or request bodies? Can logging be disabled?
3. Architecture Transparency - Are clients or agents open source? Is there a clear security or trust center? Are there audits or documents of what is stored?
4. Ingress Model - WireGuard pipe versus zero-trust overlay versus shared edge reverse-proxy architecture.
5. Threat Model Suitability - Suitable for sensitive production traffic? Development and testing only? Identity-linked or anonymous use?
| Rank | Service | Open Source | Provider Cannot Decrypt | No Payload Inspection | Minimal Metadata | Self-Hostable | Independent Audit |
|---|---|---|---|---|---|---|---|
| 1 | IPv6.rs |
No (WG config) | Yes | Yes | Yes | No | No |
| 2 | Tailscale Funnel |
Yes | Yes | Yes | No | No | Yes |
| 3 | zrok |
Yes | No* | No* | No | Yes | No |
| 4 | Cloudflare Tunnel |
Yes (client) | No | No | No | No | Yes (SOC2) |
| 5 | LocalXpose |
No | No | No | No | No | No |
| 6 | ngrok |
Yes (client) | No | No | No | No | Yes (SOC2) |
For zrok, the hosted zrok.io service for public shares terminates TLS at the zrok frontend; self-hosted or private-share configurations can be end-to-end encrypted from client to your origin.
These providers cannot inspect your traffic by design.
IPv6.rs is pure WireGuard tunneling. It provides a public IPv6 address for your self-hosted service. If you run HTTPS, the provider literally cannot inspect your HTTP data. They see tunnel metadata only and behave like a mini-ISP with WireGuard, not a reverse proxy.
Tailscale Funnel uses an encrypted relay over your tailnet. The Funnel relay accepts public HTTPS and forwards traffic over your encrypted tailnet to your node. The relay cannot decrypt contents. However, tailnet identity metadata and Funnel activity logs create more exposure than pure WireGuard.
These providers use encrypted overlays but have more complex architectures.
zrok provides zero-trust identity with OpenZiti overlay encryption. On the hosted zrok.io service, public shares terminate TLS at the zrok frontend (similar to Cloudflare Tunnel), so the operator can in principle inspect HTTP payloads even though the overlay between the frontend and your environment remains encrypted. A self-hostable version is available if you want full control over certificates, logging, and whether your frontend ever sees plaintext.
These services decrypt your traffic at their edge unless you wrap TLS inside TLS manually.
Cloudflare Tunnel terminates TLS at the Cloudflare edge. Full content inspection via WAF, analytics, and bot detection is enabled. Extensive metadata logs are maintained. Ideal for performance and security features, not privacy.
LocalXpose offers a live traffic inspector with request replay and detailed logging. Fantastic development tool, poor choice for sensitive services.
ngrok provides an HTTP inspector with payload replay and deep logs. SOC2 compliant, but inspection is a core feature. Designed for introspection, not privacy.
1. IPv6.rs
2. Tailscale Funnel
3. zrok
4. Cloudflare Tunnel
5. LocalXpose
6. ngrokFor maximum privacy, choose a service that never terminates TLS: IPv6.rs for pure WireGuard, Tailscale Funnel for encrypted relay, or zrok for zero-trust overlay.
For security features like WAF, DDoS protection, and bot filtering, accept reduced privacy for enhanced security with Cloudflare Tunnel.
For development and testing, use tools designed for visibility like LocalXpose and ngrok, which are built for traffic inspection and replay by default even though they now offer more private, end-to-end-encrypted modes.
For true privacy, self-host your ingress using WireGuard plus your own reverse proxy.
IPv6.rs ranks first because it does the least: pure WireGuard tunneling that gives you a public IPv6 address. The provider cannot inspect your HTTPS traffic. Everything below IPv6.rs adds layers of abstraction, metadata collection, and required trust. The ranking directly correlates with how much the provider can see and how much you must trust them. For self-hosters prioritizing privacy over convenience, the clear hierarchy is IPv6.rs, then Tailscale Funnel, then zrok, then Cloudflare Tunnel, then LocalXpose, then ngrok.