<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>ZTNA on VPNReview — Honest VPN &amp; Privacy Tool Tests</title>
    <link>https://vpnreview.nxtniche.com/tags/ztna/</link>
    <description>Recent content in ZTNA on VPNReview — Honest VPN &amp; Privacy Tool Tests</description>
    <generator>Hugo</generator>
    <language>en-us</language>
    <lastBuildDate>Wed, 17 Jun 2026 00:00:00 +0000</lastBuildDate>
    <atom:link href="https://vpnreview.nxtniche.com/tags/ztna/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Pangolin Review 2026: Identity-Aware VPN &amp; Reverse Proxy</title>
      <link>https://vpnreview.nxtniche.com/posts/pangolin-quick-review-2026/</link>
      <pubDate>Wed, 17 Jun 2026 00:00:00 +0000</pubDate>
      <guid>https://vpnreview.nxtniche.com/posts/pangolin-quick-review-2026/</guid>
      <description>Pangolin merges identity-aware VPN, reverse proxy, and browser-based SSH/RDP into a single self-hosted platform. Hands-on review after deploying on a $6 VPS.</description>
      <content:encoded><![CDATA[<p>If you&rsquo;re self-hosting a web app behind Nginx Proxy Manager and running a separate WireGuard VPN for team access, you&rsquo;re juggling two stacks with overlapping jobs. Look, this Pangolin VPN review covers fosrl/pangolin, an open-source project that merges both roles — identity-aware VPN, tunneled reverse proxy, and zero-trust access control — into a single self-hosted reverse proxy VPN platform on your own VPS.</p>
<p><strong>Quick Verdict:</strong> Pangolin is an open-source ZTNA platform replacing the typical multi-tool remote access stack with one control plane. It handles WireGuard-based VPN connectivity, exposes web apps through a clientless reverse proxy with SSO and custom domains, and in v1.19 added browser-based SSH, RDP, and VNC. It&rsquo;s not a Tailscale killer. But for self-hosters who want data sovereignty and a simpler stack, it&rsquo;s one of the most compelling options right now.</p>
<p><em>Disclosure: Some links in this review are affiliate links. If you sign up through them, I may earn a commission at no extra cost to you.</em></p>
<h2 id="what-makes-pangolin-different">What Makes Pangolin Different</h2>
<p>The architectural decision is hub-and-spoke. And unlike Tailscale and NetBird&rsquo;s mesh P2P model where every node connects to every other, Pangolin uses outbound-only connectors (Newt) per network segment. So no open inbound ports, no firewall holes. The control plane runs as four Docker containers: Pangolin (API/dashboard), Gerbil (tunnel management), Traefik (SSL/reverse proxy), and optional Newt connectors per site.</p>
<p>I deployed it on a $6 <a href="https://vpnreview.nxtniche.com/go/do" rel="nofollow sponsored noopener" target="_blank">DigitalOcean</a> droplet (1 vCPU, 1.5GB, Ubuntu 22.04) — new accounts get $200 credit to experiment. The installer is straightforward:</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>curl -fsSL https://static.pangolin.net/get-installer.sh | bash <span style="color:#f92672">&amp;&amp;</span> sudo ./installer
</span></span></code></pre></div><p>So the script asked for domain, admin password, and OIDC details. From SSH login to dashboard access: roughly 4 minutes. Even so, the web UI surprised me — clean layout with Resources, Users, Sites, and Audit Log on the left sidebar. No clutter, no onboarding wizard that tries to upsell you.</p>
<h2 id="identity-based-access-not-subnet-access">Identity-Based Access, Not Subnet Access</h2>
<p>And this is what sets Pangolin apart from standard VPNs. Instead of dropping users onto a flat network and letting them discover what&rsquo;s available, you grant access to specific resources — a web app at <code>app.yourdomain.com</code>, an SSH session on a specific host, or a VNC desktop in a particular site. And users authenticate via OIDC (Google, GitHub, Azure AD, or any OIDC provider), seeing only what they&rsquo;re authorized to access.</p>
<p>Tailscale&rsquo;s ACLs can approximate this, but they&rsquo;re device-based and require Tailscale on every node. Still, Pangolin&rsquo;s approach is resource-centric — the access policy lives on the server, and users don&rsquo;t need any client beyond a browser. That&rsquo;s a meaningful difference for organizations managing access across dozens of devices.</p>
<h2 id="browser-based-ssh-and-rdp-actually-work">Browser-Based SSH and RDP Actually Work</h2>
<p>Version 1.19, released June 11, 2026, added native browser-based SSH, RDP, and VNC through the dashboard. So I tested the SSH session against a headless Ubuntu server in my homelab — connected, ran <code>htop</code>, tailed a log file. Still, latency was barely noticeable. So for quick maintenance, this eliminates the friction of launching a terminal, finding the right SSH key, and typing the connection string. It Just Works — no client install required.</p>
<table>
	<thead>
			<tr>
					<th style="text-align: left">Feature</th>
					<th style="text-align: center">Pangolin</th>
					<th style="text-align: center">Tailscale</th>
					<th style="text-align: center">Firezone</th>
					<th style="text-align: center">NetBird</th>
			</tr>
	</thead>
	<tbody>
			<tr>
					<td style="text-align: left">Architecture</td>
					<td style="text-align: center">Hub-and-spoke</td>
					<td style="text-align: center">Mesh P2P</td>
					<td style="text-align: center">Gateway-based</td>
					<td style="text-align: center">Mesh P2P</td>
			</tr>
			<tr>
					<td style="text-align: left">Web app exposure</td>
					<td style="text-align: center">✅ Clientless, custom domains</td>
					<td style="text-align: center">⚠️ Funnel (paid)</td>
					<td style="text-align: center">❌ VPN only</td>
					<td style="text-align: center">❌ VPN only</td>
			</tr>
			<tr>
					<td style="text-align: left">Full self-hosting</td>
					<td style="text-align: center">✅ AGPL stack</td>
					<td style="text-align: center">❌ Headscale (community)</td>
					<td style="text-align: center">✅ Server open-source</td>
					<td style="text-align: center">✅ Self-host option</td>
			</tr>
			<tr>
					<td style="text-align: left">Browser SSH/RDP</td>
					<td style="text-align: center">✅ Native (v1.19)</td>
					<td style="text-align: center">❌</td>
					<td style="text-align: center">❌</td>
					<td style="text-align: center">❌</td>
			</tr>
			<tr>
					<td style="text-align: left">Identity-based RBAC</td>
					<td style="text-align: center">✅ Resource-centric</td>
					<td style="text-align: center">⚠️ Device-based ACLs</td>
					<td style="text-align: center">✅ Gateway policies</td>
					<td style="text-align: center">⚠️ Device-based</td>
			</tr>
			<tr>
					<td style="text-align: left">Open-source license</td>
					<td style="text-align: center">AGPL-3.0</td>
					<td style="text-align: center">Mixed (closed coordinator)</td>
					<td style="text-align: center">Apache 2.0</td>
					<td style="text-align: center">BSD 3-Clause</td>
			</tr>
			<tr>
					<td style="text-align: left">GitHub stars</td>
					<td style="text-align: center">~21,000</td>
					<td style="text-align: center">~22,000</td>
					<td style="text-align: center">~7,500</td>
					<td style="text-align: center">~3,500</td>
			</tr>
	</tbody>
</table>
<h2 id="what-to-watch-out-for">What to Watch Out For</h2>
<p>Pangolin is young — initial release was September 2024. It has 7,207 commits and very active monthly releases. Yet it doesn&rsquo;t have the years of real-world deployment that Tailscale or WireGuard proper have accumulated. So I&rsquo;d recommend running it in a staging environment before putting it in front of a production team.</p>
<p>The Community Edition is AGPL-3.0, free for organizations under $100K revenue. Enterprise features (advanced audit logging, SAML SSO) need a commercial license. And pricing is behind a &ldquo;Contact Sales&rdquo; wall — not great for self-hosters who&rsquo;d like the cost upfront.</p>
<p>Then there&rsquo;s the self-hosting trade-off: you handle updates, backups, and uptime. That&rsquo;s the natural cost against managed services like Tailscale where the coordination server is handled for you. If self-hosting isn&rsquo;t the right fit, a managed VPN like <a href="https://vpnreview.nxtniche.com/go/protonvpn" rel="nofollow sponsored noopener" target="_blank">ProtonVPN</a> handles infrastructure and updates while you focus on using the service.</p>
<h2 id="bottom-line">Bottom Line</h2>
<p>Pangolin is one of the most interesting self-hosted infrastructure projects in the ZTNA space right now. It fills a genuine gap — consolidating VPN and reverse proxy into one identity-aware platform. The v1.19 browser-based SSH/RDP feature alone justifies a look. If you&rsquo;re a homelab enthusiast or IT team already running a VPS, deploy it on a $6 <a href="https://vpnreview.nxtniche.com/go/do" rel="nofollow sponsored noopener" target="_blank">DigitalOcean</a> or <a href="https://vpnreview.nxtniche.com/go/vultr" rel="nofollow sponsored noopener" target="_blank">Vultr</a> instance and see if it simplifies your stack.</p>
<!-- BEGIN AFFILIATE LINKS (generated by ads-center) -->
<div class="affiliate-block">
  <p><em>Disclosure: Some links below are affiliate links. If you sign up through them, I may earn a commission at no extra cost to you.</em></p>
  <ul>
    <li><a href="https://vpnreview.nxtniche.com/go/do" rel="nofollow sponsored noopener" target="_blank">DigitalOcean</a> — $200 credit for new users, perfect for deploying Pangolin</li>
    <li><a href="https://vpnreview.nxtniche.com/go/vultr" rel="nofollow sponsored noopener" target="_blank">Vultr</a> — starts at $6/mo, deploy Pangolin in 30+ global regions</li>
    <li><a href="https://vpnreview.nxtniche.com/go/protonvpn" rel="nofollow sponsored noopener" target="_blank">ProtonVPN</a> — privacy-first managed VPN, ideal if you'd rather not self-host</li>
  </ul>
</div>
<!-- END AFFILIATE LINKS -->
]]></content:encoded>
    </item>
  </channel>
</rss>
