CINXE.COM
Blog | Tailscale
<!DOCTYPE html><html><head><meta charSet="utf-8"/><title>Blog | Tailscale</title><meta name="robots" content="index,follow"/><meta name="description" content="Updates on innovations and the state of virtual private networks - globally, as well as Tailscale product and company news."/><meta property="og:title" content="Blog | Tailscale"/><meta property="og:description" content="Updates on innovations and the state of virtual private networks - globally, as well as Tailscale product and company news."/><meta property="og:url" content="https://tailscale.com/blog"/><meta property="og:image" content="https://tailscale.com/api/og-image?id=6ebebdd7-d862-4b40-b9aa-ce389f0471ca"/><link rel="canonical" href="https://tailscale.com/blog"/><link rel="alternate" type="application/rss+xml" href="https://tailscale.com/blog/index.xml"/><link rel="alternate" type="application/rss+xml" href="https://tailscale.com/changelog/index.xml"/><link rel="alternate" type="application/rss+xml" href="https://tailscale.com/security-bulletins/index.xml"/><meta name="viewport" content="initial-scale=1.0, width=device-width, maximum-scale=1"/><link rel="icon" href="/favicon.png" type="image/png"/><link rel="icon" href="/favicon.svg" type="image/svg+xml"/><meta name="msapplication-TileColor" content="#492847"/><meta name="theme-color" content="#ffffff"/><script data-cfasync="false" async="" src="https://client-registry.mutinycdn.com/personalize/client/2717960877f6aef7.js"></script><script async="" src="https://bwa.marketplace.awsstatic.com/assets/partner.js"></script><meta name="twitter:card" content="summary_large_image"/><meta name="twitter:title" content="Blog | Tailscale"/><meta name="twitter:image" content="https://tailscale.com/api/og-image?id=6ebebdd7-d862-4b40-b9aa-ce389f0471ca"/><meta name="twitter:description" content="Updates on innovations and the state of virtual private networks - globally, as well as Tailscale product and company news."/><meta name="twitter:site" content="@tailscale"/><meta name="next-head-count" content="24"/><link rel="preload" href="/_next/static/media/97a52bce187043ec-s.p.woff2" as="font" type="font/woff2" crossorigin="anonymous" data-next-font="size-adjust"/><link rel="preload" href="/_next/static/media/a34f9d1faa5f3315-s.p.woff2" as="font" type="font/woff2" crossorigin="anonymous" data-next-font="size-adjust"/><link rel="preload" href="/_next/static/css/767f575fd83c0436.css" as="style"/><link rel="stylesheet" href="/_next/static/css/767f575fd83c0436.css" data-n-g=""/><link rel="preload" href="/_next/static/css/9eee414ec9ffd447.css" as="style"/><link rel="stylesheet" href="/_next/static/css/9eee414ec9ffd447.css" data-n-p=""/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/_next/static/chunks/polyfills-42372ed130431b0a.js"></script><script src="/_next/static/chunks/webpack-404272c67fa5cfdf.js" defer=""></script><script src="/_next/static/chunks/framework-2f437cbb805415a5.js" defer=""></script><script src="/_next/static/chunks/main-ff41db13914e2a8f.js" defer=""></script><script src="/_next/static/chunks/pages/_app-8a75dc6de44fbc1d.js" defer=""></script><script src="/_next/static/chunks/3584-081985ce349769b0.js" defer=""></script><script src="/_next/static/chunks/1604-484ff9654ebda357.js" defer=""></script><script src="/_next/static/chunks/8795-8f725cdc513b97c8.js" defer=""></script><script src="/_next/static/chunks/6551-1e650256e52a9b6e.js" defer=""></script><script src="/_next/static/chunks/9643-21e01f9b446b6c94.js" defer=""></script><script src="/_next/static/chunks/2850-22074eaf4aa8a88a.js" defer=""></script><script src="/_next/static/chunks/5734-84473b2aac829c35.js" defer=""></script><script src="/_next/static/chunks/pages/blog-34339bcd553e5c7f.js" defer=""></script><script src="/_next/static/vMenGf5kagsQzFAbLyaPA/_buildManifest.js" defer=""></script><script src="/_next/static/vMenGf5kagsQzFAbLyaPA/_ssgManifest.js" defer=""></script><style id="__jsx-1535044592">:root{--font-inter:'__Inter_81dec9', '__Inter_Fallback_81dec9';--font-mdio:'__MDIOFont_8d6c39', '__MDIOFont_Fallback_8d6c39'}</style></head><body><div id="__next"><div class="z-[20000] flex min-h-[40px] w-full items-center justify-center p-2 px-10 text-center bg-heading-black text-white"><a class="group flex flex-wrap justify-center gap-x-4 text-sm tracking-tight" href="https://tailscale.com/events-webinars/zero-trust-series-part-two">Upcoming Webinar: Least Privileged Access<span class="font-bold underline group-hover:no-underline">Sign up now</span></a></div><header class="left-0 right-0 top-0 z-[100] h-[60px] transition-colors duration-300 xl-small:h-[66px] sticky bg-transparent"><div class="is-wide container flex items-center justify-between py-4 xl-small:py-3"><div class="flex gap-[35px]"><a class="w-[110px] transition-colors duration-200 text-heading-black" title="Homepage" href="/"><svg class="transition-colors duration-200 " width="100%" height="100%" viewBox="0 0 110 20" fill="none" xmlns="http://www.w3.org/2000/svg"><ellipse cx="2.44719" cy="10.1796" rx="2.44719" ry="2.44128" fill="#1F1E1E"></ellipse><ellipse cx="9.79094" cy="10.1796" rx="2.44719" ry="2.44128" fill="#1F1E1E"></ellipse><ellipse opacity="0.2" cx="2.44719" cy="17.5077" rx="2.44719" ry="2.44128" fill="#1F1E1E"></ellipse><ellipse opacity="0.2" cx="17.1269" cy="17.5077" rx="2.44719" ry="2.44128" fill="#1F1E1E"></ellipse><ellipse cx="9.79094" cy="17.5077" rx="2.44719" ry="2.44128" fill="#1F1E1E"></ellipse><ellipse cx="17.1269" cy="10.1796" rx="2.44719" ry="2.44128" fill="#1F1E1E"></ellipse><ellipse opacity="0.2" cx="2.44719" cy="2.85924" rx="2.44719" ry="2.44128" fill="#1F1E1E"></ellipse><ellipse opacity="0.2" cx="9.79094" cy="2.85924" rx="2.44719" ry="2.44128" fill="#1F1E1E"></ellipse><ellipse opacity="0.2" cx="17.1269" cy="2.85924" rx="2.44719" ry="2.44128" fill="#1F1E1E"></ellipse><path d="M34.3979 18.458C35.0907 18.458 35.6536 18.3933 36.3248 18.2637V15.7584C35.9134 15.9096 35.4588 15.9528 35.0258 15.9528C33.965 15.9528 33.5753 15.4344 33.5753 14.441V9.34402H36.3248V6.83875H33.5753V3.12403H30.5443V6.83875H28.5742V9.34402H30.5443V14.7217C30.5443 17.0974 31.8 18.458 34.3979 18.458Z" fill="#1F1E1E"></path><path d="M41.2747 18.458C42.8984 18.458 43.9809 17.9181 44.5222 17.0758C44.5655 17.443 44.6954 17.9397 44.8686 18.2421H47.5964C47.4449 17.7237 47.3366 16.903 47.3366 16.3631V10.4455C47.3366 8.005 45.583 6.62277 42.617 6.62277C40.3654 6.62277 38.6118 7.46507 37.6376 8.69611L39.3696 10.4023C40.149 9.5384 41.1448 9.08486 42.3572 9.08486C43.8294 9.08486 44.4789 9.58159 44.4789 10.3159C44.4789 10.9422 44.0459 11.3742 41.7077 11.3742C39.4562 11.3742 37.183 12.3028 37.183 14.8945C37.183 17.2918 38.9149 18.458 41.2747 18.458ZM41.8809 16.1687C40.7118 16.1687 40.1706 15.672 40.1706 14.7865C40.1706 14.009 40.8201 13.4907 41.9026 13.4907C43.6345 13.4907 44.1108 13.3827 44.4789 13.0155V13.9442C44.4789 15.1753 43.4397 16.1687 41.8809 16.1687Z" fill="#1F1E1E"></path><path d="M49.3069 5.39173H52.4677V2.5625H49.3069V5.39173ZM49.3718 18.2421H52.4028V6.83875H49.3718V18.2421Z" fill="#1F1E1E"></path><path d="M54.6109 18.2421H57.6418V2.90805H54.6109V18.2421Z" fill="#1F1E1E"></path><path d="M63.9416 18.458C67.2757 18.458 68.986 16.7087 68.986 14.8729C68.986 13.2099 68.1417 11.9789 65.3705 11.4821C63.4221 11.1366 62.2097 10.7046 62.2097 10.0351C62.2097 9.45201 62.9025 9.04166 64.0715 9.04166C65.1107 9.04166 65.9767 9.38722 66.6262 10.1431L68.553 8.52333C67.5788 7.31389 65.9767 6.62277 64.0715 6.62277C61.1489 6.62277 59.3303 8.17777 59.3303 10.0783C59.3303 12.1517 61.2354 13.0803 63.2922 13.4475C65.0025 13.7499 65.9551 14.0738 65.9551 14.8081C65.9551 15.4344 65.2839 15.9528 64.0066 15.9528C62.7509 15.9528 61.7767 15.3696 61.322 14.5058L58.7674 15.7152C59.3952 17.2702 61.5385 18.458 63.9416 18.458Z" fill="#1F1E1E"></path><path d="M75.7621 18.458C77.9271 18.458 79.4859 17.5942 80.6549 15.6504L78.2302 14.4194C77.7755 15.3265 77.0395 15.9528 75.7621 15.9528C73.8353 15.9528 72.7961 14.3978 72.7961 12.5188C72.7961 10.6399 73.9003 9.12805 75.7621 9.12805C76.9312 9.12805 77.7106 9.75437 78.1652 10.7046L80.6116 9.40882C79.7889 7.61625 78.1652 6.62277 75.7621 6.62277C71.8003 6.62277 69.7652 9.5168 69.7652 12.5188C69.7652 15.78 72.2333 18.458 75.7621 18.458Z" fill="#1F1E1E"></path><path d="M85.4829 18.458C87.1067 18.458 88.1891 17.9181 88.7304 17.0758C88.7737 17.443 88.9036 17.9397 89.0768 18.2421H91.8046C91.6531 17.7237 91.5448 16.903 91.5448 16.3631V10.4455C91.5448 8.005 89.7912 6.62277 86.8252 6.62277C84.5737 6.62277 82.8201 7.46507 81.8458 8.69611L83.5778 10.4023C84.3572 9.5384 85.353 9.08486 86.5654 9.08486C88.0376 9.08486 88.6871 9.58159 88.6871 10.3159C88.6871 10.9422 88.2541 11.3742 85.9159 11.3742C83.6644 11.3742 81.3912 12.3028 81.3912 14.8945C81.3912 17.2918 83.1231 18.458 85.4829 18.458ZM86.0891 16.1687C84.9201 16.1687 84.3788 15.672 84.3788 14.7865C84.3788 14.009 85.0283 13.4907 86.1108 13.4907C87.8427 13.4907 88.319 13.3827 88.6871 13.0155V13.9442C88.6871 15.1753 87.6479 16.1687 86.0891 16.1687Z" fill="#1F1E1E"></path><path d="M93.3263 18.2421H96.3573V2.90805H93.3263V18.2421Z" fill="#1F1E1E"></path><path d="M103.631 18.458C105.861 18.458 107.658 17.5726 108.654 15.996L106.359 14.5274C105.753 15.4776 104.952 15.996 103.631 15.996C102.138 15.996 101.055 15.1753 100.774 13.5771H109.39V12.5188C109.39 9.5168 107.55 6.62277 103.61 6.62277C99.8643 6.62277 97.8293 9.5384 97.8293 12.5404C97.8293 16.8167 101.055 18.458 103.631 18.458ZM100.882 11.2014C101.358 9.75437 102.354 9.08486 103.675 9.08486C105.168 9.08486 106.078 9.97034 106.381 11.2014H100.882Z" fill="#1F1E1E"></path></svg></a><nav class="relative hidden lg:gap-6 xl-small:flex"><div class="fixed bottom-0 left-0 right-0 z-[90] h-screen w-full transition duration-200 pointer-events-none opacity-0 top-[120px] bg-transparent"></div><div role="button" aria-haspopup="true" tabindex="0" class="group relative text-[14px] font-medium leading-normal tracking-[-0.28px] transition-colors duration-300 text-heading-black/80 hover:text-heading-black/100" data-track="Link Clicked" data-track-properties="{"label": "Product"}"><span>Product</span><div class="absolute bottom-[-6px] left-[25%] right-0 z-[100] flex h-[3px] w-[50%] items-center justify-center rounded-[5px] opacity-0 group-hover:opacity-100 bg-heading-black/80"></div></div><div role="button" aria-haspopup="true" tabindex="0" class="group relative text-[14px] font-medium leading-normal tracking-[-0.28px] transition-colors duration-300 text-heading-black/80 hover:text-heading-black/100" data-track="Link Clicked" data-track-properties="{"label": "Solutions"}"><span>Solutions</span><div class="absolute bottom-[-6px] left-[25%] right-0 z-[100] flex h-[3px] w-[50%] items-center justify-center rounded-[5px] opacity-0 group-hover:opacity-100 bg-heading-black/80"></div></div><a class="group relative text-[14px] font-medium leading-normal tracking-[-0.28px] transition-colors duration-300 text-heading-black/80 hover:text-heading-black/100" data-track="Link Clicked" data-track-properties="{"label": "Enterprise"}" href="/enterprise"><span>Enterprise</span><div class="absolute bottom-[-6px] left-[25%] right-0 z-[100] flex h-[3px] w-[50%] items-center justify-center rounded-[5px] opacity-0 group-hover:opacity-100 bg-heading-black/80"></div></a><a class="group relative text-[14px] font-medium leading-normal tracking-[-0.28px] transition-colors duration-300 text-heading-black/80 hover:text-heading-black/100" data-track="Link Clicked" data-track-properties="{"label": "Customers"}" href="/customers"><span>Customers</span><div class="absolute bottom-[-6px] left-[25%] right-0 z-[100] flex h-[3px] w-[50%] items-center justify-center rounded-[5px] opacity-0 group-hover:opacity-100 bg-heading-black/80"></div></a><a class="group relative text-[14px] font-medium leading-normal tracking-[-0.28px] transition-colors duration-300 text-heading-black/80 hover:text-heading-black/100" data-track="Link Clicked" data-track-properties="{"label": "Docs"}" href="/kb/1017/install"><span>Docs</span><div class="absolute bottom-[-6px] left-[25%] right-0 z-[100] flex h-[3px] w-[50%] items-center justify-center rounded-[5px] opacity-0 group-hover:opacity-100 bg-heading-black/80"></div></a><a class="group relative text-[14px] font-medium leading-normal tracking-[-0.28px] transition-colors duration-300 text-heading-black/80 hover:text-heading-black/100" data-track="Link Clicked" data-track-properties="{"label": "Blog"}" href="/blog"><span>Blog</span><div class="absolute bottom-[-6px] left-[25%] right-0 z-[100] flex h-[3px] w-[50%] items-center justify-center rounded-[5px] opacity-0 group-hover:opacity-100 bg-heading-black/80"></div></a><a class="group relative text-[14px] font-medium leading-normal tracking-[-0.28px] transition-colors duration-300 text-heading-black/80 hover:text-heading-black/100" data-track="Link Clicked" data-track-properties="{"label": "Pricing"}" href="/pricing"><span>Pricing</span><div class="absolute bottom-[-6px] left-[25%] right-0 z-[100] flex h-[3px] w-[50%] items-center justify-center rounded-[5px] opacity-0 group-hover:opacity-100 bg-heading-black/80"></div></a></nav></div><div class="hidden xl-small:flex xl-small:items-center xl-small:gap-[25px]"><a class="t-14 font-medium transition-colors duration-300 text-heading-black/80 hover:text-gray-1000" data-track="Link Clicked" data-track-properties="{"label": "Download"}" href="/download">Download</a><a class="t-14 font-medium transition-colors duration-300 text-heading-black/80 hover:text-gray-1000" data-track="Link Clicked" data-track-properties="{"label": "Log in"}" href="https://login.tailscale.com/welcome">Log in</a><a class="t-14 font-medium transition-colors duration-300 text-heading-black/80 hover:text-gray-1000" data-track="Link Clicked" data-track-properties="{"label": "Contact sales"}" href="/contact/sales">Contact sales</a><a data-track="Link Clicked" data-track-properties="{"label": Get started - it's free!}" href="https://login.tailscale.com/start"><div class="inline-flex shrink-0 border transition-colors duration-200 w-full xs:w-auto items-center justify-center text-center relative focus:outline-none group transition-all overflow-hidden font-body font-medium rounded-lg group gap-[11px] py-2 px-[17px] leading-[1.46] tracking-[-0.16px] transition-colors duration-300 bg-heading-black border-heading-black text-white hover:bg-gray-900 hover:border-gray-900 "><div>Get started - it's free!</div></div></a></div><button type="button" aria-label="Open Menu" class="flex xl-small:hidden"><svg width="55" height="30" viewBox="0 0 55 30" fill="none" xmlns="http://www.w3.org/2000/svg"><rect class="fill-gray-900" x="0.5" y="0.5" width="54" height="29" rx="5.5"></rect><line class="origin-center transition duration-300 rotate-0" x1="17" y1="11.5" x2="38" y2="11.5" stroke="white"></line><line class="origin-center transition duration-300 rotate-0" x1="17" y1="17.5" x2="38" y2="17.5" stroke="white"></line><rect x="0.5" y="0.5" width="54" height="29" rx="5.5" stroke="#1F1E1E"></rect></svg></button></div></header><div class="fixed inset-0 z-[90] h-full w-full overflow-auto bg-white px-5 pb-20 pt-24 transition-opacity duration-200 will-change-[opacity] xl-small:hidden pointer-events-none opacity-0"><div class="space-y-[22px]"><div class="relative overflow-hidden border-b border-stroke-gray pb-6 "><div class="t-20 flex w-full items-center justify-between font-medium "><span>Product</span><span class="flex h-[22px] w-[22px] items-center justify-center rounded-full text-gray-1000 transition-transform duration-300 rotate-90 bg-gray-900 text-white"><svg width="10" height="10" viewBox="0 0 10 10" fill="none" xmlns="http://www.w3.org/2000/svg"><path fill-rule="evenodd" clip-rule="evenodd" d="M5.83344 7.82482L8.83656 4.99835L5.83344 2.17188L5.24469 2.72658L7.24156 4.60599H1.16406V5.3907H7.24156L5.24469 7.27011L5.83344 7.82482Z" fill="currentColor"></path></svg></span></div><div class="flex flex-col transition duration-300 will-change-[height] h-0 opacity-0"><div class="left-[-110px] top-[57px] z-[100] flex flex-col justify-between gap-8 rounded-2xl bg-white py-[30px] will-change-transform xl-small:absolute xl-small:flex-row xl-small:gap-[50px] xl-small:border xl-small:px-[30px] xl:left-[-40px]" style="opacity:0"><div class="flex-1 lg:min-w-[266px]"><div class="t-14 relative z-[10] mb-2 text-gray-500 lg:mb-[15px] lg:ml-3">Meet Tailscale</div><ul><li class="group relative whitespace-nowrap"><a class="relative z-[10] inline-block w-full rounded-lg px-1 py-2 hover:bg-gray-50 lg:p-[12px]" data-track="Link Clicked" data-track-properties="{"label": "How it works"}" href="/blog/how-tailscale-works"><div class="flex items-center gap-2"><div class="t-16 relative z-[10] text-heading-black">How it works</div></div></a></li><li class="group relative whitespace-nowrap"><a class="relative z-[10] inline-block w-full rounded-lg px-1 py-2 hover:bg-gray-50 lg:p-[12px]" data-track="Link Clicked" data-track-properties="{"label": "Why Tailscale"}" href="/why-tailscale"><div class="flex items-center gap-2"><div class="t-16 relative z-[10] text-heading-black">Why Tailscale</div></div></a></li><li class="group relative whitespace-nowrap"><a class="relative z-[10] inline-block w-full rounded-lg px-1 py-2 hover:bg-gray-50 lg:p-[12px]" data-track="Link Clicked" data-track-properties="{"label": "WireGuard® for Enterprises"}" href="/wireguard-vpn"><div class="flex items-center gap-2"><div class="t-16 relative z-[10] text-heading-black">WireGuard® for Enterprises</div></div></a></li><li class="group relative whitespace-nowrap"><a class="relative z-[10] inline-block w-full rounded-lg px-1 py-2 hover:bg-gray-50 lg:p-[12px]" data-track="Link Clicked" data-track-properties="{"label": "Bring Tailscale to Work"}" href="/bring-tailscale-to-work"><div class="flex items-center gap-2"><div class="t-16 relative z-[10] text-heading-black">Bring Tailscale to Work</div></div></a></li></ul></div><div class="flex-1 lg:min-w-[266px]"><div class="t-14 relative z-[10] mb-2 text-gray-500 lg:mb-[15px] lg:ml-3">Explore</div><ul><li class="group relative whitespace-nowrap"><a class="relative z-[10] inline-block w-full rounded-lg px-1 py-2 hover:bg-gray-50 lg:p-[12px]" data-track="Link Clicked" data-track-properties="{"label": "Integrations"}" href="/integrations"><div class="flex items-center gap-2"><div class="t-16 relative z-[10] text-heading-black">Integrations</div></div></a></li><li class="group relative whitespace-nowrap"><a class="relative z-[10] inline-block w-full rounded-lg px-1 py-2 hover:bg-gray-50 lg:p-[12px]" data-track="Link Clicked" data-track-properties="{"label": "Features"}" href="/features"><div class="flex items-center gap-2"><div class="t-16 relative z-[10] text-heading-black">Features</div></div></a></li><li class="group relative whitespace-nowrap"><a class="relative z-[10] inline-block w-full rounded-lg px-1 py-2 hover:bg-gray-50 lg:p-[12px]" data-track="Link Clicked" data-track-properties="{"label": "Compare Tailscale"}" href="/compare"><div class="flex items-center gap-2"><div class="t-16 relative z-[10] text-heading-black">Compare Tailscale</div></div></a></li><li class="group relative whitespace-nowrap"><a class="relative z-[10] inline-block w-full rounded-lg px-1 py-2 hover:bg-gray-50 lg:p-[12px]" data-track="Link Clicked" data-track-properties="{"label": "Community Projects"}" href="/community/community-projects"><div class="flex items-center gap-2"><div class="t-16 relative z-[10] text-heading-black">Community Projects</div></div></a></li><li class="group relative whitespace-nowrap"><a class="relative z-[10] inline-block w-full rounded-lg px-1 py-2 hover:bg-gray-50 lg:p-[12px]" data-track="Link Clicked" data-track-properties="{"label": "Partnerships"}" href="/partnerships"><div class="flex items-center gap-2"><div class="t-16 relative z-[10] text-heading-black">Partnerships</div></div></a></li></ul></div></div></div></div><div class="relative overflow-hidden border-b border-stroke-gray pb-6 "><div class="t-20 flex w-full items-center justify-between font-medium "><span>Solutions</span><span class="flex h-[22px] w-[22px] items-center justify-center rounded-full text-gray-1000 transition-transform duration-300 rotate-90 bg-gray-900 text-white"><svg width="10" height="10" viewBox="0 0 10 10" fill="none" xmlns="http://www.w3.org/2000/svg"><path fill-rule="evenodd" clip-rule="evenodd" d="M5.83344 7.82482L8.83656 4.99835L5.83344 2.17188L5.24469 2.72658L7.24156 4.60599H1.16406V5.3907H7.24156L5.24469 7.27011L5.83344 7.82482Z" fill="currentColor"></path></svg></span></div><div class="flex flex-col transition duration-300 will-change-[height] h-0 opacity-0"><div class="left-[-110px] top-[57px] z-[100] flex flex-col justify-between gap-8 rounded-2xl bg-white py-[30px] will-change-transform xl-small:absolute xl-small:flex-row xl-small:gap-[50px] xl-small:border xl-small:px-[30px] xl:left-[-40px]" style="opacity:0"><div class="flex-1 lg:min-w-[266px]"><div class="t-14 relative z-[10] mb-2 text-gray-500 lg:mb-[15px] lg:ml-3">By use-case</div><ul><li class="group relative whitespace-nowrap"><a class="relative z-[10] inline-block w-full rounded-lg px-1 py-2 hover:bg-gray-50 lg:p-[12px]" data-track="Link Clicked" data-track-properties="{"label": "Remote Access"}" href="/use-cases/remote-access"><div class="flex items-center gap-2"><div class="t-16 relative z-[10] text-heading-black">Remote Access</div></div></a></li><li class="group relative whitespace-nowrap"><a class="relative z-[10] inline-block w-full rounded-lg px-1 py-2 hover:bg-gray-50 lg:p-[12px]" data-track="Link Clicked" data-track-properties="{"label": "Site-to-site Networking"}" href="/use-cases/site-to-site-networking"><div class="flex items-center gap-2"><div class="t-16 relative z-[10] text-heading-black">Site-to-site Networking</div></div></a></li><li class="group relative whitespace-nowrap"><a class="relative z-[10] inline-block w-full rounded-lg px-1 py-2 hover:bg-gray-50 lg:p-[12px]" data-track="Link Clicked" data-track-properties="{"label": "Multi-Cloud Networking"}" href="/use-cases/multi-cloud-networking"><div class="flex items-center gap-2"><div class="t-16 relative z-[10] text-heading-black">Multi-Cloud Networking</div></div></a></li><li class="group relative whitespace-nowrap"><a class="relative z-[10] inline-block w-full rounded-lg px-1 py-2 hover:bg-gray-50 lg:p-[12px]" data-track="Link Clicked" data-track-properties="{"label": "Kubernetes Networking"}" href="/use-cases/kubernetes"><div class="flex items-center gap-2"><div class="t-16 relative z-[10] text-heading-black">Kubernetes Networking</div></div></a></li><li class="group relative whitespace-nowrap"><a class="relative z-[10] inline-block w-full rounded-lg px-1 py-2 hover:bg-gray-50 lg:p-[12px]" data-track="Link Clicked" data-track-properties="{"label": "Edge & IoT Deployments"}" href="/use-cases/iot"><div class="flex items-center gap-2"><div class="t-16 relative z-[10] text-heading-black">Edge & IoT Deployments</div></div></a></li><li class="group relative whitespace-nowrap"><a class="relative z-[10] inline-block w-full rounded-lg px-1 py-2 hover:bg-gray-50 lg:p-[12px]" data-track="Link Clicked" data-track-properties="{"label": "Zero Trust Networking"}" href="/use-cases/zero-trust-networking"><div class="flex items-center gap-2"><div class="t-16 relative z-[10] text-heading-black">Zero Trust Networking</div></div></a></li><li class="group relative whitespace-nowrap"><a class="relative z-[10] inline-block w-full rounded-lg px-1 py-2 hover:bg-gray-50 lg:p-[12px]" data-track="Link Clicked" data-track-properties="{"label": "AI Workloads"}" href="/use-cases/ai"><div class="flex items-center gap-2"><div class="t-16 relative z-[10] text-heading-black">AI Workloads</div></div></a></li><li class="group relative whitespace-nowrap"><a class="relative z-[10] inline-block w-full rounded-lg px-1 py-2 hover:bg-gray-50 lg:p-[12px]" data-track="Link Clicked" data-track-properties="{"label": "Secure SaaS"}" href="/use-cases/secure-saas"><div class="flex items-center gap-2"><div class="t-16 relative z-[10] text-heading-black">Secure SaaS</div></div></a></li><li class="group relative whitespace-nowrap"><a class="relative z-[10] inline-block w-full rounded-lg px-1 py-2 hover:bg-gray-50 lg:p-[12px]" data-track="Link Clicked" data-track-properties="{"label": "Business VPN"}" href="/use-cases/business-vpn"><div class="flex items-center gap-2"><div class="t-16 relative z-[10] text-heading-black">Business VPN</div></div></a></li><li class="group relative whitespace-nowrap"><a class="relative z-[10] inline-block w-full rounded-lg px-1 py-2 hover:bg-gray-50 lg:p-[12px]" data-track="Link Clicked" data-track-properties="{"label": "Homelab"}" href="/use-cases/homelab"><div class="flex items-center gap-2"><div class="t-16 relative z-[10] text-heading-black">Homelab</div></div></a></li></ul></div><div class="flex-1 lg:min-w-[266px]"><div class="t-14 relative z-[10] mb-2 text-gray-500 lg:mb-[15px] lg:ml-3">By role</div><ul><li class="group relative whitespace-nowrap"><a class="relative z-[10] inline-block w-full rounded-lg px-1 py-2 hover:bg-gray-50 lg:p-[12px]" data-track="Link Clicked" data-track-properties="{"label": "DevOps"}" href="/solutions/devops"><div class="flex items-center gap-2"><div class="t-16 relative z-[10] text-heading-black">DevOps</div></div></a></li><li class="group relative whitespace-nowrap"><a class="relative z-[10] inline-block w-full rounded-lg px-1 py-2 hover:bg-gray-50 lg:p-[12px]" data-track="Link Clicked" data-track-properties="{"label": "IT"}" href="/solutions/it"><div class="flex items-center gap-2"><div class="t-16 relative z-[10] text-heading-black">IT</div></div></a></li><li class="group relative whitespace-nowrap"><a class="relative z-[10] inline-block w-full rounded-lg px-1 py-2 hover:bg-gray-50 lg:p-[12px]" data-track="Link Clicked" data-track-properties="{"label": "Security"}" href="/solutions/security"><div class="flex items-center gap-2"><div class="t-16 relative z-[10] text-heading-black">Security</div></div></a></li></ul></div></div></div></div><div class="relative overflow-hidden border-b border-stroke-gray pb-6 "><a class="t-20 flex w-full items-center justify-between font-medium " href="/enterprise"><span>Enterprise</span><span class="flex h-[22px] w-[22px] items-center justify-center rounded-full text-gray-1000 transition-transform duration-300 -rotate-0 bg-gray-50"><svg width="10" height="10" viewBox="0 0 10 10" fill="none" xmlns="http://www.w3.org/2000/svg"><path fill-rule="evenodd" clip-rule="evenodd" d="M5.83344 7.82482L8.83656 4.99835L5.83344 2.17188L5.24469 2.72658L7.24156 4.60599H1.16406V5.3907H7.24156L5.24469 7.27011L5.83344 7.82482Z" fill="currentColor"></path></svg></span></a><div class="flex flex-col transition duration-300 will-change-[height] h-0 opacity-0"><div class="left-[-110px] top-[57px] z-[100] flex flex-col justify-between gap-8 rounded-2xl bg-white py-[30px] will-change-transform xl-small:absolute xl-small:flex-row xl-small:gap-[50px] xl-small:border xl-small:px-[30px] xl:left-[-40px]" style="opacity:0"><div class="flex-1 lg:min-w-[266px]"><ul></ul></div></div></div></div><div class="relative overflow-hidden border-b border-stroke-gray pb-6 "><a class="t-20 flex w-full items-center justify-between font-medium " href="/customers"><span>Customers</span><span class="flex h-[22px] w-[22px] items-center justify-center rounded-full text-gray-1000 transition-transform duration-300 -rotate-0 bg-gray-50"><svg width="10" height="10" viewBox="0 0 10 10" fill="none" xmlns="http://www.w3.org/2000/svg"><path fill-rule="evenodd" clip-rule="evenodd" d="M5.83344 7.82482L8.83656 4.99835L5.83344 2.17188L5.24469 2.72658L7.24156 4.60599H1.16406V5.3907H7.24156L5.24469 7.27011L5.83344 7.82482Z" fill="currentColor"></path></svg></span></a><div class="flex flex-col transition duration-300 will-change-[height] h-0 opacity-0"><div class="left-[-110px] top-[57px] z-[100] flex flex-col justify-between gap-8 rounded-2xl bg-white py-[30px] will-change-transform xl-small:absolute xl-small:flex-row xl-small:gap-[50px] xl-small:border xl-small:px-[30px] xl:left-[-40px]" style="opacity:0"><div class="flex-1 lg:min-w-[266px]"><div class="t-14 relative z-[10] mb-2 text-gray-500 lg:mb-[15px] lg:ml-3">Nav heading here</div><ul><li class="group relative whitespace-nowrap"><a class="relative z-[10] inline-block w-full rounded-lg px-1 py-2 hover:bg-gray-50 lg:p-[12px]" data-track="Link Clicked" data-track-properties="{"label": "Title here"}" href="https://tailscale.com/customers"><div class="flex items-center gap-2"><img alt="Alt text " loading="lazy" width="300" height="120" decoding="async" data-nimg="1" class="relative z-[10] brightness-100 saturate-100 transition duration-200 lg:brightness-[1.1] lg:saturate-0 lg:brightness-100 lg:saturate-100" style="color:transparent;background-size:cover;background-position:50% 50%;background-repeat:no-repeat;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 300 120'%3E%3Cfilter id='b' color-interpolation-filters='sRGB'%3E%3CfeGaussianBlur stdDeviation='20'/%3E%3CfeColorMatrix values='1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 100 -1' result='s'/%3E%3CfeFlood x='0' y='0' width='100%25' height='100%25'/%3E%3CfeComposite operator='out' in='s'/%3E%3CfeComposite in2='SourceGraphic'/%3E%3CfeGaussianBlur stdDeviation='20'/%3E%3C/filter%3E%3Cimage width='100%25' height='100%25' x='0' y='0' preserveAspectRatio='none' style='filter: url(%23b);' href='data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mP8/wcAAwAB/ucNC4UAAAAASUVORK5CYII='/%3E%3C/svg%3E")" srcSet="https://cdn.sanity.io/images/w77i7m8x/production/a06dc612b1e3e4f4df53a72030002600639a8738-300x120.png?w=384&q=75&fit=clip&auto=format 1x, https://cdn.sanity.io/images/w77i7m8x/production/a06dc612b1e3e4f4df53a72030002600639a8738-300x120.png?w=640&q=75&fit=clip&auto=format 2x" src="https://cdn.sanity.io/images/w77i7m8x/production/a06dc612b1e3e4f4df53a72030002600639a8738-300x120.png?w=640&q=75&fit=clip&auto=format"/><div class="t-16 relative z-[10] text-heading-black">Title here</div></div><div class="t-14 relative z-[10] mt-1 line-clamp-2 !font-normal !leading-[1.28] text-heading-black/80">How Cribl Enables Secure Work From Anywhere with Tailscale</div></a></li></ul></div></div></div></div><div class="relative overflow-hidden border-b border-stroke-gray pb-6 "><a class="t-20 flex w-full items-center justify-between font-medium " href="/kb/1017/install"><span>Docs</span><span class="flex h-[22px] w-[22px] items-center justify-center rounded-full text-gray-1000 transition-transform duration-300 -rotate-0 bg-gray-50"><svg width="10" height="10" viewBox="0 0 10 10" fill="none" xmlns="http://www.w3.org/2000/svg"><path fill-rule="evenodd" clip-rule="evenodd" d="M5.83344 7.82482L8.83656 4.99835L5.83344 2.17188L5.24469 2.72658L7.24156 4.60599H1.16406V5.3907H7.24156L5.24469 7.27011L5.83344 7.82482Z" fill="currentColor"></path></svg></span></a><div class="flex flex-col transition duration-300 will-change-[height] h-0 opacity-0"><div class="left-[-110px] top-[57px] z-[100] flex flex-col justify-between gap-8 rounded-2xl bg-white py-[30px] will-change-transform xl-small:absolute xl-small:flex-row xl-small:gap-[50px] xl-small:border xl-small:px-[30px] xl:left-[-40px]" style="opacity:0"><div class="flex-1 lg:min-w-[266px]"><ul></ul></div></div></div></div><div class="relative overflow-hidden border-b border-stroke-gray pb-6 "><a class="t-20 flex w-full items-center justify-between font-medium " href="/blog"><span>Blog</span><span class="flex h-[22px] w-[22px] items-center justify-center rounded-full text-gray-1000 transition-transform duration-300 -rotate-0 bg-gray-50"><svg width="10" height="10" viewBox="0 0 10 10" fill="none" xmlns="http://www.w3.org/2000/svg"><path fill-rule="evenodd" clip-rule="evenodd" d="M5.83344 7.82482L8.83656 4.99835L5.83344 2.17188L5.24469 2.72658L7.24156 4.60599H1.16406V5.3907H7.24156L5.24469 7.27011L5.83344 7.82482Z" fill="currentColor"></path></svg></span></a><div class="flex flex-col transition duration-300 will-change-[height] h-0 opacity-0"><div class="left-[-110px] top-[57px] z-[100] flex flex-col justify-between gap-8 rounded-2xl bg-white py-[30px] will-change-transform xl-small:absolute xl-small:flex-row xl-small:gap-[50px] xl-small:border xl-small:px-[30px] xl:left-[-40px]" style="opacity:0"><div class="flex-1 lg:min-w-[266px]"><ul></ul></div></div></div></div><div class="relative overflow-hidden border-b border-stroke-gray pb-6 "><a class="t-20 flex w-full items-center justify-between font-medium " href="/pricing"><span>Pricing</span><span class="flex h-[22px] w-[22px] items-center justify-center rounded-full text-gray-1000 transition-transform duration-300 -rotate-0 bg-gray-50"><svg width="10" height="10" viewBox="0 0 10 10" fill="none" xmlns="http://www.w3.org/2000/svg"><path fill-rule="evenodd" clip-rule="evenodd" d="M5.83344 7.82482L8.83656 4.99835L5.83344 2.17188L5.24469 2.72658L7.24156 4.60599H1.16406V5.3907H7.24156L5.24469 7.27011L5.83344 7.82482Z" fill="currentColor"></path></svg></span></a><div class="flex flex-col transition duration-300 will-change-[height] h-0 opacity-0"><div class="left-[-110px] top-[57px] z-[100] flex flex-col justify-between gap-8 rounded-2xl bg-white py-[30px] will-change-transform xl-small:absolute xl-small:flex-row xl-small:gap-[50px] xl-small:border xl-small:px-[30px] xl:left-[-40px]" style="opacity:0"><div class="flex-1 lg:min-w-[266px]"><ul></ul></div></div></div></div><div class="relative overflow-hidden border-b border-stroke-gray pb-6 "><a class="t-20 flex w-full items-center justify-between font-medium " href="/download"><span>Download</span><span class="flex h-[22px] w-[22px] items-center justify-center rounded-full text-gray-1000 transition-transform duration-300 -rotate-0 bg-gray-50"><svg width="10" height="10" viewBox="0 0 10 10" fill="none" xmlns="http://www.w3.org/2000/svg"><path fill-rule="evenodd" clip-rule="evenodd" d="M5.83344 7.82482L8.83656 4.99835L5.83344 2.17188L5.24469 2.72658L7.24156 4.60599H1.16406V5.3907H7.24156L5.24469 7.27011L5.83344 7.82482Z" fill="currentColor"></path></svg></span></a><div class="flex flex-col transition duration-300 will-change-[height] h-0 opacity-0"></div></div><div class="relative overflow-hidden border-b border-stroke-gray pb-6 "><a class="t-20 flex w-full items-center justify-between font-medium " href="/contact/sales"><span>Contact sales</span><span class="flex h-[22px] w-[22px] items-center justify-center rounded-full text-gray-1000 transition-transform duration-300 -rotate-0 bg-gray-50"><svg width="10" height="10" viewBox="0 0 10 10" fill="none" xmlns="http://www.w3.org/2000/svg"><path fill-rule="evenodd" clip-rule="evenodd" d="M5.83344 7.82482L8.83656 4.99835L5.83344 2.17188L5.24469 2.72658L7.24156 4.60599H1.16406V5.3907H7.24156L5.24469 7.27011L5.83344 7.82482Z" fill="currentColor"></path></svg></span></a><div class="flex flex-col transition duration-300 will-change-[height] h-0 opacity-0"></div></div></div><a class="mt-[42px] block" data-track="Link Clicked" data-track-properties="{"label": "Get started - it's free!"}" href="https://login.tailscale.com/start"><div class="inline-flex shrink-0 border transition-colors duration-200 w-full xs:w-auto items-center justify-center text-center relative focus:outline-none group transition-all overflow-hidden font-body font-medium rounded-lg group gap-[11px] py-2 px-[17px] leading-[1.46] tracking-[-0.16px] !w-full py-3 bg-heading-black border-heading-black text-white hover:bg-gray-900 hover:border-gray-900 "><div>Get started - it's free!</div></div></a><a class="mt-[15px] block" data-track="Link Clicked" data-track-properties="{"label": "Login"}" href="https://login.tailscale.com/welcome"><div class="inline-flex shrink-0 border transition-colors duration-200 w-full xs:w-auto items-center justify-center text-center relative focus:outline-none group transition-all overflow-hidden font-body font-medium rounded-lg group gap-[11px] py-2 px-[17px] leading-[1.46] tracking-[-0.16px] !w-full py-3 bg-gray-200 border-gray-200 text-heading-black"><div>Login</div></div></a><div class="t-14 mx-auto mt-[55px] max-w-[264px] text-center text-gray-600">WireGuard is a registered trademark of Jason A. Donenfeld.</div><div class="mt-[35px] flex flex-wrap justify-center gap-[14px]"><a class="t-16 !leading-[1.05] underline underline-offset-4" href="/terms">Terms of Service</a><a class="t-16 !leading-[1.05] underline underline-offset-4" href="/privacy-policy">Privacy Policy</a></div><div class="mt-[60px] flex items-center justify-center gap-[8px]"><span class="scale-[1.1] text-heading-black transition-colors duration-300 hover:text-red-900"><svg width="28" height="29" viewBox="0 0 28 29" fill="none" xmlns="http://www.w3.org/2000/svg"><rect y="0.988281" width="28" height="28" rx="14" fill="currentColor"></rect><path class=" transition-colors duration-300 group-hover:fill-heading-black" d="M8.03169 9L13.0509 15.0672L8 20H9.13675L13.5587 15.6812L17.1317 20H21L15.6985 13.5916L20.3997 9H19.263L15.1906 12.9775L11.9001 9H8.03169ZM9.70337 9.75698H11.4805L19.3281 19.2429H17.551L9.70337 9.75698Z" fill="white"></path></svg></span><span class="scale-[1.1] text-heading-black transition-colors duration-300 hover:text-red-900"><svg width="28" height="28" viewBox="0 0 28 28" fill="none" xmlns="http://www.w3.org/2000/svg"><rect x="0.21875" width="27.2195" height="27.2195" rx="13.6098" fill="currentColor"></rect><path class="transition-colors duration-300 group-hover:fill-heading-black" d="M12.434 19.6598L12.4179 14.8081H10.3008V12.7289H12.4179V11.3427C12.4179 9.47188 13.5974 8.57031 15.2966 8.57031C16.1106 8.57031 16.8101 8.62983 17.014 8.65643V10.6115L15.8355 10.612C14.9114 10.612 14.7324 11.0433 14.7324 11.6762V12.7289H17.3577L16.652 14.8081H14.7324V19.6598H12.434Z" fill="#fff"></path></svg></span><span class="scale-[1.1] text-heading-black transition-colors duration-300 hover:text-red-900"><svg width="28" height="28" viewBox="0 0 28 28" fill="none" xmlns="http://www.w3.org/2000/svg"><rect x="0.439453" width="27.2195" height="27.2195" rx="13.6098" fill="currentColor"></rect><path class=" transition-colors duration-300 group-hover:fill-heading-black" d="M8.68685 18.6518H10.8825V11.5871H8.68685V18.6518Z" fill="white"></path><path class=" transition-colors duration-300 group-hover:fill-heading-black" d="M8.50195 9.34036C8.50195 10.0352 9.07976 10.6143 9.77312 10.6143C10.4896 10.6143 11.0443 10.0584 11.0443 9.34036C11.0443 8.64547 10.4665 8.06641 9.77312 8.06641C9.07976 8.06641 8.50195 8.64547 8.50195 9.34036Z" fill="white"></path><path class=" transition-colors duration-300 group-hover:fill-heading-black" d="M16.8917 18.6518H19.0873V14.7836C19.0873 12.8843 18.6713 11.425 16.4525 11.425C15.3894 11.425 14.6729 12.0041 14.3724 12.56H14.3493V11.5871H12.2461V18.6518H14.4418V15.1542C14.4418 14.2509 14.6267 13.3475 15.7592 13.3475C16.8686 13.3475 16.8917 14.413 16.8917 15.2237V18.6518Z" fill="white"></path></svg></span><span class="scale-[1.1] text-heading-black transition-colors duration-300 hover:text-red-900"><svg width="28" height="28" viewBox="0 0 28 28" fill="none" xmlns="http://www.w3.org/2000/svg"><rect x="0.658203" width="27.2195" height="27.2195" rx="13.6098" fill="currentColor"></rect><path class=" transition-colors duration-300 group-hover:fill-heading-black" d="M19.6754 11.46C19.5368 10.5863 19.121 9.98138 18.1506 9.84696C16.6258 9.57813 14.2693 9.57812 14.2693 9.57812C14.2693 9.57812 11.9128 9.57813 10.388 9.84696C9.4177 9.98138 8.93254 10.5863 8.86323 11.46C8.72461 12.3337 8.72461 13.6106 8.72461 13.6106C8.72461 13.6106 8.72461 14.8876 8.86323 15.7613C9.00185 16.635 9.4177 17.2399 10.388 17.3743C11.9128 17.6432 14.2693 17.6432 14.2693 17.6432C14.2693 17.6432 16.6258 17.6432 18.1506 17.3743C19.121 17.1727 19.5368 16.635 19.6754 15.7613C19.814 14.8876 19.814 13.6106 19.814 13.6106C19.814 13.6106 19.814 12.3337 19.6754 11.46ZM12.8831 15.6269V11.5944L16.3486 13.6106L12.8831 15.6269Z" fill="white"></path></svg></span></div><div class="t-14 mx-auto mt-10 max-w-[264px] text-center text-gray-600"> <!-- -->© <!-- -->2025<!-- --> <!-- -->Tailscale Inc. All rights reserved. Tailscale is a registered trademark of Tailscale Inc.</div></div><main class="mt-[-60px] lg:mt-[-66px]"><section class="overflow-hidden bg-gray-50 pb-24 pt-16"><div class="container-new"><div class="flex w-full flex-row items-center justify-between gap-y-4 py-6"><h1 class="h1-new text-gray-700 lg:pl-8">Blog</h1><span class="caption-new flex items-center text-gray-500 lg:pr-8">Subscribe via <a aria-label="Newsletter" class="rounded-full bg-gray-700 p-2 text-white transition-colors duration-200 hover:bg-gray-300 hover:text-gray-1000 ml-1" href="/blog#blog-newsletter"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 13" class="h-4 w-4"><use href="/sprite.svg#mail"></use></svg></a><a href="https://tailscale.com/blog/index.xml" aria-label="RSS Feed" class="rounded-full bg-gray-700 p-2 text-white transition-colors duration-200 hover:bg-gray-300 hover:text-gray-1000 ml-1 mr-3"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 17 17" class="h-4 w-4"><use href="/sprite.svg#rss"></use></svg></a>Follow on <a aria-label="Tailscale on twitter" class="rounded-full bg-gray-700 p-2 text-white transition-colors duration-200 hover:bg-gray-300 hover:text-gray-1000 ml-1" href="https://twitter.com/tailscale"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 17 15" class="h-4 w-4"><use href="/sprite.svg#twitter-x"></use></svg></a></span></div><div class="mt-4 flex grid-flow-col flex-col gap-3 lg:grid"><a data-track="Link Clicked" class="flex flex-col rounded-2xl border border-gray-200 bg-white p-8 shadow-brand transition duration-300 hover:border-gray-300 hover:shadow-brand-hover group col-span-3 row-span-2" data-track-properties="{"label": "Building the New Internet, together — our Series C and what's next"}" href="/blog/series-c"><img alt="Tailscale Series C icon representing C and 25" loading="lazy" width="452" height="234" decoding="async" data-nimg="1" class="mb-8 w-full rounded-lg" style="color:transparent;background-size:cover;background-position:50% 50%;background-repeat:no-repeat;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 452 234'%3E%3Cfilter id='b' color-interpolation-filters='sRGB'%3E%3CfeGaussianBlur stdDeviation='20'/%3E%3CfeColorMatrix values='1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 100 -1' result='s'/%3E%3CfeFlood x='0' y='0' width='100%25' height='100%25'/%3E%3CfeComposite operator='out' in='s'/%3E%3CfeComposite in2='SourceGraphic'/%3E%3CfeGaussianBlur stdDeviation='20'/%3E%3C/filter%3E%3Cimage width='100%25' height='100%25' x='0' y='0' preserveAspectRatio='none' style='filter: url(%23b);' href='data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mP8/wcAAwAB/ucNC4UAAAAASUVORK5CYII='/%3E%3C/svg%3E")" srcSet="https://cdn.sanity.io/images/w77i7m8x/production/ba01517ff0c3ed51485068db69af912c539ce32c-452x234.svg?w=640&q=75&fit=clip&auto=format 1x, https://cdn.sanity.io/images/w77i7m8x/production/ba01517ff0c3ed51485068db69af912c539ce32c-452x234.svg?w=1080&q=75&fit=clip&auto=format 2x" src="https://cdn.sanity.io/images/w77i7m8x/production/ba01517ff0c3ed51485068db69af912c539ce32c-452x234.svg?w=1080&q=75&fit=clip&auto=format"/><div><span class="color-company label mr-3">company</span><span class="meta-new text-gray-500">April 08, 2025</span></div><h3 class="h3-new my-3 text-gray-700">Building the New Internet, together — our Series C and what's next</h3><p class="featured-body-new mb-3 line-clamp-2 text-gray-600">Tailscale has raised $160 million USD ($230 million CAD) in our Series C, led by Accel with participation from CRV, Insight Partners, Heavybit, and Uncork Capital. Existing angel investor George Kurtz - CEO of Crowdstrike is also included in this round, as well as Anthony Casalena - CEO of Squarespace, who joins as a new investor for Series C.</p><div class="flex flex-wrap items-center gap-2"><div class="flex -space-x-2 saturate-0 transition duration-300 group-hover:saturate-100"><img alt="Avery Pennarun Headshot" loading="lazy" width="200" height="200" decoding="async" data-nimg="1" class="h-8 w-8 rounded-full border-[1.5px] border-gray-50" style="color:transparent;background-size:cover;background-position:50% 50%;background-repeat:no-repeat;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 200 200'%3E%3Cfilter id='b' color-interpolation-filters='sRGB'%3E%3CfeGaussianBlur stdDeviation='20'/%3E%3CfeColorMatrix values='1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 100 -1' result='s'/%3E%3CfeFlood x='0' y='0' width='100%25' height='100%25'/%3E%3CfeComposite operator='out' in='s'/%3E%3CfeComposite in2='SourceGraphic'/%3E%3CfeGaussianBlur stdDeviation='20'/%3E%3C/filter%3E%3Cimage width='100%25' height='100%25' x='0' y='0' preserveAspectRatio='none' style='filter: url(%23b);' href='data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mP8/wcAAwAB/ucNC4UAAAAASUVORK5CYII='/%3E%3C/svg%3E")" srcSet="https://cdn.sanity.io/images/w77i7m8x/production/a389ecb80f53c38b95ef9739698831065fe034c8-200x200.jpg?w=256&q=75&fit=clip&auto=format 1x, https://cdn.sanity.io/images/w77i7m8x/production/a389ecb80f53c38b95ef9739698831065fe034c8-200x200.jpg?w=640&q=75&fit=clip&auto=format 2x" src="https://cdn.sanity.io/images/w77i7m8x/production/a389ecb80f53c38b95ef9739698831065fe034c8-200x200.jpg?w=640&q=75&fit=clip&auto=format"/></div><div class="meta-new text-gray-500">Avery Pennarun</div></div></a><a data-track="Link Clicked" class="flex flex-col rounded-2xl border border-gray-200 bg-white p-8 shadow-brand transition duration-300 hover:border-gray-300 hover:shadow-brand-hover group col-span-1" data-track-properties="{"label": "5 Things We’ve Learned From 5 Years of Tailscale"}" href="/blog/5-things-5-years"><div><span class="color-company label mr-3">company</span><span class="meta-new text-gray-500">April 03, 2025</span></div><h3 class="h4-new my-3 text-gray-700">5 Things We’ve Learned From 5 Years of Tailscale</h3><p class="body-new mb-4 line-clamp-3 text-gray-600">(Oh, and we’re giving away lifetime Personal Plus plans, so keep reading! 🎉)</p><div class="flex flex-wrap items-center gap-2"><div class="flex -space-x-2 saturate-0 transition duration-300 group-hover:saturate-100"><img alt="David Carney" loading="lazy" width="533" height="533" decoding="async" data-nimg="1" class="h-8 w-8 rounded-full border-[1.5px] border-gray-50" style="color:transparent;background-size:cover;background-position:50% 50%;background-repeat:no-repeat;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 533 533'%3E%3Cfilter id='b' color-interpolation-filters='sRGB'%3E%3CfeGaussianBlur stdDeviation='20'/%3E%3CfeColorMatrix values='1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 100 -1' result='s'/%3E%3CfeFlood x='0' y='0' width='100%25' height='100%25'/%3E%3CfeComposite operator='out' in='s'/%3E%3CfeComposite in2='SourceGraphic'/%3E%3CfeGaussianBlur stdDeviation='20'/%3E%3C/filter%3E%3Cimage width='100%25' height='100%25' x='0' y='0' preserveAspectRatio='none' style='filter: url(%23b);' href='data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mP8/wcAAwAB/ucNC4UAAAAASUVORK5CYII='/%3E%3C/svg%3E")" srcSet="https://cdn.sanity.io/images/w77i7m8x/production/3ccecbe43f96a4cc56385f75e3e493cac4129aa3-533x533.png?w=640&q=75&fit=clip&auto=format 1x, https://cdn.sanity.io/images/w77i7m8x/production/3ccecbe43f96a4cc56385f75e3e493cac4129aa3-533x533.png?w=1080&q=75&fit=clip&auto=format 2x" src="https://cdn.sanity.io/images/w77i7m8x/production/3ccecbe43f96a4cc56385f75e3e493cac4129aa3-533x533.png?w=1080&q=75&fit=clip&auto=format"/></div><div class="meta-new text-gray-500">David Carney</div></div></a><a data-track="Link Clicked" class="flex flex-col rounded-2xl border border-gray-200 bg-white p-8 shadow-brand transition duration-300 hover:border-gray-300 hover:shadow-brand-hover group col-span-1" data-track-properties="{"label": "Tailscale Kubernetes Operator now generally available"}" href="/blog/k8s-operator-ga"><div><span class="color-product label mr-3">product</span><span class="meta-new text-gray-500">April 02, 2025</span></div><h3 class="h4-new my-3 text-gray-700">Tailscale Kubernetes Operator now generally available</h3><p class="body-new mb-4 line-clamp-3 text-gray-600">The Tailscale Kubernetes Operator is now generally available to all Tailscale users. Since we released the Tailscale Kubernetes Operator to beta a little over a year ago, thousands of organizations have adopted it, including for use in production environments. Today’s release marks the next milestone in stability and reliability that those users have already come to trust.</p><div class="flex flex-wrap items-center gap-2"><div class="flex -space-x-2 saturate-0 transition duration-300 group-hover:saturate-100"><img alt="Pouyan Aminian" loading="lazy" width="500" height="500" decoding="async" data-nimg="1" class="h-8 w-8 rounded-full border-[1.5px] border-gray-50" style="color:transparent;background-size:cover;background-position:50% 50%;background-repeat:no-repeat;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 500 500'%3E%3Cfilter id='b' color-interpolation-filters='sRGB'%3E%3CfeGaussianBlur stdDeviation='20'/%3E%3CfeColorMatrix values='1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 100 -1' result='s'/%3E%3CfeFlood x='0' y='0' width='100%25' height='100%25'/%3E%3CfeComposite operator='out' in='s'/%3E%3CfeComposite in2='SourceGraphic'/%3E%3CfeGaussianBlur stdDeviation='20'/%3E%3C/filter%3E%3Cimage width='100%25' height='100%25' x='0' y='0' preserveAspectRatio='none' style='filter: url(%23b);' href='data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mP8/wcAAwAB/ucNC4UAAAAASUVORK5CYII='/%3E%3C/svg%3E")" srcSet="https://cdn.sanity.io/images/w77i7m8x/production/cd35816d113fd1fc64d122bf0694747a79260b99-500x500.jpg?w=640&q=75&fit=clip&auto=format 1x, https://cdn.sanity.io/images/w77i7m8x/production/cd35816d113fd1fc64d122bf0694747a79260b99-500x500.jpg?w=1080&q=75&fit=clip&auto=format 2x" src="https://cdn.sanity.io/images/w77i7m8x/production/cd35816d113fd1fc64d122bf0694747a79260b99-500x500.jpg?w=1080&q=75&fit=clip&auto=format"/></div><div class="meta-new text-gray-500">Pouyan Aminian</div></div></a><a data-track="Link Clicked" class="flex flex-col rounded-2xl border border-gray-200 bg-white p-8 shadow-brand transition duration-300 hover:border-gray-300 hover:shadow-brand-hover group col-span-1" data-track-properties="{"label": "Porting Tailscale to Plan 9"}" href="/blog/plan9-port"><div><span class="color-insights label mr-3">insights</span><span class="meta-new text-gray-500">April 02, 2025</span></div><h3 class="h4-new my-3 text-gray-700">Porting Tailscale to Plan 9</h3><p class="body-new mb-4 line-clamp-3 text-gray-600">A behind the scenes look at how we ported Tailscale to Plan 9, including a number of Plan 9 and Go fixes along the way.</p><div class="flex flex-wrap items-center gap-2"><div class="flex -space-x-2 saturate-0 transition duration-300 group-hover:saturate-100"><img alt="A man with a short well-groomed beard dressed in a white shirt, facing the camera with a calm demeanor." loading="lazy" width="945" height="945" decoding="async" data-nimg="1" class="h-8 w-8 rounded-full border-[1.5px] border-gray-50" style="color:transparent;background-size:cover;background-position:50% 50%;background-repeat:no-repeat;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 945 945'%3E%3Cfilter id='b' color-interpolation-filters='sRGB'%3E%3CfeGaussianBlur stdDeviation='20'/%3E%3CfeColorMatrix values='1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 100 -1' result='s'/%3E%3CfeFlood x='0' y='0' width='100%25' height='100%25'/%3E%3CfeComposite operator='out' in='s'/%3E%3CfeComposite in2='SourceGraphic'/%3E%3CfeGaussianBlur stdDeviation='20'/%3E%3C/filter%3E%3Cimage width='100%25' height='100%25' x='0' y='0' preserveAspectRatio='none' style='filter: url(%23b);' href='data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mP8/wcAAwAB/ucNC4UAAAAASUVORK5CYII='/%3E%3C/svg%3E")" srcSet="https://cdn.sanity.io/images/w77i7m8x/production/88e6bd3712877e26fef5093d3779ecd00c23ff6d-945x945.jpg?w=1080&q=75&fit=clip&auto=format 1x, https://cdn.sanity.io/images/w77i7m8x/production/88e6bd3712877e26fef5093d3779ecd00c23ff6d-945x945.jpg?w=1920&q=75&fit=clip&auto=format 2x" src="https://cdn.sanity.io/images/w77i7m8x/production/88e6bd3712877e26fef5093d3779ecd00c23ff6d-945x945.jpg?w=1920&q=75&fit=clip&auto=format"/></div><div class="meta-new text-gray-500">Brad Fitzpatrick</div></div></a><a data-track="Link Clicked" class="flex flex-col rounded-2xl border border-gray-200 bg-white p-8 shadow-brand transition duration-300 hover:border-gray-300 hover:shadow-brand-hover group col-span-1" data-track-properties="{"label": "A stable platform for community projects"}" href="/blog/community-projects"><div><span class="color-company label mr-3">company</span><span class="meta-new text-gray-500">March 25, 2025</span></div><h3 class="h4-new my-3 text-gray-700">A stable platform for community projects</h3><p class="body-new mb-4 line-clamp-3 text-gray-600">Today we're announcing Tailscale Community Projects — projects by ourselves and our community that work well with Tailscale, are easy to collaborate on, and will keep working if you adopt them.</p><div class="flex flex-wrap items-center gap-2"><div class="flex -space-x-2 saturate-0 transition duration-300 group-hover:saturate-100"><img alt="Avery Pennarun Headshot" loading="lazy" width="200" height="200" decoding="async" data-nimg="1" class="h-8 w-8 rounded-full border-[1.5px] border-gray-50" style="color:transparent;background-size:cover;background-position:50% 50%;background-repeat:no-repeat;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 200 200'%3E%3Cfilter id='b' color-interpolation-filters='sRGB'%3E%3CfeGaussianBlur stdDeviation='20'/%3E%3CfeColorMatrix values='1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 100 -1' result='s'/%3E%3CfeFlood x='0' y='0' width='100%25' height='100%25'/%3E%3CfeComposite operator='out' in='s'/%3E%3CfeComposite in2='SourceGraphic'/%3E%3CfeGaussianBlur stdDeviation='20'/%3E%3C/filter%3E%3Cimage width='100%25' height='100%25' x='0' y='0' preserveAspectRatio='none' style='filter: url(%23b);' href='data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mP8/wcAAwAB/ucNC4UAAAAASUVORK5CYII='/%3E%3C/svg%3E")" srcSet="https://cdn.sanity.io/images/w77i7m8x/production/a389ecb80f53c38b95ef9739698831065fe034c8-200x200.jpg?w=256&q=75&fit=clip&auto=format 1x, https://cdn.sanity.io/images/w77i7m8x/production/a389ecb80f53c38b95ef9739698831065fe034c8-200x200.jpg?w=640&q=75&fit=clip&auto=format 2x" src="https://cdn.sanity.io/images/w77i7m8x/production/a389ecb80f53c38b95ef9739698831065fe034c8-200x200.jpg?w=640&q=75&fit=clip&auto=format"/></div><div class="meta-new text-gray-500">Avery Pennarun</div></div></a></div></div></section><section class="mt-32"><div class="container-new"><div class="flex w-full flex-col items-start rounded-2xl border border-gray-200 bg-white px-8 py-12 text-left text-white shadow-brand sm:items-center" id="blog-newsletter"><h2 class="h3-new text-gray-700">Subscribe to Tailscale’s blog</h2><p class="featured-body-new mt-2 text-gray-600">We have a deep commitment to keeping your data safe.</p><div class="mt-8 w-full max-w-[342px] sm:mx-auto"><div id="hubspot-form-newsletter" class="hubspot-form-container"></div></div><div class="caption-new mt-3 flex items-center gap-3 text-gray-500"><span>Too much email?</span><span class="flex items-center gap-1"><a href="https://tailscale.com/blog/index.xml" aria-label="RSS Feed" class="rounded-full bg-gray-700 p-2 text-white transition-colors duration-200 hover:bg-gray-300 hover:text-gray-1000"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 17 17" class="h-4 w-4"><use href="/sprite.svg#rss"></use></svg></a>RSS</span><span class="flex items-center gap-1"><a aria-label="Tailscale on twitter" class="rounded-full bg-gray-700 p-2 text-white transition-colors duration-200 hover:bg-gray-300 hover:text-gray-1000" href="https://twitter.com/tailscale"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 17 15" class="h-4 w-4"><use href="/sprite.svg#twitter-x"></use></svg></a>Twitter</span></div></div></div></section></main><section class=" pb-[50px] pt-10 lg:pt-[175px] "><div class="is-wide container flex flex-col gap-6 md-large:flex-row"><div class="flex flex-1 flex-col justify-between rounded-[14px] bg-blue-900 overflow-hidden"><div class="relative z-10 flex-1 overflow-hidden px-[48px] py-[80px]"><div class="absolute -right-[1.5px] bottom-[0%] h-full w-auto opacity-25 xs:opacity-100 md:opacity-100 md-large:opacity-25 xl:opacity-100"><div class="flex h-full w-auto justify-end"><svg width="100%" height="100%" viewBox="0 0 264 394" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M0.666016 262.667C0.666019 190.118 59.4508 131.333 131.999 131.333L131.999 262.667L0.666016 262.667Z" fill="#6294F1"/><path d="M132 394C59.4515 394 0.666676 335.215 0.666682 262.667L132 262.667L132 394Z" fill="#253570"/><path d="M263.332 394C190.783 394 131.999 335.215 131.999 262.667L263.332 262.667L263.332 394Z" fill="#6294F1"/><path d="M132 131.333C59.4515 131.333 0.666673 72.5485 0.666676 -8.08502e-05L132 -7.62939e-05L132 131.333Z" fill="#253570"/><rect x="263.332" y="131.333" width="131.333" height="131.333" rx="65.6667" transform="rotate(90 263.332 131.333)" fill="#253570"/><rect x="263.332" width="131.333" height="131.333" rx="65.6667" transform="rotate(90 263.332 0)" fill="#6294F1"/></svg></div></div><div class="text-left mx-0 relative z-10"><h2 class="t-h3 text-white mb-4 md:mb-8" style="max-width:292px;color:#6C94EC">Try Tailscale for <span class="text-white">free</span></h2><div class="flex-col gap-4 flex justify-start"><div class="w-auto flex-row gap-y-4 space-x-[30px] xs:items-center xs:space-x-5 md:w-full flex justify-start"></div></div><div class="w-full xs:w-auto flex justify-start"><div class="flex w-full !w-auto flex-col gap-y-4 xs:w-auto xs:flex-row xs:items-center xs:space-x-5 md:space-x-[30px]"><a target="" data-track="Link Clicked" data-track-properties="{"label": "Get started"}" href="https://login.tailscale.com/start"><div class="inline-flex shrink-0 border transition-colors duration-200 w-full xs:w-auto items-center justify-center text-center relative focus:outline-none group transition-all overflow-hidden font-body font-medium rounded-lg group gap-[11px] py-2 px-[17px] leading-[1.46] tracking-[-0.16px] bg-heading-white border-white text-heading-black hover:bg-gray-50 hover:border-gray-50"><div>Get started</div><div class="relative "><span class="block will-change-transform" style="opacity:1;transform:none"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 18" class="w-4"><use href="/sprite.svg#arrowRight"></use></svg></span><span class="absolute inset-0 block will-change-transform" style="opacity:0;transform:translateX(-15px) translateY(0px) translateZ(0)"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 18" class="w-4"><use href="/sprite.svg#arrowRight"></use></svg></span></div></div></a></div></div></div></div><div class="relative w-full rounded-b-[14px] px-[48px] py-[60px] bg-blue-300" style="color:#232222"><div class="t-h5 !font-normal">Schedule a demo</div><a class="mt-3 block" data-track="Link Clicked" data-track-properties="{"label": "/contact/sales"}" href="/contact/sales"><div class="inline-flex shrink-0 border transition-colors duration-200 w-full xs:w-auto items-center justify-center text-center relative focus:outline-none group transition-all overflow-hidden font-body font-medium rounded-lg group gap-[11px] py-2 px-[17px] leading-[1.46] tracking-[-0.16px] !w-auto bg-heading-black border-heading-black text-white hover:bg-gray-900 hover:border-gray-900 "><div>Contact sales</div></div></a></div></div><div class="flex flex-1 items-end justify-center overflow-hidden rounded-[14px] bg-blue-900 pt-[50px]"><div class="px-5" style="transform:translateY(100px) translateZ(0)"><img _type="asset" alt="cta phone" loading="lazy" width="362" height="567" decoding="async" data-nimg="1" class="md:block mx-auto" style="color:transparent;background-size:cover;background-position:50% 50%;background-repeat:no-repeat;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 362 567'%3E%3Cfilter id='b' color-interpolation-filters='sRGB'%3E%3CfeGaussianBlur stdDeviation='20'/%3E%3CfeColorMatrix values='1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 100 -1' result='s'/%3E%3CfeFlood x='0' y='0' width='100%25' height='100%25'/%3E%3CfeComposite operator='out' in='s'/%3E%3CfeComposite in2='SourceGraphic'/%3E%3CfeGaussianBlur stdDeviation='20'/%3E%3C/filter%3E%3Cimage width='100%25' height='100%25' x='0' y='0' preserveAspectRatio='none' style='filter: url(%23b);' href='data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mP8/wcAAwAB/ucNC4UAAAAASUVORK5CYII='/%3E%3C/svg%3E")" srcSet="https://cdn.sanity.io/images/w77i7m8x/production/b715b4ca5e2577da60f0d529a4a9bc2ad4cadf59-362x567.svg?w=384&q=75&fit=clip&auto=format 1x, https://cdn.sanity.io/images/w77i7m8x/production/b715b4ca5e2577da60f0d529a4a9bc2ad4cadf59-362x567.svg?w=750&q=75&fit=clip&auto=format 2x" src="https://cdn.sanity.io/images/w77i7m8x/production/b715b4ca5e2577da60f0d529a4a9bc2ad4cadf59-362x567.svg?w=750&q=75&fit=clip&auto=format"/></div></div></div><div class="container mt-[60px]"><div><div class="flex flex-wrap items-center justify-center gap-4 lg:justify-between"><div class="flex w-[calc(33%-16px)] flex-col items-center gap-2 sm:w-[calc(33%-16px)] md:w-auto"><img alt="mercury" loading="lazy" width="199" height="81" decoding="async" data-nimg="1" class="mx-auto undefined" style="color:transparent;background-size:cover;background-position:50% 50%;background-repeat:no-repeat;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 199 81'%3E%3Cfilter id='b' color-interpolation-filters='sRGB'%3E%3CfeGaussianBlur stdDeviation='20'/%3E%3CfeColorMatrix values='1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 100 -1' result='s'/%3E%3CfeFlood x='0' y='0' width='100%25' height='100%25'/%3E%3CfeComposite operator='out' in='s'/%3E%3CfeComposite in2='SourceGraphic'/%3E%3CfeGaussianBlur stdDeviation='20'/%3E%3C/filter%3E%3Cimage width='100%25' height='100%25' x='0' y='0' preserveAspectRatio='none' style='filter: url(%23b);' href='data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mP8/wcAAwAB/ucNC4UAAAAASUVORK5CYII='/%3E%3C/svg%3E")" srcSet="https://cdn.sanity.io/images/w77i7m8x/production/459a7a8492910eeb22f22bb8d4c0f864b0bae25f-199x81.svg?w=256&q=75&fit=clip&auto=format 1x, https://cdn.sanity.io/images/w77i7m8x/production/459a7a8492910eeb22f22bb8d4c0f864b0bae25f-199x81.svg?w=640&q=75&fit=clip&auto=format 2x" src="https://cdn.sanity.io/images/w77i7m8x/production/459a7a8492910eeb22f22bb8d4c0f864b0bae25f-199x81.svg?w=640&q=75&fit=clip&auto=format"/></div><div class="flex w-[calc(33%-16px)] flex-col items-center gap-2 sm:w-[calc(33%-16px)] md:w-auto"><img alt="instacrt" loading="lazy" width="199" height="81" decoding="async" data-nimg="1" class="mx-auto undefined" style="color:transparent;background-size:cover;background-position:50% 50%;background-repeat:no-repeat;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 199 81'%3E%3Cfilter id='b' color-interpolation-filters='sRGB'%3E%3CfeGaussianBlur stdDeviation='20'/%3E%3CfeColorMatrix values='1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 100 -1' result='s'/%3E%3CfeFlood x='0' y='0' width='100%25' height='100%25'/%3E%3CfeComposite operator='out' in='s'/%3E%3CfeComposite in2='SourceGraphic'/%3E%3CfeGaussianBlur stdDeviation='20'/%3E%3C/filter%3E%3Cimage width='100%25' height='100%25' x='0' y='0' preserveAspectRatio='none' style='filter: url(%23b);' href='data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mP8/wcAAwAB/ucNC4UAAAAASUVORK5CYII='/%3E%3C/svg%3E")" srcSet="https://cdn.sanity.io/images/w77i7m8x/production/7d127f4bb62a408b056328349f291857df6251b3-199x81.svg?w=256&q=75&fit=clip&auto=format 1x, https://cdn.sanity.io/images/w77i7m8x/production/7d127f4bb62a408b056328349f291857df6251b3-199x81.svg?w=640&q=75&fit=clip&auto=format 2x" src="https://cdn.sanity.io/images/w77i7m8x/production/7d127f4bb62a408b056328349f291857df6251b3-199x81.svg?w=640&q=75&fit=clip&auto=format"/></div><div class="flex w-[calc(33%-16px)] flex-col items-center gap-2 sm:w-[calc(33%-16px)] md:w-auto"><img alt="Retool" loading="lazy" width="199" height="82" decoding="async" data-nimg="1" class="mx-auto undefined" style="color:transparent;background-size:cover;background-position:50% 50%;background-repeat:no-repeat;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 199 82'%3E%3Cfilter id='b' color-interpolation-filters='sRGB'%3E%3CfeGaussianBlur stdDeviation='20'/%3E%3CfeColorMatrix values='1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 100 -1' result='s'/%3E%3CfeFlood x='0' y='0' width='100%25' height='100%25'/%3E%3CfeComposite operator='out' in='s'/%3E%3CfeComposite in2='SourceGraphic'/%3E%3CfeGaussianBlur stdDeviation='20'/%3E%3C/filter%3E%3Cimage width='100%25' height='100%25' x='0' y='0' preserveAspectRatio='none' style='filter: url(%23b);' href='data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mP8/wcAAwAB/ucNC4UAAAAASUVORK5CYII='/%3E%3C/svg%3E")" srcSet="https://cdn.sanity.io/images/w77i7m8x/production/e9579b00087d7896e9cb750f4eb39f2c11ed11b8-199x82.svg?w=256&q=75&fit=clip&auto=format 1x, https://cdn.sanity.io/images/w77i7m8x/production/e9579b00087d7896e9cb750f4eb39f2c11ed11b8-199x82.svg?w=640&q=75&fit=clip&auto=format 2x" src="https://cdn.sanity.io/images/w77i7m8x/production/e9579b00087d7896e9cb750f4eb39f2c11ed11b8-199x82.svg?w=640&q=75&fit=clip&auto=format"/></div><div class="flex w-[calc(33%-16px)] flex-col items-center gap-2 sm:w-[calc(33%-16px)] md:w-auto"><img alt="duolingo" loading="lazy" width="199" height="81" decoding="async" data-nimg="1" class="mx-auto undefined" style="color:transparent;background-size:cover;background-position:50% 50%;background-repeat:no-repeat;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 199 81'%3E%3Cfilter id='b' color-interpolation-filters='sRGB'%3E%3CfeGaussianBlur stdDeviation='20'/%3E%3CfeColorMatrix values='1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 100 -1' result='s'/%3E%3CfeFlood x='0' y='0' width='100%25' height='100%25'/%3E%3CfeComposite operator='out' in='s'/%3E%3CfeComposite in2='SourceGraphic'/%3E%3CfeGaussianBlur stdDeviation='20'/%3E%3C/filter%3E%3Cimage width='100%25' height='100%25' x='0' y='0' preserveAspectRatio='none' style='filter: url(%23b);' href='data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mP8/wcAAwAB/ucNC4UAAAAASUVORK5CYII='/%3E%3C/svg%3E")" srcSet="https://cdn.sanity.io/images/w77i7m8x/production/7958bf3d43a30e661ca74cf0510f250d9b99ecef-199x81.svg?w=256&q=75&fit=clip&auto=format 1x, https://cdn.sanity.io/images/w77i7m8x/production/7958bf3d43a30e661ca74cf0510f250d9b99ecef-199x81.svg?w=640&q=75&fit=clip&auto=format 2x" src="https://cdn.sanity.io/images/w77i7m8x/production/7958bf3d43a30e661ca74cf0510f250d9b99ecef-199x81.svg?w=640&q=75&fit=clip&auto=format"/></div><div class="flex w-[calc(33%-16px)] flex-col items-center gap-2 sm:w-[calc(33%-16px)] md:w-auto"><img alt="Hugging Face" loading="lazy" width="199" height="82" decoding="async" data-nimg="1" class="mx-auto undefined" style="color:transparent;background-size:cover;background-position:50% 50%;background-repeat:no-repeat;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 199 82'%3E%3Cfilter id='b' color-interpolation-filters='sRGB'%3E%3CfeGaussianBlur stdDeviation='20'/%3E%3CfeColorMatrix values='1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 100 -1' result='s'/%3E%3CfeFlood x='0' y='0' width='100%25' height='100%25'/%3E%3CfeComposite operator='out' in='s'/%3E%3CfeComposite in2='SourceGraphic'/%3E%3CfeGaussianBlur stdDeviation='20'/%3E%3C/filter%3E%3Cimage width='100%25' height='100%25' x='0' y='0' preserveAspectRatio='none' style='filter: url(%23b);' href='data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mP8/wcAAwAB/ucNC4UAAAAASUVORK5CYII='/%3E%3C/svg%3E")" srcSet="https://cdn.sanity.io/images/w77i7m8x/production/68e2e5024898bcd6f6d142e0306dc7564787e1d7-199x82.svg?w=256&q=75&fit=clip&auto=format 1x, https://cdn.sanity.io/images/w77i7m8x/production/68e2e5024898bcd6f6d142e0306dc7564787e1d7-199x82.svg?w=640&q=75&fit=clip&auto=format 2x" src="https://cdn.sanity.io/images/w77i7m8x/production/68e2e5024898bcd6f6d142e0306dc7564787e1d7-199x82.svg?w=640&q=75&fit=clip&auto=format"/></div></div></div></div></section><footer class="pb-16 pt-5 md:pb-28 md:pt-20 "><div class="container grid gap-x-4 gap-y-8 pb-8 xxs:grid-cols-2 sm:grid-cols-3 sm:gap-5 md:pb-[110px] lg:grid-cols-6"><div><p class="t-16 !leading-[1.05] text-heading-black">Product</p><div class="mt-4 flex flex-col gap-3 lg:mt-8 lg:gap-4"><a class="text-[14px] !leading-[1.05] !tracking-[0.08px] transition-colors duration-300 md:text-[16px] text-heading-black/60 hover:text-gray-1000/100" href="/blog/how-tailscale-works">How it works</a><a class="text-[14px] !leading-[1.05] !tracking-[0.08px] transition-colors duration-300 md:text-[16px] text-heading-black/60 hover:text-gray-1000/100" href="/pricing">Pricing</a><a class="text-[14px] !leading-[1.05] !tracking-[0.08px] transition-colors duration-300 md:text-[16px] text-heading-black/60 hover:text-gray-1000/100" href="/integrations">Integrations</a><a class="text-[14px] !leading-[1.05] !tracking-[0.08px] transition-colors duration-300 md:text-[16px] text-heading-black/60 hover:text-gray-1000/100" href="/features">Features</a><a class="text-[14px] !leading-[1.05] !tracking-[0.08px] transition-colors duration-300 md:text-[16px] text-heading-black/60 hover:text-gray-1000/100" href="/compare">Compare Tailscale</a></div></div><div><p class="t-16 !leading-[1.05] text-heading-black">Use Cases</p><div class="mt-4 flex flex-col gap-3 lg:mt-8 lg:gap-4"><a class="text-[14px] !leading-[1.05] !tracking-[0.08px] transition-colors duration-300 md:text-[16px] text-heading-black/60 hover:text-gray-1000/100" href="/use-cases/business-vpn">Business VPN</a><a class="text-[14px] !leading-[1.05] !tracking-[0.08px] transition-colors duration-300 md:text-[16px] text-heading-black/60 hover:text-gray-1000/100" href="/use-cases/remote-access">Remote Access</a><a class="text-[14px] !leading-[1.05] !tracking-[0.08px] transition-colors duration-300 md:text-[16px] text-heading-black/60 hover:text-gray-1000/100" href="/use-cases/site-to-site-networking">Site-to-Site Networking</a><a class="text-[14px] !leading-[1.05] !tracking-[0.08px] transition-colors duration-300 md:text-[16px] text-heading-black/60 hover:text-gray-1000/100" href="/use-cases/homelab">Homelab</a><a class="text-[14px] !leading-[1.05] !tracking-[0.08px] transition-colors duration-300 md:text-[16px] text-heading-black/60 hover:text-gray-1000/100" href="/enterprise">Enterprise</a></div></div><div><p class="t-16 !leading-[1.05] text-heading-black">Resources</p><div class="mt-4 flex flex-col gap-3 lg:mt-8 lg:gap-4"><a class="text-[14px] !leading-[1.05] !tracking-[0.08px] transition-colors duration-300 md:text-[16px] text-heading-black/60 hover:text-gray-1000/100" href="/blog">Blog</a><a class="text-[14px] !leading-[1.05] !tracking-[0.08px] transition-colors duration-300 md:text-[16px] text-heading-black/60 hover:text-gray-1000/100" href="/events-webinars">Events & Webinars</a><a class="text-[14px] !leading-[1.05] !tracking-[0.08px] transition-colors duration-300 md:text-[16px] text-heading-black/60 hover:text-gray-1000/100" href="/partnerships">Partnerships</a></div></div><div><p class="t-16 !leading-[1.05] text-heading-black">Company</p><div class="mt-4 flex flex-col gap-3 lg:mt-8 lg:gap-4"><a class="text-[14px] !leading-[1.05] !tracking-[0.08px] transition-colors duration-300 md:text-[16px] text-heading-black/60 hover:text-gray-1000/100" href="/company">Company</a><a class="text-[14px] !leading-[1.05] !tracking-[0.08px] transition-colors duration-300 md:text-[16px] text-heading-black/60 hover:text-gray-1000/100" href="/careers">Careers</a><a class="text-[14px] !leading-[1.05] !tracking-[0.08px] transition-colors duration-300 md:text-[16px] text-heading-black/60 hover:text-gray-1000/100" href="/press">Press</a></div></div><div><p class="t-16 !leading-[1.05] text-heading-black">Help & Support</p><div class="mt-4 flex flex-col gap-3 lg:mt-8 lg:gap-4"><a class="text-[14px] !leading-[1.05] !tracking-[0.08px] transition-colors duration-300 md:text-[16px] text-heading-black/60 hover:text-gray-1000/100" href="/contact/support">Support</a><a class="text-[14px] !leading-[1.05] !tracking-[0.08px] transition-colors duration-300 md:text-[16px] text-heading-black/60 hover:text-gray-1000/100" href="/contact/sales">Sales</a><a class="text-[14px] !leading-[1.05] !tracking-[0.08px] transition-colors duration-300 md:text-[16px] text-heading-black/60 hover:text-gray-1000/100" href="/security">Security</a><a class="text-[14px] !leading-[1.05] !tracking-[0.08px] transition-colors duration-300 md:text-[16px] text-heading-black/60 hover:text-gray-1000/100" href="/legal">Legal</a><a class="text-[14px] !leading-[1.05] !tracking-[0.08px] transition-colors duration-300 md:text-[16px] text-heading-black/60 hover:text-gray-1000/100" href="/opensource">Open Source</a><a class="text-[14px] !leading-[1.05] !tracking-[0.08px] transition-colors duration-300 md:text-[16px] text-heading-black/60 hover:text-gray-1000/100" href="/changelog">Changelog</a></div></div><div><p class="t-16 !leading-[1.05] text-heading-black">Learn</p><div class="mt-4 flex flex-col gap-3 lg:mt-8 lg:gap-4"><a class="text-[14px] !leading-[1.05] !tracking-[0.08px] transition-colors duration-300 md:text-[16px] text-heading-black/60 hover:text-gray-1000/100" href="/learn/generate-ssh-keys">SSH keys</a><a class="text-[14px] !leading-[1.05] !tracking-[0.08px] transition-colors duration-300 md:text-[16px] text-heading-black/60 hover:text-gray-1000/100" href="/learn/ssh-into-docker-container">Docker SSH</a><a class="text-[14px] !leading-[1.05] !tracking-[0.08px] transition-colors duration-300 md:text-[16px] text-heading-black/60 hover:text-gray-1000/100" href="/learn/devsecops">DevSecOps</a><a class="text-[14px] !leading-[1.05] !tracking-[0.08px] transition-colors duration-300 md:text-[16px] text-heading-black/60 hover:text-gray-1000/100" href="/learn/multicloud">Multicloud</a><a class="text-[14px] !leading-[1.05] !tracking-[0.08px] transition-colors duration-300 md:text-[16px] text-heading-black/60 hover:text-gray-1000/100" href="/blog/how-nat-traversal-works">NAT Traversal</a><a class="text-[14px] !leading-[1.05] !tracking-[0.08px] transition-colors duration-300 md:text-[16px] text-heading-black/60 hover:text-gray-1000/100" href="/blog/2021-09-private-dns-with-magicdns">MagicDNS</a><a class="text-[14px] !leading-[1.05] !tracking-[0.08px] transition-colors duration-300 md:text-[16px] text-heading-black/60 hover:text-gray-1000/100" href="/learn/privileged-access-management">PAM</a><a class="text-[14px] !leading-[1.05] !tracking-[0.08px] transition-colors duration-300 md:text-[16px] text-heading-black/60 hover:text-gray-1000/100" href="/learn/principle-of-least-privilege">PoLP</a><a class="text-[14px] !leading-[1.05] !tracking-[0.08px] transition-colors duration-300 md:text-[16px] text-heading-black/60 hover:text-gray-1000/100" href="/learn">All articles</a></div></div></div><div class="container"><div class="border-stroke-gray-100 grid grid-cols-1 gap-x-5 gap-y-8 border-t pt-8 xxs:grid-cols-2 md:grid-cols-12 md:pt-[70px] lg:gap-y-[60px]"><div class="xxs:col-span-2 md:col-span-4"><a class="block w-[160px]" title="Homepage" data-track="Link Clicked" data-track-properties="{"label": "Footer logo"}" href="/"><svg class="transition-colors duration-200 " width="100%" height="100%" viewBox="0 0 110 20" fill="none" xmlns="http://www.w3.org/2000/svg"><ellipse cx="2.44719" cy="10.1796" rx="2.44719" ry="2.44128" fill="#1F1E1E"></ellipse><ellipse cx="9.79094" cy="10.1796" rx="2.44719" ry="2.44128" fill="#1F1E1E"></ellipse><ellipse opacity="0.2" cx="2.44719" cy="17.5077" rx="2.44719" ry="2.44128" fill="#1F1E1E"></ellipse><ellipse opacity="0.2" cx="17.1269" cy="17.5077" rx="2.44719" ry="2.44128" fill="#1F1E1E"></ellipse><ellipse cx="9.79094" cy="17.5077" rx="2.44719" ry="2.44128" fill="#1F1E1E"></ellipse><ellipse cx="17.1269" cy="10.1796" rx="2.44719" ry="2.44128" fill="#1F1E1E"></ellipse><ellipse opacity="0.2" cx="2.44719" cy="2.85924" rx="2.44719" ry="2.44128" fill="#1F1E1E"></ellipse><ellipse opacity="0.2" cx="9.79094" cy="2.85924" rx="2.44719" ry="2.44128" fill="#1F1E1E"></ellipse><ellipse opacity="0.2" cx="17.1269" cy="2.85924" rx="2.44719" ry="2.44128" fill="#1F1E1E"></ellipse><path d="M34.3979 18.458C35.0907 18.458 35.6536 18.3933 36.3248 18.2637V15.7584C35.9134 15.9096 35.4588 15.9528 35.0258 15.9528C33.965 15.9528 33.5753 15.4344 33.5753 14.441V9.34402H36.3248V6.83875H33.5753V3.12403H30.5443V6.83875H28.5742V9.34402H30.5443V14.7217C30.5443 17.0974 31.8 18.458 34.3979 18.458Z" fill="#1F1E1E"></path><path d="M41.2747 18.458C42.8984 18.458 43.9809 17.9181 44.5222 17.0758C44.5655 17.443 44.6954 17.9397 44.8686 18.2421H47.5964C47.4449 17.7237 47.3366 16.903 47.3366 16.3631V10.4455C47.3366 8.005 45.583 6.62277 42.617 6.62277C40.3654 6.62277 38.6118 7.46507 37.6376 8.69611L39.3696 10.4023C40.149 9.5384 41.1448 9.08486 42.3572 9.08486C43.8294 9.08486 44.4789 9.58159 44.4789 10.3159C44.4789 10.9422 44.0459 11.3742 41.7077 11.3742C39.4562 11.3742 37.183 12.3028 37.183 14.8945C37.183 17.2918 38.9149 18.458 41.2747 18.458ZM41.8809 16.1687C40.7118 16.1687 40.1706 15.672 40.1706 14.7865C40.1706 14.009 40.8201 13.4907 41.9026 13.4907C43.6345 13.4907 44.1108 13.3827 44.4789 13.0155V13.9442C44.4789 15.1753 43.4397 16.1687 41.8809 16.1687Z" fill="#1F1E1E"></path><path d="M49.3069 5.39173H52.4677V2.5625H49.3069V5.39173ZM49.3718 18.2421H52.4028V6.83875H49.3718V18.2421Z" fill="#1F1E1E"></path><path d="M54.6109 18.2421H57.6418V2.90805H54.6109V18.2421Z" fill="#1F1E1E"></path><path d="M63.9416 18.458C67.2757 18.458 68.986 16.7087 68.986 14.8729C68.986 13.2099 68.1417 11.9789 65.3705 11.4821C63.4221 11.1366 62.2097 10.7046 62.2097 10.0351C62.2097 9.45201 62.9025 9.04166 64.0715 9.04166C65.1107 9.04166 65.9767 9.38722 66.6262 10.1431L68.553 8.52333C67.5788 7.31389 65.9767 6.62277 64.0715 6.62277C61.1489 6.62277 59.3303 8.17777 59.3303 10.0783C59.3303 12.1517 61.2354 13.0803 63.2922 13.4475C65.0025 13.7499 65.9551 14.0738 65.9551 14.8081C65.9551 15.4344 65.2839 15.9528 64.0066 15.9528C62.7509 15.9528 61.7767 15.3696 61.322 14.5058L58.7674 15.7152C59.3952 17.2702 61.5385 18.458 63.9416 18.458Z" fill="#1F1E1E"></path><path d="M75.7621 18.458C77.9271 18.458 79.4859 17.5942 80.6549 15.6504L78.2302 14.4194C77.7755 15.3265 77.0395 15.9528 75.7621 15.9528C73.8353 15.9528 72.7961 14.3978 72.7961 12.5188C72.7961 10.6399 73.9003 9.12805 75.7621 9.12805C76.9312 9.12805 77.7106 9.75437 78.1652 10.7046L80.6116 9.40882C79.7889 7.61625 78.1652 6.62277 75.7621 6.62277C71.8003 6.62277 69.7652 9.5168 69.7652 12.5188C69.7652 15.78 72.2333 18.458 75.7621 18.458Z" fill="#1F1E1E"></path><path d="M85.4829 18.458C87.1067 18.458 88.1891 17.9181 88.7304 17.0758C88.7737 17.443 88.9036 17.9397 89.0768 18.2421H91.8046C91.6531 17.7237 91.5448 16.903 91.5448 16.3631V10.4455C91.5448 8.005 89.7912 6.62277 86.8252 6.62277C84.5737 6.62277 82.8201 7.46507 81.8458 8.69611L83.5778 10.4023C84.3572 9.5384 85.353 9.08486 86.5654 9.08486C88.0376 9.08486 88.6871 9.58159 88.6871 10.3159C88.6871 10.9422 88.2541 11.3742 85.9159 11.3742C83.6644 11.3742 81.3912 12.3028 81.3912 14.8945C81.3912 17.2918 83.1231 18.458 85.4829 18.458ZM86.0891 16.1687C84.9201 16.1687 84.3788 15.672 84.3788 14.7865C84.3788 14.009 85.0283 13.4907 86.1108 13.4907C87.8427 13.4907 88.319 13.3827 88.6871 13.0155V13.9442C88.6871 15.1753 87.6479 16.1687 86.0891 16.1687Z" fill="#1F1E1E"></path><path d="M93.3263 18.2421H96.3573V2.90805H93.3263V18.2421Z" fill="#1F1E1E"></path><path d="M103.631 18.458C105.861 18.458 107.658 17.5726 108.654 15.996L106.359 14.5274C105.753 15.4776 104.952 15.996 103.631 15.996C102.138 15.996 101.055 15.1753 100.774 13.5771H109.39V12.5188C109.39 9.5168 107.55 6.62277 103.61 6.62277C99.8643 6.62277 97.8293 9.5384 97.8293 12.5404C97.8293 16.8167 101.055 18.458 103.631 18.458ZM100.882 11.2014C101.358 9.75437 102.354 9.08486 103.675 9.08486C105.168 9.08486 106.078 9.97034 106.381 11.2014H100.882Z" fill="#1F1E1E"></path></svg></a></div><div class="flex flex-col gap-[14px] md:col-span-2"><a class="t-14 !leading-[1.05] underline transition-colors duration-300 text-heading-black/60 hover:text-gray-1000/100" href="/terms">Terms of Service</a><a class="t-14 !leading-[1.05] underline transition-colors duration-300 text-heading-black/60 hover:text-gray-1000/100" href="/privacy-policy">Privacy Policy</a></div><div class="md:col-span-3"><div class="t-14 max-w-[250px] !leading-[1.35] text-heading-black/60 ">WireGuard is a registered trademark of Jason A. Donenfeld.</div></div><div class="flex gap-[6px] xxs:col-span-2 md:col-span-3 md:flex md:justify-end"><a target="_blank" class="group transition-colors duration-300 text-heading-black hover:text-gray-200" data-track="Link Clicked" data-track-properties="{"label": "Footer Twitter logo"}" href="https://twitter.com/tailscale"><svg width="28" height="29" viewBox="0 0 28 29" fill="none" xmlns="http://www.w3.org/2000/svg"><rect y="0.988281" width="28" height="28" rx="14" fill="currentColor"></rect><path class=" transition-colors duration-300 group-hover:fill-heading-black" d="M8.03169 9L13.0509 15.0672L8 20H9.13675L13.5587 15.6812L17.1317 20H21L15.6985 13.5916L20.3997 9H19.263L15.1906 12.9775L11.9001 9H8.03169ZM9.70337 9.75698H11.4805L19.3281 19.2429H17.551L9.70337 9.75698Z" fill="white"></path></svg></a><a target="_blank" class="group transition-colors duration-300 text-heading-black hover:text-gray-200" data-track="Link Clicked" data-track-properties="{"label": "Footer Facebook logo"}" href="https://www.facebook.com/tailscale/"><svg width="28" height="28" viewBox="0 0 28 28" fill="none" xmlns="http://www.w3.org/2000/svg"><rect x="0.21875" width="27.2195" height="27.2195" rx="13.6098" fill="currentColor"></rect><path class="transition-colors duration-300 group-hover:fill-heading-black" d="M12.434 19.6598L12.4179 14.8081H10.3008V12.7289H12.4179V11.3427C12.4179 9.47188 13.5974 8.57031 15.2966 8.57031C16.1106 8.57031 16.8101 8.62983 17.014 8.65643V10.6115L15.8355 10.612C14.9114 10.612 14.7324 11.0433 14.7324 11.6762V12.7289H17.3577L16.652 14.8081H14.7324V19.6598H12.434Z" fill="#fff"></path></svg></a><a target="_blank" class="group transition-colors duration-300 text-heading-black hover:text-gray-200" data-track="Link Clicked" data-track-properties="{"label": "Footer LinkedIn logo"}" href="https://www.linkedin.com/company/tailscale"><svg width="28" height="28" viewBox="0 0 28 28" fill="none" xmlns="http://www.w3.org/2000/svg"><rect x="0.439453" width="27.2195" height="27.2195" rx="13.6098" fill="currentColor"></rect><path class=" transition-colors duration-300 group-hover:fill-heading-black" d="M8.68685 18.6518H10.8825V11.5871H8.68685V18.6518Z" fill="white"></path><path class=" transition-colors duration-300 group-hover:fill-heading-black" d="M8.50195 9.34036C8.50195 10.0352 9.07976 10.6143 9.77312 10.6143C10.4896 10.6143 11.0443 10.0584 11.0443 9.34036C11.0443 8.64547 10.4665 8.06641 9.77312 8.06641C9.07976 8.06641 8.50195 8.64547 8.50195 9.34036Z" fill="white"></path><path class=" transition-colors duration-300 group-hover:fill-heading-black" d="M16.8917 18.6518H19.0873V14.7836C19.0873 12.8843 18.6713 11.425 16.4525 11.425C15.3894 11.425 14.6729 12.0041 14.3724 12.56H14.3493V11.5871H12.2461V18.6518H14.4418V15.1542C14.4418 14.2509 14.6267 13.3475 15.7592 13.3475C16.8686 13.3475 16.8917 14.413 16.8917 15.2237V18.6518Z" fill="white"></path></svg></a><a target="_blank" rel="me" class="group transition-colors duration-300 text-heading-black hover:text-gray-200" data-track="Link Clicked" data-track-properties="{"label": "Footer Mastodon logo"}" href="https://hachyderm.io/@tailscale"><svg width="28" height="29" viewBox="0 0 28 29" fill="none" xmlns="http://www.w3.org/2000/svg"><rect y="0.988281" width="28" height="28" rx="14" fill="currentColor"></rect><path class="transition-colors duration-300 group-hover:fill-heading-black" fill="white" d="M19.9516 10.8781C19.7667 9.48128 18.5693 8.38051 17.1498 8.16721C16.9104 8.13117 16.003 8 13.9011 8H13.8854C11.7829 8 11.3319 8.13117 11.0924 8.16721C9.71243 8.3746 8.45223 9.3637 8.14648 10.777C7.99942 11.4731 7.98373 12.2447 8.01105 12.9526C8.04999 13.9677 8.05755 14.981 8.14823 15.992C8.21091 16.6635 8.32027 17.3297 8.47548 17.9855C8.76612 19.1968 9.94262 20.2048 11.0953 20.616C12.3294 21.0449 13.6566 21.1161 14.9282 20.8216C15.0681 20.7886 15.2065 20.7502 15.3432 20.7064C15.6519 20.6066 16.014 20.4949 16.2803 20.2987C16.2839 20.296 16.2869 20.2924 16.289 20.2883C16.2911 20.2842 16.2923 20.2797 16.2925 20.2751V19.2955C16.2924 19.2911 16.2914 19.2869 16.2895 19.283C16.2876 19.2791 16.2849 19.2758 16.2815 19.2731C16.2782 19.2704 16.2743 19.2686 16.2702 19.2676C16.266 19.2667 16.2617 19.2667 16.2576 19.2677C15.4429 19.4655 14.608 19.5647 13.7703 19.5631C12.3288 19.5631 11.941 18.8677 11.83 18.5782C11.7408 18.3279 11.6841 18.0669 11.6614 17.8018C11.6612 17.7973 11.662 17.7929 11.6638 17.7888C11.6656 17.7847 11.6683 17.7811 11.6717 17.7783C11.6751 17.7755 11.6791 17.7735 11.6834 17.7726C11.6876 17.7716 11.6921 17.7717 11.6963 17.7728C12.4975 17.9693 13.3188 18.0685 14.1429 18.0682C14.3411 18.0682 14.5387 18.0682 14.737 18.0629C15.5659 18.0393 16.4395 17.9962 17.255 17.8343C17.2754 17.8301 17.2957 17.8266 17.3132 17.8213C18.5995 17.5701 19.8237 16.7819 19.9481 14.786C19.9527 14.7074 19.9644 13.963 19.9644 13.8814C19.965 13.6043 20.0521 11.9156 19.9516 10.8781ZM17.9718 15.8584H16.6191V12.4905C16.6191 11.7815 16.3285 11.4199 15.7373 11.4199C15.0875 11.4199 14.762 11.8477 14.762 12.6926V14.5361H13.4175V12.6926C13.4175 11.8477 13.0914 11.4199 12.4415 11.4199C11.8538 11.4199 11.5603 11.7815 11.5597 12.4905V15.8584H10.2083V12.3883C10.2083 11.6793 10.3863 11.116 10.7425 10.6985C11.1098 10.2819 11.5917 10.068 12.1898 10.068C12.8821 10.068 13.4053 10.3386 13.754 10.8793L14.0906 11.4536L14.4277 10.8793C14.7765 10.3386 15.2996 10.068 15.9908 10.068C16.5883 10.068 17.0702 10.2819 17.4387 10.6985C17.7949 11.1156 17.9729 11.6789 17.9729 12.3883L17.9718 15.8584Z"></path></svg></a><a target="_blank" class="group transition-colors duration-300 text-heading-black hover:text-gray-200" data-track="Link Clicked" data-track-properties="{"label": "Footer Youtube logo"}" href="https://www.youtube.com/@Tailscale"><svg width="28" height="28" viewBox="0 0 28 28" fill="none" xmlns="http://www.w3.org/2000/svg"><rect x="0.658203" width="27.2195" height="27.2195" rx="13.6098" fill="currentColor"></rect><path class=" transition-colors duration-300 group-hover:fill-heading-black" d="M19.6754 11.46C19.5368 10.5863 19.121 9.98138 18.1506 9.84696C16.6258 9.57813 14.2693 9.57812 14.2693 9.57812C14.2693 9.57812 11.9128 9.57813 10.388 9.84696C9.4177 9.98138 8.93254 10.5863 8.86323 11.46C8.72461 12.3337 8.72461 13.6106 8.72461 13.6106C8.72461 13.6106 8.72461 14.8876 8.86323 15.7613C9.00185 16.635 9.4177 17.2399 10.388 17.3743C11.9128 17.6432 14.2693 17.6432 14.2693 17.6432C14.2693 17.6432 16.6258 17.6432 18.1506 17.3743C19.121 17.1727 19.5368 16.635 19.6754 15.7613C19.814 14.8876 19.814 13.6106 19.814 13.6106C19.814 13.6106 19.814 12.3337 19.6754 11.46ZM12.8831 15.6269V11.5944L16.3486 13.6106L12.8831 15.6269Z" fill="white"></path></svg></a></div><div class="t-14 flex flex-wrap tracking-[0.07px] xxs:col-span-2 md:col-span-12 text-heading-black/60 ">© <!-- -->2025<!-- --> <!-- -->Tailscale Inc. All rights reserved. Tailscale is a registered trademark of Tailscale Inc.</div></div></div></footer><script id="hs-script-loader" async="" defer="" src="//js.hs-scripts.com/40004831.js"></script></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{"data":{"page":{"overwriteCTAColor":true,"cta":null,"parent":null,"ctaColor":"blue","_type":"page","themeColor":null,"removeCTA":false,"_id":"6ebebdd7-d862-4b40-b9aa-ce389f0471ca","invertHeader":null,"sections":[{"_type":"landingPage","landingPageLayout":"blog","blog":{"_type":"blogLandingPage","masthead":{"slider":[{"excerpt":null,"flexContent":[{"_key":"b072bb779061","markDefs":[],"children":[{"_type":"span","marks":[],"text":"Tailscale has raised $160 million USD ($230 million CAD) in our Series C, led by Accel with participation from CRV, Insight Partners, Heavybit, and Uncork Capital. Existing angel investor George Kurtz - CEO of Crowdstrike is also included in this round, as well as Anthony Casalena - CEO of Squarespace, who joins as a new investor for Series C.","_key":"84393b2cc478"}],"_type":"block","style":"normal"},{"_type":"block","style":"normal","_key":"476bdcd24d20","markDefs":[],"children":[{"marks":[],"text":"There’s a lot packed into that sentence. But the real question is — why should you care?","_key":"383a93212dc9","_type":"span"}]},{"title":"$160M","display":"block","_type":"assetBlock","_key":"b5ff75067700","asset":{"video":{"playType":"click","useMobileStaticAlt":false,"clickType":"watchVideoCaption","mobileStaticAlt":{"alignment":"center","type":"image","useMobileAlternativeImage":false,"placeholderColor":{"_type":"colors","color":"none"},"_type":"asset","video":{"mobileStaticAlt":{"alignment":"center","type":"image","useMobileAlternativeImage":false,"placeholderColor":{"color":"none","_type":"colors"},"_type":"asset","video":{"mobileStaticAlt":{"useMobileAlternativeImage":false,"placeholderColor":{"color":"none","_type":"colors"},"_type":"asset","video":{"playType":"click","useMobileStaticAlt":false,"clickType":"watchVideoCaption"},"alignment":"center","type":"image"},"playType":"click","useMobileStaticAlt":false,"clickType":"watchVideoCaption"}},"playType":"click","useMobileStaticAlt":false,"clickType":"watchVideoCaption"}}},"alignment":"center","type":"image","useMobileAlternativeImage":false,"image":{"alt":"$160 Million Series C","asset":{"_ref":"image-a2d4cd932d9b8c035b001b367707d080a8f66f85-2304x1240-png","_type":"reference"},"_type":"sanityImage"},"placeholderColor":{"color":"none","_type":"colors"},"_type":"asset"}},{"children":[{"_type":"span","marks":[],"text":"Venture money is a tool.","_key":"7ed72a499b17"}],"_type":"block","style":"h3","_key":"2e3976cc8e2e","markDefs":[]},{"children":[{"marks":[],"text":"When we started Tailscale in 2019, we weren't even sure we wanted to be a venture-backed company. We just wanted to fix networking. Or, more specifically, make networking disappear — reduce the number of times anyone had to think about NAT traversal or VPN configurations ever again.","_key":"b3c9051ba266","_type":"span"}],"_type":"block","style":"normal","_key":"9909673cfd76","markDefs":[]},{"style":"normal","_key":"c3b5476a7e2f","markDefs":[{"href":"https://tailscale.com/blog/ai-normal","_key":"726848e00558","_type":"link"}],"children":[{"_type":"span","marks":[],"text":"That might sound simple, but it wasn’t. Here we are, six years later, and millions of people rely on Tailscale every day, connecting their homelabs, their apps, their companies, their ","_key":"0105e74aa8bc"},{"_type":"span","marks":["726848e00558"],"text":"AI workloads","_key":"ff101777604d"},{"marks":[],"text":". Some use it because they love networking and want better tools. Many use it because they have better things to do – they don’t want to think about networking at all.","_key":"2761d804ca17","_type":"span"}],"_type":"block"},{"style":"normal","_key":"697129c243b7","markDefs":[],"children":[{"_type":"span","marks":[],"text":"Either way, the outcome is the same: things connect, securely and privately, without the traditional headaches.","_key":"8a466eb1665c"}],"_type":"block"},{"_key":"407f3600c8aa","asset":{"type":"image","useMobileAlternativeImage":false,"image":{"asset":{"_ref":"image-976379382bac07b73dead2b27f3f75bac6665e08-2304x1240-png","_type":"reference"},"_type":"sanityImage","alt":"Identity first, Decentralized, Empowered"},"placeholderColor":{"color":"none","_type":"colors"},"_type":"asset","video":{"mobileStaticAlt":{"useMobileAlternativeImage":false,"placeholderColor":{"color":"none","_type":"colors"},"_type":"asset","video":{"mobileStaticAlt":{"video":{"mobileStaticAlt":{"video":{"clickType":"watchVideoCaption","playType":"click","useMobileStaticAlt":false},"alignment":"center","type":"image","useMobileAlternativeImage":false,"placeholderColor":{"color":"none","_type":"colors"},"_type":"asset"},"playType":"click","useMobileStaticAlt":false,"clickType":"watchVideoCaption"},"alignment":"center","type":"image","useMobileAlternativeImage":false,"placeholderColor":{"color":"none","_type":"colors"},"_type":"asset"},"playType":"click","useMobileStaticAlt":false,"clickType":"watchVideoCaption"},"alignment":"center","type":"image"},"playType":"click","useMobileStaticAlt":false,"clickType":"watchVideoCaption"},"alignment":"center"},"title":"Identity first, Decentralized, Empowered","display":"block","_type":"assetBlock"},{"_type":"block","style":"h3","_key":"e77623a68e04","markDefs":[],"children":[{"_type":"span","marks":[],"text":"This round isn’t about us — it’s about what we build next, for you.","_key":"70ccb7ad0b76"}]},{"_type":"block","style":"normal","_key":"4af0d8f7c363","markDefs":[],"children":[{"_type":"span","marks":[],"text":"Even though we already had a long runway, we raised this Series C because we realized the world had started raining opportunities. We want to go faster where it matters:","_key":"60ba6e912ec2"}]},{"level":1,"_type":"block","style":"normal","_key":"5dd88197bf4c","listItem":"bullet","markDefs":[],"children":[{"_type":"span","marks":[],"text":"Removing friction","_key":"5d4c17fa06a8"}]},{"_key":"f42f4858e558","listItem":"bullet","markDefs":[],"children":[{"_type":"span","marks":[],"text":"Scaling the network without scaling complexity","_key":"12e5dc357efe"}],"level":1,"_type":"block","style":"normal"},{"level":1,"_type":"block","style":"normal","_key":"4b0b5f9f21a7","listItem":"bullet","markDefs":[],"children":[{"_type":"span","marks":[],"text":"Making identity, not IP addresses, the core of secure connectivity","_key":"e3bee019e343"}]},{"children":[{"marks":[],"text":"The Internet wasn’t built with identity in mind. It was built for location — packets sent between machines, not people. Everything that came after — VPNs, firewalls, Zero Trust — are attempts to patch over that original gap.","_key":"0f3773a2c5b7","_type":"span"}],"_type":"block","style":"normal","_key":"85d9eb426b98","markDefs":[]},{"markDefs":[],"children":[{"_type":"span","marks":[],"text":"We think there’s a better way forward. We're calling it ","_key":"c93e5c3b0622"},{"_type":"span","marks":["strong"],"text":"identity-first networking.","_key":"dae52c5b0e3b"}],"_type":"block","style":"normal","_key":"37b14bb58f6f"},{"children":[{"_type":"span","marks":[],"text":"When you connect to something with Tailscale, you’re not just an IP connecting to a server at some IP. You’re connecting to your app, your teammate, your service — wherever it happens to be running right now. That’s how it should work.","_key":"528c0d72deab"}],"_type":"block","style":"normal","_key":"30d0c21d9da0","markDefs":[]},{"display":"block","_type":"assetBlock","_key":"eda11367f6a7","asset":{"type":"image","useMobileAlternativeImage":false,"image":{"_type":"sanityImage","alt":"Product Innovation, Expansion, Team Growth","asset":{"_ref":"image-f60ab1adce50919784344b614048d6ae35b3723a-2304x1240-png","_type":"reference"}},"placeholderColor":{"color":"none","_type":"colors"},"_type":"asset","video":{"mobileStaticAlt":{"video":{"useMobileStaticAlt":false,"clickType":"watchVideoCaption","mobileStaticAlt":{"_type":"asset","video":{"mobileStaticAlt":{"placeholderColor":{"color":"none","_type":"colors"},"_type":"asset","video":{"playType":"click","useMobileStaticAlt":false,"clickType":"watchVideoCaption"},"alignment":"center","type":"image","useMobileAlternativeImage":false},"playType":"click","useMobileStaticAlt":false,"clickType":"watchVideoCaption"},"alignment":"center","type":"image","useMobileAlternativeImage":false,"placeholderColor":{"color":"none","_type":"colors"}},"playType":"click"},"alignment":"center","type":"image","useMobileAlternativeImage":false,"placeholderColor":{"color":"none","_type":"colors"},"_type":"asset"},"playType":"click","useMobileStaticAlt":false,"clickType":"watchVideoCaption"},"alignment":"center"},"title":"Product Innovation, Expansion, Team Growth"},{"_key":"914a8590b6f3","markDefs":[],"children":[{"text":"Why now? Why raise this much?","_key":"a3c88617fa92","_type":"span","marks":["strong"]}],"_type":"block","style":"h3"},{"_type":"block","style":"normal","_key":"fb9823def8e6","markDefs":[],"children":[{"_type":"span","marks":[],"text":"The last year made the need for this even more obvious. The AI industry, in particular, is struggling to rapidly mature its underlying infrastructure. Connecting GPUs across clouds, securing workloads across continents, migrating between cloud providers — it’s messy, it’s hard, and it breaks all the time.","_key":"dfb564b3cd9c"}]},{"style":"normal","_key":"e015916a1cf6","markDefs":[],"children":[{"_type":"span","marks":[],"text":"A surprising number of leading AI companies — Perplexity, Mistral, Cohere, Groq, Hugging Face — are now building on Tailscale to solve exactly this.","_key":"0389b0233abc"}],"_type":"block"},{"_type":"block","style":"normal","_key":"5746a4f95859","markDefs":[{"_type":"link","href":"https://tailscale.com/blog/welcome-grace-lin-10000-customers","_key":"6aecb46c1dd2"}],"children":[{"_type":"span","marks":[],"text":"It’s not just AI. Companies like Instacart, SAP, Telus, Motorola, and Duolingo and ","_key":"e5ccdf49d357"},{"_type":"span","marks":["6aecb46c1dd2"],"text":"thousands of others","_key":"41c6e810895b"},{"_type":"span","marks":[],"text":" use Tailscale to make their hybrid, remote, and cloud networks sane again.","_key":"170a98a99c7f"}]},{"markDefs":[{"_type":"link","href":"https://tailscale.com/blog/free-plan","_key":"e4a2b29ed8ce"},{"href":"https://tailscale.com/blog/community-projects","_key":"a328136f31f9","_type":"link"}],"children":[{"_type":"span","marks":[],"text":"This new funding helps us support all of that, faster. We're going to grow our engineering and product teams to unlock more markets faster. We're also investing further in our ","_key":"a28ec9336308"},{"_type":"span","marks":["e4a2b29ed8ce"],"text":"free support for free customers","_key":"57e914a32d02"},{"_type":"span","marks":[],"text":" promise and our ","_key":"5985f1e5a083"},{"_type":"span","marks":["a328136f31f9"],"text":"backward compatibility forever","_key":"a4c85be1aa3f"},{"_type":"span","marks":[],"text":" platform. Business is booming, and taking investment now lets us stay focused on making the network ","_key":"577ed3307f86"},{"_type":"span","marks":["em"],"text":"just work","_key":"f7febdbff2f2"},{"_type":"span","marks":[],"text":", whether you’re a startup, a Fortune 500, or a person running a Minecraft server.","_key":"b22506d7104b"}],"_type":"block","style":"normal","_key":"a57f4f4c19a2"},{"display":"block","_type":"assetBlock","_key":"6f58f07f6b5c","asset":{"_type":"asset","video":{"mobileStaticAlt":{"placeholderColor":{"_type":"colors","color":"none"},"_type":"asset","video":{"mobileStaticAlt":{"useMobileAlternativeImage":false,"placeholderColor":{"color":"none","_type":"colors"},"_type":"asset","video":{"mobileStaticAlt":{"placeholderColor":{"color":"none","_type":"colors"},"_type":"asset","video":{"playType":"click","useMobileStaticAlt":false,"clickType":"watchVideoCaption"},"alignment":"center","type":"image","useMobileAlternativeImage":false},"playType":"click","useMobileStaticAlt":false,"clickType":"watchVideoCaption"},"alignment":"center","type":"image"},"playType":"click","useMobileStaticAlt":false,"clickType":"watchVideoCaption"},"alignment":"center","type":"image","useMobileAlternativeImage":false},"playType":"click","useMobileStaticAlt":false,"clickType":"watchVideoCaption"},"alignment":"center","type":"image","useMobileAlternativeImage":false,"image":{"_type":"sanityImage","alt":"Accel, CRV, Heavybit, Insight Partners, Uncork","asset":{"_ref":"image-77caf25ede5967ca1b64325c52e8516c9aea3c3f-2304x1240-png","_type":"reference"}},"placeholderColor":{"color":"none","_type":"colors"}},"title":"Accel, CRV, Heavybit, Insight Partners, Uncork"},{"_type":"block","style":"h3","_key":"faec57c5244a","markDefs":[],"children":[{"_type":"span","marks":["strong"],"text":"Who’s behind this round?","_key":"605959c1d786"}]},{"style":"normal","_key":"01bc5f0bb43f","markDefs":[{"_type":"link","href":"https://www.accel.com/people/amit-kumar","_key":"b76d8428abea"}],"children":[{"_type":"span","marks":[],"text":"We’re lucky to have ","_key":"46c47fb343c1"},{"_type":"span","marks":["b76d8428abea"],"text":"Accel’s Amit Kumar","_key":"d7c864eaa274"},{"marks":[],"text":" — who led our Series A — leading this round too, now from their growth fund. And we’re excited to welcome Anthony Casalena of Squarespace, alongside returning investors CRV, Heavybit, Insight, and Uncork, and George Kurtz - CEO of Crowdstrike.","_key":"66246b21d04d","_type":"span"}],"_type":"block"},{"_key":"009150498295","markDefs":[],"children":[{"_type":"span","marks":[],"text":"The mix here matters. These are people who understand that the network is the right place for the security and identity layer. The boundary is shifting from the datacenter to the device — and from the device to the person holding it, or the container running on it.","_key":"b69ca2c99a91"}],"_type":"block","style":"normal"},{"asset":{"type":"image","useMobileAlternativeImage":false,"image":{"_type":"sanityImage","alt":"Connected Nodes","asset":{"_ref":"image-0eddc5196ffca9df679d1a05ad530c4566d2e936-2304x1240-png","_type":"reference"}},"placeholderColor":{"color":"none","_type":"colors"},"_type":"asset","video":{"useMobileStaticAlt":false,"clickType":"watchVideoCaption","mobileStaticAlt":{"placeholderColor":{"color":"none","_type":"colors"},"_type":"asset","video":{"mobileStaticAlt":{"type":"image","useMobileAlternativeImage":false,"placeholderColor":{"color":"none","_type":"colors"},"_type":"asset","video":{"mobileStaticAlt":{"_type":"asset","video":{"useMobileStaticAlt":false,"clickType":"watchVideoCaption","playType":"click"},"alignment":"center","type":"image","useMobileAlternativeImage":false,"placeholderColor":{"color":"none","_type":"colors"}},"playType":"click","useMobileStaticAlt":false,"clickType":"watchVideoCaption"},"alignment":"center"},"playType":"click","useMobileStaticAlt":false,"clickType":"watchVideoCaption"},"alignment":"center","type":"image","useMobileAlternativeImage":false},"playType":"click"},"alignment":"center"},"title":"Connected Nodes","display":"block","_type":"assetBlock","_key":"b2101de4e83f"},{"_type":"block","style":"h3","_key":"d772084cc650","markDefs":[],"children":[{"_type":"span","marks":["strong"],"text":"Thanks for being here.","_key":"4082f6f2f70c"}]},{"children":[{"_type":"span","marks":[],"text":"We wouldn’t be at this point without the thousands of businesses — and the millions of people — who've bet on us so far. You believed networking could be better, even when you didn’t want to have to think about it.","_key":"0a80e5e143f2"}],"_type":"block","style":"normal","_key":"b1fc6fcf9f13","markDefs":[]},{"children":[{"_key":"fdbabd8c5f13","_type":"span","marks":[],"text":"That’s fine. We think about it so you don’t have to."}],"_type":"block","style":"normal","_key":"bc61c3764509","markDefs":[]},{"_key":"05f934a54ccd","markDefs":[],"children":[{"_type":"span","marks":[],"text":"Thanks for being part of this. More soon.","_key":"608a8fda25cd"}],"_type":"block","style":"normal"},{"markDefs":[],"children":[{"text":"— Avery","_key":"e862ae2a76ca","_type":"span","marks":[]}],"_type":"block","style":"normal","_key":"7fbaf41a0976"}],"category":"company","featuredImage":{"_type":"sanityImage","alt":"Tailscale Series C icon representing C and 25","asset":{"_type":"reference","_ref":"image-ba01517ff0c3ed51485068db69af912c539ce32c-452x234-svg"}},"_id":"083f627c-4b64-4e91-9747-649331e01a8a","title":"Building the New Internet, together — our Series C and what's next","slug":{"current":"series-c","_type":"slug"},"publishedAt":"2025-04-08T14:00:00.000Z","authors":[{"member":{"image":{"alt":"Avery Pennarun Headshot","asset":{"_ref":"image-a389ecb80f53c38b95ef9739698831065fe034c8-200x200-jpg","_type":"reference"},"_type":"sanityImage"},"jobTitle":"CEO","name":"Avery Pennarun","socialLink":"https://twitter.com/apenwarr"},"_id":"1646214e-9d2e-45f5-92f9-7609d8e90e47","title":"Avery Pennarun","_updatedAt":"2024-10-10T19:37:49Z","_createdAt":"2023-10-23T14:14:42Z","_rev":"KLVqzQL7KTVccOrMxg0eQ4","_type":"teamMember"}]},{"slug":{"current":"5-things-5-years","_type":"slug"},"excerpt":null,"flexContent":[{"_key":"3878748c016c","markDefs":[],"children":[{"_type":"span","marks":["em"],"text":"(Oh, and we’re giving away lifetime Personal Plus plans, so keep reading! 🎉)","_key":"ce8a442ceee7"}],"_type":"block","style":"normal"},{"_key":"9f3154ea6245","markDefs":[],"children":[{"_type":"span","marks":[],"text":"","_key":"278631279eef"}],"_type":"block","style":"normal"},{"children":[{"_type":"span","marks":[],"text":"If we’d been a little more on top of our calendar, we might have published this blog post ","_key":"d919a8e8f7f4"},{"_type":"span","marks":["em"],"text":"yesterday","_key":"f8120be5a995"},{"_type":"span","marks":[],"text":" — exactly five years to the day that ","_key":"580cc1ed545b"},{"_type":"span","marks":["4c9658611b07"],"text":"Tailscale officially launched into general availability","_key":"a4b3717b60c6"},{"_type":"span","marks":[],"text":". But instead, we did what any good startup would do: we ","_key":"d60c801f086b"},{"_type":"span","marks":["d595f5b6a7a7"],"text":"shipped a feature","_key":"cd539bc51241"},{"_type":"span","marks":[],"text":".","_key":"983041bd134f"}],"_type":"block","style":"normal","_key":"e6e65853af02","markDefs":[{"_type":"link","href":"https://tailscale.com/blog/tailscale-launch","_key":"4c9658611b07"},{"href":"http://tailscale.com/blog/k8s-operator-ga","_key":"d595f5b6a7a7","_type":"link"}]},{"style":"normal","_key":"2a2c87ad7d17","markDefs":[],"children":[{"_key":"8bdc04360b1d","_type":"span","marks":[],"text":"Honestly, I prefer it this way. Getting stuff out the door and into customers’ hands is a lot more rewarding than patting ourselves on the back, but I think a little of that now and then is totally fine. So, with ~half a decade of trying to make the internet just a little less terrible for everyone, we figured now’s a good time to pause, reflect, and share some things we’ve learned along the way."}],"_type":"block"},{"title":"Simplicity is a superpower","display":"inline","_type":"assetBlock","_key":"b4fb1e49c8a1","asset":{"alignment":"center","type":"image","useMobileAlternativeImage":false,"image":{"_type":"sanityImage","alt":"A VPN alternative built for homelabbers and businesses allows for simple network connections between devices, Identity providers, cloud, hybrid and on-prem environments as well as the end user.","asset":{"_ref":"image-e0426c4f22b2fa1d230294b4a1da05bc1b025d49-1120x620-svg","_type":"reference"}},"placeholderColor":{"color":"none","_type":"colors"},"_type":"asset","video":{"mobileStaticAlt":{"alignment":"center","type":"image","useMobileAlternativeImage":false,"placeholderColor":{"color":"none","_type":"colors"},"_type":"asset","video":{"mobileStaticAlt":{"useMobileAlternativeImage":false,"placeholderColor":{"color":"none","_type":"colors"},"_type":"asset","video":{"mobileStaticAlt":{"type":"image","useMobileAlternativeImage":false,"placeholderColor":{"_type":"colors","color":"none"},"_type":"asset","video":{"playType":"click","useMobileStaticAlt":false,"clickType":"watchVideoCaption"},"alignment":"center"},"playType":"click","useMobileStaticAlt":false,"clickType":"watchVideoCaption"},"alignment":"center","type":"image"},"playType":"click","useMobileStaticAlt":false,"clickType":"watchVideoCaption"}},"playType":"click","useMobileStaticAlt":false,"clickType":"watchVideoCaption"}}},{"markDefs":[],"children":[{"_type":"span","marks":[],"text":"1. Simplicity is a superpower","_key":"dd9813458e7b"}],"_type":"block","style":"h3","_key":"28aa8f497c8f"},{"_type":"block","style":"normal","_key":"3e7a24e0fc29","markDefs":[],"children":[{"_type":"span","marks":[],"text":"Early on, we had a simple idea: what if computers didn’t suck so much? Okay, too broad. What if setting up a secure private network wasn’t miserable? Better. No port forwarding. No weird firewall rules. No troubleshooting mystery DNS issues at 2 AM. No giving up and disabling the firewall because it’s now 3 AM and way past your bedtime.","_key":"1d8961d9396f"}]},{"_key":"f83b1f7fbbb5","markDefs":[],"children":[{"_key":"e5c2f99382d0","_type":"span","marks":[],"text":"Five years later, that’s still what resonates. Turns out most people are like us: they’d rather be spending all of their time on building fun and novel stuff on top of systems and platforms that "},{"_type":"span","marks":["em"],"text":"just work","_key":"1337951dcdac"},{"_type":"span","marks":[],"text":". We’ve learned that reliability and usability aren’t features you bolt on later; they’re the product.","_key":"b9c0376ae84c"}],"_type":"block","style":"normal"},{"_key":"73ee451ea067","asset":{"useMobileAlternativeImage":false,"image":{"_type":"sanityImage","alt":"Purple diagram shows two initial connections, a macbook and database.","asset":{"_ref":"image-4566f89d07d10dcf3ea6ff6683ec963f8e81b8a4-1120x620-png","_type":"reference"}},"placeholderColor":{"_type":"colors","color":"none"},"_type":"asset","video":{"playType":"click","useMobileStaticAlt":false,"clickType":"watchVideoCaption","mobileStaticAlt":{"alignment":"center","type":"image","useMobileAlternativeImage":false,"placeholderColor":{"color":"none","_type":"colors"},"_type":"asset","video":{"mobileStaticAlt":{"video":{"mobileStaticAlt":{"type":"image","useMobileAlternativeImage":false,"placeholderColor":{"color":"none","_type":"colors"},"_type":"asset","video":{"playType":"click","useMobileStaticAlt":false,"clickType":"watchVideoCaption"},"alignment":"center"},"playType":"click","useMobileStaticAlt":false,"clickType":"watchVideoCaption"},"alignment":"center","type":"image","useMobileAlternativeImage":false,"placeholderColor":{"color":"none","_type":"colors"},"_type":"asset"},"playType":"click","useMobileStaticAlt":false,"clickType":"watchVideoCaption"}}},"alignment":"center","type":"image"},"title":"Reliability Compounds","display":"block","_type":"assetBlock"},{"markDefs":[],"children":[{"text":"2. Reliability compounds (and yes, it’s worth it)","_key":"24cd636e91c9","_type":"span","marks":[]}],"_type":"block","style":"h3","_key":"cffa4f5538bd"},{"style":"normal","_key":"2bcdcd39ae63","markDefs":[],"children":[{"_type":"span","marks":[],"text":"A lot of startups talk about shipping fast and breaking things. We knew from the beginning that, when it comes to networking, breaking things is… bad. People expect their infrastructure to work, and that means things always have to be highly available ","_key":"e60e03c9e6b7"},{"_key":"7f7552c17d32","_type":"span","marks":["strong"],"text":"and"},{"_type":"span","marks":[],"text":" backwards compatible.","_key":"5e4db9ff0bcb"}],"_type":"block"},{"markDefs":[],"children":[{"_type":"span","marks":[],"text":"What surprised us is how quickly this investment in reliability paid off. Today, we’re trusted by over ","_key":"db697075b946"},{"text":"10,000 business customers","_key":"dc35a2541f91","_type":"span","marks":["strong"]},{"_type":"span","marks":[],"text":". We have ","_key":"8cf33e3a919e"},{"_type":"span","marks":["strong"],"text":"hundreds of thousands of individual users","_key":"8102c5899761"},{"_type":"span","marks":[],"text":" — homelabbers, indie devs, and IT pros — connecting everything from laptops to LLMs to lightbulbs. And last September, we crossed a wild milestone: ","_key":"17e910f267bc"},{"text":"1 million devices connected simultaneously","_key":"ead42acba721","_type":"span","marks":["strong"]},{"marks":[],"text":".","_key":"15b830e53563","_type":"span"}],"_type":"block","style":"normal","_key":"643b49765ec6"},{"_type":"block","style":"normal","_key":"5c0e4ba968d8","markDefs":[],"children":[{"_type":"span","marks":[],"text":"When your product ","_key":"974dd465e896"},{"_key":"3ca358b37fef","_type":"span","marks":["em"],"text":"just works"},{"_type":"span","marks":[],"text":", people tell their friends. And then their friends tell their friends. And then random people at restaurants and airports begin noticing your company t-shirt and want to tell you about how much of an impact your product has made in their and their friends’ lives. Goodwill compounds.","_key":"383cf50c3b9f"}]},{"display":"inline","_type":"assetBlock","_key":"e947d2383ed2","asset":{"alignment":"center","type":"image","useMobileAlternativeImage":false,"image":{"_type":"sanityImage","alt":" Image of what a dogcam live feed looks like when added as a device on a Tailscale network (tailnet).","asset":{"_ref":"image-2d73d8721f71d2bf876686425a4bd327c9187191-1120x620-svg","_type":"reference"}},"placeholderColor":{"color":"none","_type":"colors"},"_type":"asset","video":{"mobileStaticAlt":{"type":"image","useMobileAlternativeImage":false,"placeholderColor":{"color":"none","_type":"colors"},"_type":"asset","video":{"mobileStaticAlt":{"alignment":"center","type":"image","useMobileAlternativeImage":false,"placeholderColor":{"color":"none","_type":"colors"},"_type":"asset","video":{"useMobileStaticAlt":false,"clickType":"watchVideoCaption","mobileStaticAlt":{"alignment":"center","type":"image","useMobileAlternativeImage":false,"placeholderColor":{"color":"none","_type":"colors"},"_type":"asset","video":{"playType":"click","useMobileStaticAlt":false,"clickType":"watchVideoCaption"}},"playType":"click"}},"playType":"click","useMobileStaticAlt":false,"clickType":"watchVideoCaption"},"alignment":"center"},"playType":"click","useMobileStaticAlt":false,"clickType":"watchVideoCaption"}},"title":"The market"},{"markDefs":[],"children":[{"marks":[],"text":"3. A tool for homelabbers ","_key":"78a71ee7750d","_type":"span"},{"_type":"span","marks":["em"],"text":"and","_key":"d9044dd8cebd"},{"_type":"span","marks":[],"text":" global enterprises — and everyone in between","_key":"8dead17c893c"}],"_type":"block","style":"h3","_key":"8a9b2c5d8a95"},{"_type":"block","style":"normal","_key":"7783f639137e","markDefs":[{"href":"https://tailscale.com/kb/1076/dogcam","_key":"beb4a6b620b3","_type":"link"}],"children":[{"marks":[],"text":"We imagined Tailscale to become something that fixes the Internet. Initially we helped small teams connect to their servers, devices, and even the occasional ","_key":"0c8765ff6913","_type":"span"},{"marks":["beb4a6b620b3"],"text":"dogcam","_key":"198b0fa770cf","_type":"span"},{"marks":[],"text":". And that’s still a huge part of what we see every day.","_key":"e29db2c55f70","_type":"span"}]},{"markDefs":[],"children":[{"_type":"span","marks":[],"text":"But five years in, the range of use cases has blown us away. There are homelabbers wiring up 3D printers and retro game consoles. IoT tinkerers managing garden sensors and solar panels. AI researchers spinning up GPU clusters. Fintech and healthcare teams securing sensitive systems. Fortune 500 companies connecting global offices, apps, and devices — all using the exact same product.","_key":"cbe4283f4ab9"}],"_type":"block","style":"normal","_key":"ec3a18b2a75e"},{"style":"normal","_key":"a06f45ed9e6a","markDefs":[],"children":[{"text":"What’s wild is how often those worlds overlap. The same features that power a homelab also solve real problems at scale. Private networking turns out to be... surprisingly horizontal.","_key":"abb552c082bb","_type":"span","marks":[]}],"_type":"block"},{"markDefs":[],"children":[{"_key":"a834bc1ff7ad","_type":"span","marks":["strong"],"text":"Lesson learned:"},{"_type":"span","marks":[],"text":" If you build something ","_key":"0b35b57b11f9"},{"_type":"span","marks":["em"],"text":"useful","_key":"5b9a1bc07d7c"},{"_type":"span","marks":[],"text":", ","_key":"65b4e00e8ea9"},{"_type":"span","marks":["em"],"text":"easy to use","_key":"d699df451627"},{"_type":"span","marks":[],"text":", and ","_key":"79b2310a5d8b"},{"text":"adaptable","_key":"34f9f41a5395","_type":"span","marks":["em"]},{"_type":"span","marks":[],"text":", people will find ways to use it you never imagined — and that’s the best kind of surprise.","_key":"2ac3e860307e"}],"_type":"block","style":"normal","_key":"a7775e0fa091"},{"display":"block","_type":"assetBlock","_key":"e8c50890c376","asset":{"placeholderColor":{"color":"none","_type":"colors"},"_type":"asset","video":{"mobileStaticAlt":{"placeholderColor":{"color":"none","_type":"colors"},"_type":"asset","video":{"mobileStaticAlt":{"alignment":"center","type":"image","useMobileAlternativeImage":false,"placeholderColor":{"color":"none","_type":"colors"},"_type":"asset","video":{"mobileStaticAlt":{"video":{"playType":"click","useMobileStaticAlt":false,"clickType":"watchVideoCaption"},"alignment":"center","type":"image","useMobileAlternativeImage":false,"placeholderColor":{"color":"none","_type":"colors"},"_type":"asset"},"playType":"click","useMobileStaticAlt":false,"clickType":"watchVideoCaption"}},"playType":"click","useMobileStaticAlt":false,"clickType":"watchVideoCaption"},"alignment":"center","type":"image","useMobileAlternativeImage":false},"playType":"click","useMobileStaticAlt":false,"clickType":"watchVideoCaption"},"alignment":"center","type":"image","useMobileAlternativeImage":false,"image":{"_type":"sanityImage","alt":"Diagram shows peer-to-peer mesh topology with multiple nodes connected to a virtual private network.","asset":{"_ref":"image-aedf8b6d9a3ff4e9c46f6000e4582130bd5436c2-1120x620-svg","_type":"reference"}}},"title":"Peer-to-peer"},{"_key":"36ebdf7b28c1","markDefs":[],"children":[{"_type":"span","marks":[],"text":"4. Laziness is a virtue, sometimes","_key":"edca28d09ed3"}],"_type":"block","style":"h3"},{"_type":"block","style":"normal","_key":"ca326abff44e","markDefs":[],"children":[{"_type":"span","marks":[],"text":"Part of the reason Tailscale works the way it does is because we didn’t want to run a giant pile of infrastructure.","_key":"ad66116d503e"}]},{"_key":"162c31abb9b3","markDefs":[],"children":[{"_type":"span","marks":[],"text":"Early on, we asked ourselves: do we ","_key":"1954712fe96c"},{"_type":"span","marks":["em"],"text":"really","_key":"bd35054f55b5"},{"_type":"span","marks":[],"text":" want to build and maintain massive data centers just to relay packets between two machines sitting five feet apart? Of course not. That sounded like a nightmare — expensive, brittle, and kind of missing the point of the internet.","_key":"54683a7c0bc5"}],"_type":"block","style":"normal"},{"style":"normal","_key":"80f55f09f894","markDefs":[],"children":[{"_key":"44909a0d34fb","_type":"span","marks":[],"text":"So, we leaned into the lazy path: make devices connect directly, end-to-end encrypted, whenever possible. Help the packets find the shortest path — not the most expensive one. Turns out, laziness was the right call."}],"_type":"block"},{"style":"normal","_key":"e2722a06b683","markDefs":[],"children":[{"_type":"span","marks":[],"text":"Direct connections are faster, cheaper, and more reliable. And the funny thing? Even when people are using Tailscale ","_key":"5fae5d28b41f"},{"_type":"span","marks":["em"],"text":"inside","_key":"8972e1a2aa51"},{"_type":"span","marks":[],"text":" the cloud — connecting apps across regions, VPCs, or providers — the peer-to-peer model still wins. Less infrastructure for us, better performance for everyone.","_key":"635eb28d31fd"}],"_type":"block"},{"_key":"3bbbd1a0c44a","markDefs":[],"children":[{"_type":"span","marks":[],"text":"Sometimes, the easiest way really ","_key":"9a0d9c5631a4"},{"_type":"span","marks":["em"],"text":"is","_key":"05d77ff9aa21"},{"_key":"4032450aaa8d","_type":"span","marks":[],"text":" the best way."}],"_type":"block","style":"normal"},{"display":"inline","_type":"assetBlock","_key":"1ff0c2bed328","asset":{"_type":"asset","video":{"mobileStaticAlt":{"placeholderColor":{"color":"none","_type":"colors"},"_type":"asset","video":{"useMobileStaticAlt":false,"clickType":"watchVideoCaption","mobileStaticAlt":{"placeholderColor":{"color":"none","_type":"colors"},"_type":"asset","video":{"mobileStaticAlt":{"useMobileAlternativeImage":false,"placeholderColor":{"color":"none","_type":"colors"},"_type":"asset","video":{"playType":"click","useMobileStaticAlt":false,"clickType":"watchVideoCaption"},"alignment":"center","type":"image"},"playType":"click","useMobileStaticAlt":false,"clickType":"watchVideoCaption"},"alignment":"center","type":"image","useMobileAlternativeImage":false},"playType":"click"},"alignment":"center","type":"image","useMobileAlternativeImage":false},"playType":"click","useMobileStaticAlt":false,"clickType":"watchVideoCaption"},"alignment":"center","type":"image","useMobileAlternativeImage":false,"image":{"alt":"Diagram shows connectivity between employees, admins, cloud providers, and devices on a virtual private network.","asset":{"_ref":"image-f94a7e0d85b2dba3ead835b5c4aa5793e6c7049c-1120x620-svg","_type":"reference"},"_type":"sanityImage"},"placeholderColor":{"_type":"colors","color":"none"}},"title":"Networking is about people"},{"style":"h3","_key":"3d9a3c65dd9a","markDefs":[],"children":[{"text":"5. Networking is about people, not just packets","_key":"2ce8468da25b","_type":"span","marks":[]}],"_type":"block"},{"markDefs":[],"children":[{"_type":"span","marks":[],"text":"If there’s one thing that’s really stuck with us over the years, it’s this: building a good network isn’t just a technical problem — it’s a trust problem.","_key":"799861ab6ede"}],"_type":"block","style":"normal","_key":"61c24513802d"},{"_key":"0e4fe0e305f0","markDefs":[],"children":[{"text":"It’s easy to think networking is all about encryption and routing tables. But the hard part isn’t making packets fly around securely — it’s giving people confidence in who’s allowed to connect, and why. Who can see what? Who’s allowed ","_key":"e63823698599","_type":"span","marks":[]},{"_type":"span","marks":["em"],"text":"right now","_key":"d032f63e30df"},{"_type":"span","marks":[],"text":" versus next week?","_key":"f42a48d55dc8"}],"_type":"block","style":"normal"},{"markDefs":[],"children":[{"_key":"52311a13eb7b","_type":"span","marks":[],"text":"That’s why we built Tailscale on a "},{"text":"Zero Trust","_key":"f0e1f0cd8ea9","_type":"span","marks":["strong"]},{"_type":"span","marks":[],"text":" foundation from the start. Not just because it was trendy (though it was), but because we knew the best way to ","_key":"4e43e9e0e973"},{"_type":"span","marks":["em"],"text":"earn","_key":"3361c137d10a"},{"marks":[],"text":" trust was to make sure nobody had to blindly trust ","_key":"9827e6129da8","_type":"span"},{"_type":"span","marks":["em"],"text":"us","_key":"3f7cd643991f"},{"text":" at all.","_key":"2268180bbec6","_type":"span","marks":[]}],"_type":"block","style":"normal","_key":"9e49fd877831"},{"_type":"block","style":"normal","_key":"817ce3196306","markDefs":[],"children":[{"marks":[],"text":"We don’t sit in the middle inspecting your traffic. We can’t see what you’re sending — and frankly, we don’t want to. Our job is to get out of the way and give you the tools to define your own rules:","_key":"3e8ddec718b3","_type":"span"}]},{"markDefs":[],"children":[{"_type":"span","marks":["strong"],"text":"Access controls","_key":"dbe878e568a6"},{"_type":"span","marks":[],"text":" that make it clear who can reach what","_key":"fd3f4acdd67b"}],"level":1,"_type":"block","style":"normal","_key":"baf182c836b6","listItem":"bullet"},{"listItem":"bullet","markDefs":[],"children":[{"_type":"span","marks":["strong"],"text":"ACLs and tags","_key":"6747bd1cb784"},{"_type":"span","marks":[],"text":" you can update instantly — no waiting, no redeploys","_key":"bbbad5e2a31a"}],"level":1,"_type":"block","style":"normal","_key":"22f2b12ff8f5"},{"_key":"7d3f47ce5eb7","listItem":"bullet","markDefs":[],"children":[{"_type":"span","marks":["strong"],"text":"Granular sharing","_key":"36a11f2e9bea"},{"_type":"span","marks":[],"text":" for just the services or devices you want, nothing more","_key":"bcadcd4cad4a"}],"level":1,"_type":"block","style":"normal"},{"level":1,"_type":"block","style":"normal","_key":"4048642125da","listItem":"bullet","markDefs":[],"children":[{"marks":["strong"],"text":"Audit logs","_key":"9329a2d92b3f","_type":"span"},{"_type":"span","marks":[],"text":" so you know exactly what happened, when","_key":"e780215de9a4"}]},{"style":"normal","_key":"9914e1d21408","listItem":"bullet","markDefs":[],"children":[{"_type":"span","marks":["strong"],"text":"Identity integration","_key":"4890c15f1ed2"},{"_type":"span","marks":[],"text":" — we didn’t write our own IdP (because... yikes). You keep trusting the systems you already trust: Okta, Google, Microsoft, whatever works for you","_key":"5b0906eb35e0"}],"level":1,"_type":"block"},{"level":1,"_type":"block","style":"normal","_key":"ab0ee3b57f44","listItem":"bullet","markDefs":[],"children":[{"text":"Tailnet Lock","_key":"15607377296e","_type":"span","marks":["strong"]},{"_type":"span","marks":[],"text":" — cryptographic signing that makes sure only your trusted devices, with your keys, can access your tailnet","_key":"35d956dd85bc"}]},{"markDefs":[],"children":[{"_type":"span","marks":[],"text":"The result? You stay in control. Not us. And that, weirdly enough, is what makes people trust us. Because they don’t ","_key":"148ae9cae188"},{"_type":"span","marks":["em"],"text":"have","_key":"0e900a0248e3"},{"_type":"span","marks":[],"text":" to.","_key":"be1d64d1c358"}],"_type":"block","style":"normal","_key":"06384302de4a"},{"_key":"22face53798e","asset":{"type":"image","useMobileAlternativeImage":false,"image":{"_type":"sanityImage","alt":"Personal Plus","asset":{"_ref":"image-e823f5b051125a8bfc7a6daa823f05d668622b80-2240x1240-png","_type":"reference"}},"placeholderColor":{"color":"none","_type":"colors"},"_type":"asset","video":{"playType":"click","useMobileStaticAlt":false,"clickType":"watchVideoCaption","mobileStaticAlt":{"alignment":"center","type":"image","useMobileAlternativeImage":false,"placeholderColor":{"color":"none","_type":"colors"},"_type":"asset","video":{"mobileStaticAlt":{"type":"image","useMobileAlternativeImage":false,"placeholderColor":{"color":"none","_type":"colors"},"_type":"asset","video":{"mobileStaticAlt":{"alignment":"center","type":"image","useMobileAlternativeImage":false,"placeholderColor":{"color":"none","_type":"colors"},"_type":"asset","video":{"playType":"click","useMobileStaticAlt":false,"clickType":"watchVideoCaption"}},"playType":"click","useMobileStaticAlt":false,"clickType":"watchVideoCaption"},"alignment":"center"},"playType":"click","useMobileStaticAlt":false,"clickType":"watchVideoCaption"}}},"alignment":"center"},"display":"block","_type":"assetBlock"},{"markDefs":[],"children":[{"_type":"span","marks":[],"text":"To celebrate 5 years, we’re giving away 5 lifetime Personal Plus plans","_key":"3ca158b13daa"}],"_type":"block","style":"h2","_key":"9bdc4167f161"},{"style":"normal","_key":"14b28892373f","markDefs":[{"_type":"link","href":"https://tailscale.com/kb/1251/pricing-faq","_key":"658a869cea72"}],"children":[{"_type":"span","marks":[],"text":"We figured: what better way to say thanks than to give something back? So, to mark five years of Tailscale, we’re giving away ","_key":"922633890ef1"},{"_type":"span","marks":["strong"],"text":"5 lifetime ","_key":"ecf3aac345d9"},{"_type":"span","marks":["658a869cea72","strong"],"text":"Personal Plus","_key":"507bcbd6d2b9"},{"text":" plans","_key":"dcab8c6443bb","_type":"span","marks":["strong"]},{"_type":"span","marks":[],"text":" — free, forever, to 5 lucky winners.","_key":"a9deef95e4b8"}],"_type":"block"},{"_key":"6fac6223ee52","markDefs":[],"children":[{"_type":"span","marks":[],"text":"Here’s how to enter (short version):","_key":"203a70fb0fc0"}],"_type":"block","style":"h4"},{"children":[{"_key":"4efa61322235","_type":"span","marks":[],"text":"Find our post about this blog on "},{"_type":"span","marks":["2fb8bde74804"],"text":"LinkedIn","_key":"44df9f1217e8"},{"_type":"span","marks":[],"text":", ","_key":"7ac59836b496"},{"_type":"span","marks":["860a2cd8f32c"],"text":"X (Twitter)","_key":"26504e8b80e2"},{"_type":"span","marks":[],"text":", ","_key":"c34909fdb6ec"},{"_type":"span","marks":["eb9bf90e5941"],"text":"Bluesky","_key":"4454d9d45743"},{"_type":"span","marks":[],"text":", or ","_key":"c801f7e04f26"},{"_type":"span","marks":["70fb23ad0a57"],"text":"Mastodon","_key":"82e057b5860e"}],"level":1,"_type":"block","style":"normal","_key":"a2e86d8de8c2","listItem":"bullet","markDefs":[{"blank":true,"_type":"link","href":"https://www.linkedin.com/posts/tailscale_5-years-of-tailscale-giveaway-were-activity-7313548458290814979-NLqJ?utm_source=share\u0026utm_medium=member_desktop\u0026rcm=ACoAAAIB-NYBiTm_LIe3f6JgzEAeunCTsvxLScA","_key":"2fb8bde74804"},{"_key":"860a2cd8f32c","blank":true,"_type":"link","href":"https://x.com/Tailscale/status/1907782665282969678"},{"href":"https://bsky.app/profile/tailscale.com/post/3llvxypp2lr2w","_key":"eb9bf90e5941","blank":true,"_type":"link"},{"blank":true,"_type":"link","href":"https://hachyderm.io/@tailscale/114274193667078570","_key":"70fb23ad0a57"}]},{"style":"normal","_key":"f015798daf4e","listItem":"bullet","markDefs":[],"children":[{"_key":"538984d47333","_type":"span","marks":[],"text":"Repost "},{"_key":"4494da2852fb","_type":"span","marks":["em"],"text":"or"},{"_key":"29e7f146c361","_type":"span","marks":[],"text":" comment on the post and include the hashtag #5yearsofTailscale"}],"level":1,"_type":"block"},{"markDefs":[],"children":[{"text":"That’s it — you’ve entered!","_key":"86668b52893d","_type":"span","marks":[]}],"level":1,"_type":"block","style":"normal","_key":"959013cf7224","listItem":"bullet"},{"style":"normal","_key":"93bb25466882","markDefs":[{"blank":true,"_type":"link","href":"#footnote-1","_key":"17f1f18d2101"}],"children":[{"_type":"span","marks":[],"text":"Subject to ","_key":"fdb415229f0c"},{"_type":"span","marks":["underline","17f1f18d2101"],"text":"Official Rules","_key":"a5cf6abad010"}],"_type":"block"},{"style":"normal","_key":"ab5f7509a398","markDefs":[{"_key":"8439169b5fb3","blank":true,"_type":"link","href":"mailto:5yearwinner@tailscale.com"}],"children":[{"text":"Winners will be randomly drawn and announced on ","_key":"18e57f711f08","_type":"span","marks":[]},{"marks":["strong"],"text":"April 10th","_key":"a0eece285c9f","_type":"span"},{"_type":"span","marks":[],"text":". We'll share the winners on our social channels. You'll need to DM us or email ","_key":"849863bda142"},{"_type":"span","marks":["8439169b5fb3"],"text":"5yearwinner@tailscale.com","_key":"7295166fad60"},{"_type":"span","marks":[],"text":" to claim your prize.\n\nThanks for being part of this journey — whether you’ve been with us since day one or just joined last week. Here’s to the next five years. 🥂","_key":"ad2117b12565"}],"_type":"block"},{"code":"\u003cdiv class=\"pl-8 flex gap-2 flex-col\"\u003e\n \u003cspan id=\"footnote-1\"\u003e\u003c/a\u003e \u003c/span\u003e\n\n\u003c/div\u003e\n","_type":"html","_key":"6619e8a3c300"},{"_type":"block","style":"normal","_key":"56fc355fe5f3","markDefs":[],"children":[{"_key":"63f55639c30b","_type":"span","marks":["strong"],"text":"Official Rules"}]},{"markDefs":[{"_type":"link","href":"http://tailscale.com/privacy-policy","_key":"b89d1ea39bb6"}],"children":[{"_type":"span","marks":[],"text":"NO PURCHASE NECESSARY TO ENTER OR WIN. A PURCHASE WILL NOT INCREASE YOUR CHANCES OF WINNING. Enter between 12:01:01 AM EST on March 26, 2025 and 11:59:59 PM EST (US) on April 9, 2025. Must be 18+ to enter. Void where prohibited by law. Odds of winning depend on the number of eligible entries received. Enter by (1) finding our post about our 5th birthday on LinkedIn, X (Twitter), Bluesky or Mastodon (each a “social platform”), (2) either (a) sharing the post or (b) commenting on the post, and (3) include #5yearsofTailscale to be entered in the drawing. Limit 1 entry per person per social platform, for a total of 4 entries per person. Prize: one (1) lifetime Personal Plus plan. ARV: USD$5/mo. 5 winners total, randomly selected. Winners will be announced over each social platform on April 10, 2025. Winners will be notified via DM on the social platform associated with their winning entry. Winners must contact Tailscale via email within 7 days to claim their prize. A winners’ list can be obtained by DM’ing Tailscale with 90 days of close date. UK and Australian winners may object to their surname and county/region being made publicly available. See our Privacy Policy ","_key":"588795758bb0"},{"_type":"span","marks":["b89d1ea39bb6"],"text":"here","_key":"02cfc5c882e5"},{"marks":[],"text":". Canadian residents must correctly answer a mathematical skill-testing question to win. Quebec residents: Any litigation respecting the conduct or organization of a publicity contest may be submitted to the Régie des alcools, des courses et des jeux for a ruling. Any litigation respecting the awarding of a prize may be submitted to the Régie only for the purpose of helping the parties reach a settlement. German residents: Der Rechtsweg ist ausgeschlossen. Sponsor: Tailscale Inc., 100 King Street West, Suite 6200, 1 First Canadian Place, Toronto, ON, M5X 1B8 Canada. This giveaway is not sponsored by social platforms.","_key":"ac74b3cb5545","_type":"span"}],"_type":"block","style":"normal","_key":"759e17d35624"}],"featuredImage":{"alt":"5 Years of Tailscale Header image","asset":{"_ref":"image-593f8bcdc7639cdae1fccdeffa14af65eaa976b2-1152x594-png","_type":"reference"},"_type":"sanityImage"},"_id":"ef596fc6-8b3c-4569-bc0a-80288740c740","title":"5 Things We’ve Learned From 5 Years of Tailscale","publishedAt":"2025-04-03T13:00:00.000Z","category":"company","authors":[{"_rev":"9fpf4A3I5TlAClMQ3hrN2i","_type":"teamMember","member":{"jobTitle":"Co-founder","name":"David Carney","image":{"asset":{"_ref":"image-3ccecbe43f96a4cc56385f75e3e493cac4129aa3-533x533-png","_type":"reference"},"_type":"sanityImage","alt":"David Carney"}},"_id":"e4b358e8-e934-40dd-8eb7-1ed9cf11deea","title":"David Carney","_updatedAt":"2025-04-03T22:10:23Z","_createdAt":"2023-10-23T14:04:45Z"}]},{"_id":"85e16478-1daa-4348-b95c-58ce25ff618f","excerpt":"The Tailscale Kubernetes Operator is now generally available to all Tailscale users. Since we released the Tailscale Kubernetes Operator to beta a little over a year ago, thousands of organizations have adopted it, including for use in production environments. Today’s release marks the next milestone in stability and reliability that those users have already come to trust.","flexContent":[{"style":"normal","_key":"ccb8e9ee5cc4","markDefs":[{"_type":"link","href":"https://tailscale.com/blog/kubernetes-operator","_key":"ca6a45f545e9"}],"children":[{"_type":"span","marks":[],"text":"The Tailscale Kubernetes Operator is now generally available to all Tailscale users. Since we released the ","_key":"2d8dc09dba80"},{"text":"Tailscale Kubernetes Operator to beta","_key":"7afb0d254dad","_type":"span","marks":["ca6a45f545e9"]},{"_type":"span","marks":[],"text":" a little over a year ago, thousands of organizations have adopted it, including for use in production environments. Today’s release marks the next milestone in stability and reliability that those users have already come to trust.","_key":"3e9915cca71b"}],"_type":"block"},{"_type":"block","style":"normal","_key":"b2fa3f3883df","markDefs":[],"children":[{"_type":"span","marks":[],"text":"In this post, we will cover some of the most common operator use cases that we have seen over the past year.","_key":"b2752f7a020a"}]},{"_key":"52b19237ffd5","markDefs":[],"children":[{"_key":"668954318ace","_type":"span","marks":[],"text":"Authenticated, secure access to Kubernetes control plane"}],"_type":"block","style":"h3"},{"children":[{"_type":"span","marks":[],"text":"Organizations need access to Kubernetes APIs for different reasons — cluster admins need privileged access to deploy shared tooling, developers need access to deploy their applications, CI/CD runners need to deploy different components to the clusters and so on.","_key":"9a4a5c912cc0"}],"_type":"block","style":"normal","_key":"7aa8918f5c7b","markDefs":[]},{"_key":"6f50d259a6ee","markDefs":[{"_type":"link","href":"https://securitylabs.datadoghq.com/cloud-security-atlas/vulnerabilities/unauthenticated-api-server/","_key":"9270970def16"}],"children":[{"_type":"span","marks":[],"text":"Managing least privileged access across the different use cases and personas can become a tedious and error prone job. Moreover, a common pattern is to assign a public IP address to the API server which makes it ","_key":"785b586ef518"},{"_type":"span","marks":["9270970def16"],"text":"an attractive target for attackers","_key":"0a8c9e79e736"},{"_type":"span","marks":[],"text":".","_key":"f731b0342c6a"}],"_type":"block","style":"normal"},{"markDefs":[{"_type":"link","href":"https://tailscale.com/kb/1437/kubernetes-operator-api-server-proxy","_key":"0a9982ce1535"}],"children":[{"_type":"span","marks":["0a9982ce1535"],"text":"Tailscale Kubernetes Operator API server proxy","_key":"47f5f96805c1"},{"_type":"span","marks":[],"text":" solves both of these problems by routing API server requests over a secure, encrypted, private connection (i.e., no public IP needed) and by allowing Tailscale identities (groups, users and tagged devices) to be mapped to existing cluster roles.","_key":"394edc826ea6"}],"_type":"block","style":"normal","_key":"2d2f76f80356"},{"_type":"block","style":"normal","_key":"91e6049dcd1c","markDefs":[],"children":[{"_type":"span","marks":[],"text":"An authenticated tailnet user or device can now access Kubernetes clusters via the proxy without a need for providing separate cluster credentials. When a user or device is removed from the tailnet, they are no longer able to access the cluster. Customers can combine these capabilities with other Tailscale security features such as automatic identity sync from external IdPs, device posture checks and Just-In-Time (JIT) access features, to further improve their clusters’ security posture.","_key":"bc2806d0b014"}]},{"children":[{"_type":"span","marks":[],"text":"The latest addition to the API server proxy is ","_key":"1926000e516f"},{"_type":"span","marks":["700f773d0529"],"text":"kubectl exec session recording","_key":"158048c7dbb0"},{"text":" which, as the name suggests, allows kubectl exec session content to be recorded and stored in an S3-compatible bucket. These recordings can be used to detect threats, investigate security incidents, and ensure continued compliance with network security policies.","_key":"ceade870bc25","_type":"span","marks":[]}],"_type":"block","style":"normal","_key":"1ff1c56398cd","markDefs":[{"_type":"link","href":"https://tailscale.com/kb/1454/kubernetes-operator-session-recording","_key":"700f773d0529"}]},{"style":"h3","_key":"7a165ceab18f","markDefs":[],"children":[{"_type":"span","marks":[],"text":"Connecting employees to internal applications","_key":"46e4c45bea7c"}],"_type":"block"},{"style":"normal","_key":"29a027fd9219","markDefs":[],"children":[{"_type":"span","marks":[],"text":"Kubernetes clusters house many workloads and services, including apps that should be exposed to internal users only. For instance, app teams may need access to private Prometheus and Grafana instances to monitor the health and usage of their apps, sales and marketing teams may need access to internal dashboards, etc. As another example, customers in regulated industries may need to self-host third-party software for compliance and need a way to expose it to employees.","_key":"dfaa79c248b9"}],"_type":"block"},{"_type":"block","style":"normal","_key":"2071ebaca85f","markDefs":[],"children":[{"text":"These workloads are not accessible by default and exposing them over the internet makes them vulnerable to attacks. Moreover, they often need to be made accessible to geographically distributed employees and contractors over a secure, private connection with fine grained permissions. Using the Tailscale Kubernetes Operator, customers can securely share these internal applications directly with employees and use ACLs to limit access to exactly the set of users who need it. We also strive to use native Kubernetes mechanisms, such as Ingress or a Service, to make it easy to embed these proxies into existing application deployment workflows.","_key":"e207c424f371","_type":"span","marks":[]}]},{"_type":"block","style":"normal","_key":"30eb969318b1","markDefs":[{"_type":"link","href":"https://tailscale.com/kb/1439/kubernetes-operator-cluster-ingress#exposing-cluster-workloads-using-a-kubernetes-ingress","_key":"327b7d747df5"},{"_type":"link","href":"https://tailscale.com/kb/1439/kubernetes-operator-cluster-ingress#exposing-a-cluster-workload-using-a-kubernetes-service","_key":"84991679ed9e"}],"children":[{"_type":"span","marks":[],"text":"Customers can create an ","_key":"b1adeadc489e"},{"_type":"span","marks":["327b7d747df5"],"text":"application layer proxy","_key":"0b5517c38e44"},{"_type":"span","marks":[],"text":" to expose apps over HTTPS and offload TLS cert management to Tailscale. These are most applicable to apps that are accessed from a browser, an app or other HTTPS clients. Alternatively, customers can create a ","_key":"67b5e79e7167"},{"_type":"span","marks":["84991679ed9e"],"text":"network layer proxy","_key":"f169d50b26b5"},{"marks":[],"text":" to expose apps accessed using other protocols (e.g., TCP, UDP).","_key":"4d15ff036271","_type":"span"}]},{"children":[{"_type":"span","marks":[],"text":"Hosting Tailscale resources in Kubernetes","_key":"4cf48d06f21c"}],"_type":"block","style":"h3","_key":"87292d206aa9","markDefs":[]},{"markDefs":[{"_type":"link","href":"https://tailscale.com/kb/1441/kubernetes-operator-connector#deploy-an-exit-node-or-subnet-router","_key":"41ed5b804296"},{"_type":"link","href":"https://tailscale.com/kb/1441/kubernetes-operator-connector#deploy-an-exit-node-or-subnet-router","_key":"759adb22cdc9"},{"_type":"link","href":"https://tailscale.com/kb/1517/kubernetes-operator-app-connector","_key":"fc70236a633a"},{"_type":"link","href":"https://tailscale.com/kb/1484/kubernetes-operator-deploying-tsrecorder","_key":"c2096c70686e"}],"children":[{"_type":"span","marks":[],"text":"We have customers that host most or all of the infrastructure on Kubernetes and wanted to host a Tailscale powered VPN on Kubernetes. That is why we added the Connector CRD which is used to host Tailscale resources like a ","_key":"f2588dc39d5d"},{"marks":["41ed5b804296"],"text":"subnet router","_key":"ea239364e560","_type":"span"},{"text":", an ","_key":"69562cd40436","_type":"span","marks":[]},{"_type":"span","marks":["759adb22cdc9"],"text":"exit node","_key":"721ebcf25e0e"},{"text":", an ","_key":"69d549e04f6b","_type":"span","marks":[]},{"_type":"span","marks":["fc70236a633a"],"text":"app connector","_key":"e5e8a336ceba"},{"_type":"span","marks":[],"text":" or an ","_key":"95204b267cae"},{"_type":"span","marks":["c2096c70686e"],"text":"SSH session recorder node","_key":"58ab89be3a62"},{"_type":"span","marks":[],"text":" in your cluster.","_key":"34b7d15fa154"}],"_type":"block","style":"normal","_key":"9f81169ec394"},{"_key":"f82d47770d05","markDefs":[],"children":[{"_key":"f2a3f3cb3ac8","_type":"span","marks":[],"text":"We are just getting started"}],"_type":"block","style":"h3"},{"children":[{"marks":[],"text":"Aside from the use cases above, we have added many features over the past year to give customers more control over the resources deployed by the operator. These include ","_key":"73fcb3647abb","_type":"span"},{"_type":"span","marks":["707aa2c32cb4"],"text":"integration with Tailscale metrics","_key":"2ae858530e44"},{"_type":"span","marks":[],"text":" and ","_key":"2444f477d809"},{"_type":"span","marks":["6c1ded36a078"],"text":"mechanisms to customize proxy resources","_key":"0a366282602e"},{"_key":"c8c991a6239c","_type":"span","marks":[],"text":"."}],"_type":"block","style":"normal","_key":"1ae053861dc3","markDefs":[{"_type":"link","href":"https://tailscale.com/kb/1445/kubernetes-operator-customization#exposing-metrics","_key":"707aa2c32cb4"},{"_key":"6c1ded36a078","_type":"link","href":"https://tailscale.com/kb/1445/kubernetes-operator-customization#cluster-resource-customization-using-proxyclass"}]},{"style":"h4","_key":"2b5cbd61a997","markDefs":[],"children":[{"marks":[],"text":"Improving availability and reliability","_key":"eeeacd9458b9","_type":"span"}],"_type":"block"},{"markDefs":[{"_type":"link","href":"https://tailscale.com/kb/1438/kubernetes-operator-cluster-egress#configure-an-egress-service-using-proxygroup","_key":"e26026261e6f"}],"children":[{"_key":"969333188d39","_type":"span","marks":[],"text":"We are also actively working on supporting HA mode for the cluster proxies to ensure they can be used without downtime when accessing critical applications and the API server. This is currently "},{"_type":"span","marks":["e26026261e6f"],"text":"supported for the egress proxy","_key":"0dc783ad977a"},{"_type":"span","marks":[],"text":" and more will be added in the near future.","_key":"b6a46fd31e44"}],"_type":"block","style":"normal","_key":"dc438e9d5c41"},{"children":[{"_type":"span","marks":[],"text":"If you are interested in participating in early testing of these features, ","_key":"ed84576d0c84"},{"_type":"span","marks":["89fba532afef"],"text":"reach out to us","_key":"619117f2e872"},{"_type":"span","marks":[],"text":".","_key":"df8a48650c93"}],"_type":"block","style":"normal","_key":"bc0060eab30d","markDefs":[{"_type":"link","href":"https://tailscale.typeform.com/to/RvnnyWjb","_key":"89fba532afef","blank":true}]},{"_type":"block","style":"normal","_key":"734676b96352","markDefs":[{"_type":"link","href":"https://tailscale.com/kb/1236/kubernetes-operator","_key":"b58d9c108b36"}],"children":[{"_key":"261a5a541f34","_type":"span","marks":[],"text":"Learn more about the Tailscale Kubernetes Operator—and get set up today—with our "},{"_type":"span","marks":["b58d9c108b36"],"text":"documentation","_key":"9b80b5fb9dcb"},{"_type":"span","marks":[],"text":".","_key":"7f6efccb0c36"}]}],"featuredImage":{"_type":"sanityImage","alt":"The Tailscale Kubernetes Operator can be used to deploy and connect clusters agnostic to infrastructure.","asset":{"_ref":"image-da74eddccb7466521445b6b41fcb6cd823dfe73c-1500x800-svg","_type":"reference"}},"title":"Tailscale Kubernetes Operator now generally available","slug":{"current":"k8s-operator-ga","_type":"slug"},"publishedAt":"2025-04-02T10:00:00.000Z","category":"product","authors":[{"_createdAt":"2023-10-23T13:57:14Z","_rev":"Kw7ZywWq2biwgCkntZOsLB","_type":"teamMember","member":{"image":{"_type":"sanityImage","alt":"Pouyan Aminian","asset":{"_type":"reference","_ref":"image-cd35816d113fd1fc64d122bf0694747a79260b99-500x500-jpg"}},"name":"Pouyan Aminian","socialLink":"https://www.linkedin.com/in/pouyan-aminian/"},"_id":"d593f9e2-54e2-4388-b81a-1ac99a788b2f","title":"Pouyan Aminian","_updatedAt":"2024-03-21T16:18:28Z"}]},{"flexContent":null,"authors":[{"_type":"teamMember","member":{"socialLink":"https://twitter.com/bradfitz","image":{"_type":"sanityImage","alt":"A man with a short well-groomed beard dressed in a white shirt, facing the camera with a calm demeanor.","asset":{"_ref":"image-88e6bd3712877e26fef5093d3779ecd00c23ff6d-945x945-jpg","_type":"reference"}},"jobTitle":"Chief Engineer","name":"Brad Fitzpatrick","bio":[{"children":[{"_type":"span","marks":[],"text":"Brad is a pioneering software engineer best known for creating LiveJournal, memcached, and OpenID. After over a decade at Google working on Go and distributed systems, he joined Tailscale in 2020 to make networking fun and simple. Based in Seattle, he spends his time building backend systems, wrangling his homelab, and parenting three many children.","_key":"8e38e4379f2a"}],"_type":"block","style":"normal","_key":"04ee9c3bf8ff","markDefs":[]}]},"_id":"8760a920-b245-43df-aec5-865c4e2e845e","title":"Brad Fitzpatrick","_updatedAt":"2025-04-08T21:49:07Z","_createdAt":"2023-10-23T14:25:08Z","_rev":"fF2INBoA50TCaYJA56PT5C"}],"title":"Porting Tailscale to Plan 9","publishedAt":"2025-04-02T14:30:45.896Z","category":"insights","featuredImage":{"_type":"image","alt":"Tailscale on Plan 9 thumbnail","asset":{"_ref":"image-a73e59254fdb3c63e33f70a58b9ff4b4ff8e0248-600x315-svg","_type":"reference"}},"_id":"777a67d4-367c-4bb6-9bfa-5af6f0d13388","slug":{"_type":"slug","current":"plan9-port"},"excerpt":"A behind the scenes look at how we ported Tailscale to Plan 9, including a number of Plan 9 and Go fixes along the way."},{"_id":"344ed3bd-8192-45ea-b533-0ccf33dce538","publishedAt":"2025-03-25T13:00:00.000Z","flexContent":[{"_key":"bc6199f036b5","markDefs":[{"_key":"19d8a095cdd3","blank":true,"_type":"link","href":"https://tailscale.com/community/community-projects"}],"children":[{"_key":"9e876b6cb468","_type":"span","marks":[],"text":"Today we're announcing "},{"_type":"span","marks":["19d8a095cdd3"],"text":"Tailscale Community Projects","_key":"7be6f0734c01"},{"_type":"span","marks":[],"text":" — projects by ourselves and our community that work well with Tailscale, are easy to collaborate on, and will","_key":"38c42319d204"},{"_type":"span","marks":["em"],"text":" keep working","_key":"9d7613e07cf3"},{"_type":"span","marks":[],"text":" if you adopt them.","_key":"608ca97e7258"}],"_type":"block","style":"normal"},{"style":"normal","_key":"fb6f0750a8d5","markDefs":[],"children":[{"text":"That's an unusual set of promises. Let's talk about why.","_key":"3c1d944ed10c","_type":"span","marks":[]}],"_type":"block"},{"markDefs":[],"children":[{"_type":"span","marks":[],"text":"Stopping the upgrade treadmill","_key":"77dcbef9860a"}],"_type":"block","style":"h2","_key":"0fb91776e181"},{"_type":"block","style":"normal","_key":"6ca697c45976","markDefs":[],"children":[{"_type":"span","marks":[],"text":"You might not even notice it anymore: the pervasive idea that, if you stop upgrading software, it'll eventually break. Or at least become a security hole. Or unsupported by the vendor. Or, I don't even know what, but definitely something bad. Old software is bad. So you'd better upgrade.","_key":"16d9d2874504"}]},{"children":[{"text":"That applies recursively across every application. If an app depends on a framework that has been updated, well, the app vendor had better update the framework. And if that breaks the app, well, the vendor has to change the app. And so you'd better upgrade the app.","_key":"195576bfc4e5","_type":"span","marks":[]}],"_type":"block","style":"normal","_key":"3bdb4be4411f","markDefs":[]},{"_key":"05871b53ff02","markDefs":[],"children":[{"marks":[],"text":"Modern apps and frameworks have hundreds of dependencies, and all those dependencies are on an upgrade treadmill. A dependency might change every week, or every day, or more. If bad things will happen unless you ","_key":"b39f64bf9b57","_type":"span"},{"_type":"span","marks":["em"],"text":"continuously","_key":"985d69e96760"},{"_type":"span","marks":[],"text":" upgrade, then you'd better get processes in place to do that. Now you need a full time devops team, continuous deployment, and continuous integration... just to stand still.","_key":"b0d7fb73df88"}],"_type":"block","style":"normal"},{"style":"normal","_key":"e981c1ca0750","markDefs":[],"children":[{"_type":"span","marks":[],"text":"Well, almost stand still. New versions of apps also move buttons around, change APIs, break old APIs, deprecate features, charge you more money for features you didn't ask for, and occasionally get abandoned by the vendor and never upgraded again — which means you have to migrate off them in a hurry, because the upgrade treadmill never stops, even if at the end of the treadmill there's a cliff of despair. And that cliff is, mercifully, the end of my metaphor.","_key":"cc20c69c4fa2"}],"_type":"block"},{"markDefs":[],"children":[{"_key":"681f82eb3c43","_type":"span","marks":[],"text":"At Tailscale we're taking a different path which I call, \"But what if we didn't?\""}],"_type":"block","style":"normal","_key":"c55768ef51f5"},{"style":"normal","_key":"7cb8f64e06b0","markDefs":[],"children":[{"_type":"span","marks":[],"text":"What does it take to stop that recursive upgrade treadmill in its tracks? I think it needs to work like this:","_key":"cf0b9725c9d1"}],"_type":"block"},{"children":[{"_type":"span","marks":[],"text":"I won't upgrade the app","_key":"2ede346d07bc"}],"level":1,"_type":"block","style":"normal","_key":"c22814e9a235","listItem":"bullet","markDefs":[]},{"_type":"block","style":"normal","_key":"c9d6cc75334b","listItem":"bullet","markDefs":[{"_key":"e1d8aa8c60bd","blank":false,"_type":"link","href":"#footnote-1"}],"children":[{"text":"Because I'm certain that only people I trust ","_key":"5054eecdf866","_type":"span","marks":["strong","em"]},{"_type":"span","marks":["strong","e1d8aa8c60bd","em"],"text":"[1]","_key":"6f9280d036aa"},{"_type":"span","marks":[],"text":" ","_key":"2327bbd4a97d"},{"text":"can access the app","_key":"e30c9f7a60bc","_type":"span","marks":["strong","em"]}],"level":1},{"listItem":"bullet","markDefs":[{"blank":false,"_type":"link","href":"#footnote-2","_key":"50474e1bddb8"}],"children":[{"_key":"1c1ffb9be3a2","_type":"span","marks":[],"text":"And so security holes in the app don't matter "},{"marks":["50474e1bddb8"],"text":"[2]","_key":"01c7ac497440","_type":"span"}],"level":1,"_type":"block","style":"normal","_key":"a8381d617ccd"},{"level":1,"_type":"block","style":"normal","_key":"660914f4e699","listItem":"bullet","markDefs":[],"children":[{"_type":"span","marks":[],"text":"And even if those supposedly trusted people exploit the holes, they can't move laterally from there to attack other places in my network","_key":"1b971a0d9a19"}]},{"listItem":"bullet","markDefs":[],"children":[{"_type":"span","marks":["strong","em"],"text":"And the platform the app runs on will be backward compatible forever","_key":"700aab5468b4"}],"level":1,"_type":"block","style":"normal","_key":"8e276e9ed30c"},{"style":"normal","_key":"fe2f13d696ef","listItem":"bullet","markDefs":[],"children":[{"_type":"span","marks":[],"text":"And therefore the libraries and frameworks my app depends on will also work forever","_key":"ee9caafecea9"}],"level":1,"_type":"block"},{"listItem":"bullet","markDefs":[],"children":[{"_type":"span","marks":[],"text":"And therefore I only need to upgrade if I actually want new features","_key":"d2e9eae2fe3e"}],"level":1,"_type":"block","style":"normal","_key":"09cb1d7fcec5"},{"_type":"block","style":"normal","_key":"e1ba50224da3","listItem":"bullet","markDefs":[],"children":[{"_type":"span","marks":[],"text":"And even if I do want new features, I can modify the app without upgrading a bunch of frameworks","_key":"1d6435acf7f5"}],"level":1},{"markDefs":[],"children":[{"_key":"dc60ddd8fb10","_type":"span","marks":[],"text":"Unless I really want the features in new versions of the frameworks."}],"level":1,"_type":"block","style":"normal","_key":"17c6ce44ca39","listItem":"bullet"},{"markDefs":[],"children":[{"marks":[],"text":"Phew. That whole liberating chain depends on two items that I bolded above.","_key":"d351bb9d19ea","_type":"span"}],"_type":"block","style":"normal","_key":"12cadedbc344"},{"style":"normal","_key":"c8d335a38f3f","markDefs":[{"_type":"link","href":"https://tailscale.com/blog/remembering-the-lan","_key":"90ed2f3902e0"},{"_type":"link","href":"https://cr.yp.to/qmail/qmailsec-20071101.pdf","_key":"b2f76f28c3f0"}],"children":[{"_key":"36feb0432dbe","_type":"span","marks":[],"text":"First, "},{"_type":"span","marks":["strong"],"text":"only people I trust can access the app.","_key":"c015c000349d"},{"text":" That doesn't make security holes go away; it just makes them irrelevant. One of the founding principles of Tailscale is ","_key":"add8cd7024e4","_type":"span","marks":[]},{"text":"Remembering the LAN","_key":"091670777efc","_type":"span","marks":["90ed2f3902e0"]},{"_type":"span","marks":[],"text":": before the Internet, security holes didn't matter because nobody was there to exploit them. With appropriate security measures, we can bring that world back. In security terms, there's strong evidence that multiple \"good\" layers of security are ","_key":"84400b604886"},{"text":"not as good as a single comprehensive layer of security","_key":"b57a74584032","_type":"span","marks":["b2f76f28c3f0"]},{"_type":"span","marks":[],"text":". You really can put all your eggs in one basket. But, guard that basket.","_key":"347482eb43b2"}],"_type":"block"},{"markDefs":[],"children":[{"_type":"span","marks":[],"text":"Second, the ","_key":"308be9e4dfee"},{"_type":"span","marks":["strong"],"text":"platform the app runs on will be backward compatible forever.","_key":"21132a2de180"},{"_type":"span","marks":[],"text":" Forever. If the underlying platform's ABI changes — whatever level you define \"platform\" at — it triggers a cascade of upgrades that could be visible all the way back to the surface.","_key":"44a58fa6f188"}],"_type":"block","style":"normal","_key":"7c5a3684bc08"},{"markDefs":[{"href":"https://apenwarr.ca/log/20201227","_key":"15624ddb4653","_type":"link"}],"children":[{"text":"We're trained to be paranoid about security holes at every layer. As a natural consequence, platforms must always change — every time there's a hole. And therefore no platform can ever be stable, and therefore the upgrade treadmill is ","_key":"2a3dbff83725","_type":"span","marks":[]},{"text":"systematically","_key":"cb10e8721dc1","_type":"span","marks":["15624ddb4653","em"]},{"_type":"span","marks":["em"],"text":" inevitable","_key":"bce9f7c101ab"},{"marks":[],"text":".","_key":"0f85b26ebb9a","_type":"span"}],"_type":"block","style":"normal","_key":"493ad2704933"},{"markDefs":[],"children":[{"_type":"span","marks":[],"text":"But it's not true.","_key":"710da1a4100b"}],"_type":"block","style":"normal","_key":"fd36092d6352"},{"_type":"block","style":"h2","_key":"5faded222f5a","markDefs":[],"children":[{"marks":[],"text":"Stable platforms exist, but are expensive to maintain","_key":"0693111311bf","_type":"span"}]},{"markDefs":[],"children":[{"_type":"span","marks":[],"text":"If we look at platforms in the tech world, we can find examples that don't follow the pattern of breaking stuff all the time, even when they get upgraded with new features and security fixes. It's not a coincidence that these are the platforms almost everything is built on.","_key":"198edf2ac809"}],"_type":"block","style":"normal","_key":"15b99e445da2"},{"children":[{"_key":"8752726b253d","_type":"span","marks":[],"text":"The compute platform: x86 (and nowadays, modern arm64"},{"_type":"span","marks":["bf1b0bf97d2d"],"text":"[3]","_key":"14584bb5cd42"},{"_type":"span","marks":[],"text":")","_key":"6cd548fb3575"}],"level":1,"_type":"block","style":"normal","_key":"edc0d54762e7","listItem":"bullet","markDefs":[{"href":"#footnote-3","_key":"bf1b0bf97d2d","blank":false,"_type":"link"}]},{"level":1,"_type":"block","style":"normal","_key":"2362ff5b6dda","listItem":"bullet","markDefs":[{"blank":false,"_type":"link","href":"#footnote-4","_key":"9a99c70460d9"},{"_type":"link","href":"https://www.reddit.com/r/linusrants/comments/wqociv/linus_rants_about_glibc_breaking_compatibility/","_key":"760fdee146e0","blank":true}],"children":[{"_type":"span","marks":[],"text":"OS platforms: DOS. Win32/Win64. ","_key":"5dcf5a790b9d"},{"_type":"span","marks":["760fdee146e0"],"text":"Linux kernel ABIs","_key":"3addf353c432"},{"_type":"span","marks":[],"text":". ","_key":"25cf9ab9ccc3"},{"text":"[4]","_key":"4d79be4d568d","_type":"span","marks":["9a99c70460d9"]}]},{"level":1,"_type":"block","style":"normal","_key":"19c14da6f627","listItem":"bullet","markDefs":[{"blank":true,"_type":"link","href":"https://tabu-craig.medium.com/my-worst-javascript-features-465378d5ad43","_key":"ee11d086f866"}],"children":[{"_type":"span","marks":[],"text":"The web platform: HTML and ","_key":"f060cfb31318"},{"text":"Javascript ","_key":"940b9a3b4ddc","_type":"span","marks":["ee11d086f866"]},{"_type":"span","marks":[],"text":"(and now wasm)","_key":"c624c0285c39"}]},{"_type":"block","style":"normal","_key":"79a75eb2ac15","markDefs":[{"_type":"link","href":"https://devblogs.microsoft.com/oldnewthing/20061106-01/?p=29123","_key":"ba56ca216757"},{"_type":"link","href":"https://en.wikipedia.org/wiki/Meltdown_(security_vulnerability)","_key":"617b9cc38cac"},{"_type":"link","href":"https://tabu-craig.medium.com/my-worst-javascript-features-465378d5ad43","_key":"426b69cc461c"}],"children":[{"text":"For all of these platforms, some central company or committee puts an ","_key":"f0b9183e3940","_type":"span","marks":[]},{"_type":"span","marks":["ba56ca216757"],"text":"astonishing amount of work","_key":"b92b8cc6d209"},{"_type":"span","marks":[],"text":" into making sure stuff stays compatible year after year, version after version, forever, even when ","_key":"0226b2725bb9"},{"marks":["617b9cc38cac"],"text":"painful architectural security holes need plugging","_key":"140244c31e06","_type":"span"},{"_type":"span","marks":[],"text":" or the ","_key":"49cf6299e8f9"},{"_type":"span","marks":["426b69cc461c"],"text":"original idea really sucked","_key":"caed70070b03"},{"_type":"span","marks":[],"text":".","_key":"4accd848b062"}]},{"title":"Emulation Diagram","display":"block","_type":"assetBlock","_key":"a9bacc0d7751","asset":{"video":{"mobileStaticAlt":{"useMobileAlternativeImage":false,"placeholderColor":{"color":"none","_type":"colors"},"_type":"asset","video":{"useMobileStaticAlt":false,"clickType":"watchVideoCaption","mobileStaticAlt":{"video":{"mobileStaticAlt":{"_type":"asset","video":{"playType":"click","useMobileStaticAlt":false,"clickType":"watchVideoCaption"},"alignment":"center","type":"image","useMobileAlternativeImage":false,"placeholderColor":{"color":"none","_type":"colors"}},"playType":"click","useMobileStaticAlt":false,"clickType":"watchVideoCaption"},"alignment":"center","type":"image","useMobileAlternativeImage":false,"placeholderColor":{"color":"none","_type":"colors"},"_type":"asset"},"playType":"click"},"alignment":"center","type":"image"},"playType":"click","useMobileStaticAlt":false,"clickType":"watchVideoCaption"},"alignment":"center","type":"image","useMobileAlternativeImage":false,"image":{"_type":"sanityImage","alt":"emulation diagram","asset":{"_ref":"image-2880413261de6a1e38fd5f6b49d3562009cda4c8-1320x900-svg","_type":"reference"}},"placeholderColor":{"_type":"colors","color":"none"},"_type":"asset"}},{"markDefs":[],"children":[{"_type":"span","marks":[],"text":"Even when a platform dies off — as DOS did, and win32 did, and x86 probably will eventually — the things built on those platforms survive thanks to emulation. It's so valuable to keep platforms intact that we insert a new compatible layer underneath the defunct platform to transparently fix what's on top.","_key":"95ca2c4eb986"}],"_type":"block","style":"normal","_key":"e2e9f102e737"},{"style":"normal","_key":"2d5bb946e6fe","markDefs":[],"children":[{"_type":"span","marks":[],"text":"It's really expensive to maintain these stable platforms. So why do people do it? Because it's also really profitable. In fact, it's a survivorship trait: the only platforms that survive, long term, are the ones that do this.","_key":"c1966bf181c9"}],"_type":"block"},{"_key":"22574abcc4fb","markDefs":[],"children":[{"text":"Every time a vendor breaks their platform, they give you two choices: upgrade to their new thing, or upgrade to someone else's new thing. Every time \"just stick with it\" becomes a choice, they lose some people. Vendors who keep their platform stable benefit from the overwhelming majority, people who are satisfied with the status quo. Most people simply have better things to do than switch away from a working platform with a working solution on top.","_key":"c20b197d5e42","_type":"span","marks":[]}],"_type":"block","style":"normal"},{"_type":"block","style":"h2","_key":"726c074a4f40","markDefs":[],"children":[{"marks":[],"text":"The Internet is a platform","_key":"5fb32cdc4d06","_type":"span"}]},{"markDefs":[],"children":[{"_type":"span","marks":[],"text":"In my list of stable platforms above, I missed one: TCP/IP.","_key":"792e434df1c7"}],"_type":"block","style":"normal","_key":"7fc0a483e4c1"},{"children":[{"marks":[],"text":"The history is fascinating. TCP-over-IPv4 has persisted since the 1980s, through uncountable numbers of hardware platforms, OSes, reimplementations, optimizations, congestion control algorithms, security fixes, workarounds, extensions, middle boxes, proxies, and NATs. And yet, if you wrote a program in 1983 using TCP over IPv4, and you run it today in an emulated computer from that era, chances are it can talk to a 2025 iPhone, 42 years later. Wow. Now that's stable.","_key":"3a78294fbd64","_type":"span"}],"_type":"block","style":"normal","_key":"464d3892e6d1","markDefs":[]},{"markDefs":[{"_type":"link","href":"https://tailscale.com/blog/new-internet","_key":"ce225f372692"},{"blank":false,"_type":"link","href":"#footnote-5","_key":"30aa412c4b47"}],"children":[{"marks":[],"text":"But, as I wrote in ","_key":"e97e2718ba40","_type":"span"},{"_type":"span","marks":["ce225f372692"],"text":"The New Internet","_key":"814fc0f34d6f"},{"_type":"span","marks":[],"text":", the Internet platform has been so stable for so long that its oldest design flaws are really holding us back. Our long battle to deploy the incompatible","_key":"86eb14effd5e"},{"_type":"span","marks":["30aa412c4b47"],"text":"[5]","_key":"878bb5a68363"},{"_type":"span","marks":[],"text":" IPv6 — you were the chosen one! — has left the original and still-dominant IPv4 mostly as it was, with an ever-growing pile of hacks on top.","_key":"fb904813ea3d"}],"_type":"block","style":"normal","_key":"bc3efab2241a"},{"_key":"f55d17f77224","markDefs":[],"children":[{"_type":"span","marks":[],"text":"We can do better. And, we can do better without breaking anything.","_key":"fac0853b52eb"}],"_type":"block","style":"normal"},{"_type":"block","style":"h2","_key":"5a9292f278d1","markDefs":[],"children":[{"_key":"26052d39377b","_type":"span","marks":[],"text":"Tailscale is a stable platform"}]},{"style":"normal","_key":"3b89d29b062b","markDefs":[{"blank":false,"_type":"link","href":"#footnote-6","_key":"82afb8a18c41"}],"children":[{"_type":"span","marks":[],"text":"We don't talk about it much, but when we started Tailscale we made a few quiet promises to ourselves. ","_key":"3f9ed1f192ec"},{"_type":"span","marks":["82afb8a18c41"],"text":"[6]","_key":"3cdfde9a02cd"}],"_type":"block"},{"markDefs":[{"_type":"link","href":"https://www.lastweekinaws.com/podcast/screaming-in-the-cloud/the-magic-of-tailscale-with-avery-pennarun/","_key":"2efa45125d83"},{"_type":"link","href":"#footnote-7","_key":"5c6a9608bd77","blank":false}],"children":[{"_type":"span","marks":[],"text":"First, ","_key":"aba7b0ceea92"},{"_type":"span","marks":["2efa45125d83"],"text":"we would never break any client release","_key":"6674cbb16e0b"},{"_type":"span","marks":[],"text":" that people were still using.","_key":"504f12a6f384"},{"text":"[7]","_key":"17dd3fa941c8","_type":"span","marks":["5c6a9608bd77"]}],"_type":"block","style":"normal","_key":"f1e8ff0ee0cd"},{"markDefs":[{"_key":"a7cdc3f28ef0","_type":"link","href":"https://tailscale.com/kb/1101/api"},{"_type":"link","href":"https://tailscale.com/kb/1018/acls","_key":"e2167c9ac461"}],"children":[{"_type":"span","marks":[],"text":"Second, that we would never break any of our public-facing ","_key":"8c6488586bb8"},{"marks":["a7cdc3f28ef0"],"text":"coordination server APIs","_key":"fb90b0a54361","_type":"span"},{"_type":"span","marks":[],"text":" or ","_key":"1799d791c7a2"},{"marks":["e2167c9ac461"],"text":"policy file syntax","_key":"945332dfd93c","_type":"span"},{"_type":"span","marks":[],"text":".","_key":"982c69d63151"}],"_type":"block","style":"normal","_key":"e1fab54e065d"},{"children":[{"_key":"75322fdb81f4","_type":"span","marks":[],"text":"Third, we would clearly identify which set of APIs in our "},{"_type":"span","marks":["95d17b3ecc2b"],"text":"Tailscale client in Go","_key":"e7625a5a571a"},{"_type":"span","marks":[],"text":" that we promised not to break. (And conversely, which you shouldn't touch because they were implementation details.)","_key":"17bdc4627a67"}],"_type":"block","style":"normal","_key":"5a2a960bbe40","markDefs":[{"_type":"link","href":"https://github.com/tailscale/tailscale","_key":"95d17b3ecc2b"}]},{"_type":"block","style":"normal","_key":"a154c8e07a5a","markDefs":[{"_type":"link","href":"https://tailscale.com/kb/1121/ipv6","_key":"7820046a9ed7"},{"_type":"link","href":"https://tailscale.com/kb/1201/4via6-subnets","_key":"4c4a4cbe965a"}],"children":[{"text":"Fourth, we would find some way to support ","_key":"b84f5bc3780a","_type":"span","marks":[]},{"_type":"span","marks":["7820046a9ed7"],"text":"both IPv4 and IPv6","_key":"f313f1f7aa5c"},{"_key":"1d7704ba7857","_type":"span","marks":[],"text":", for every node that wants it, forever. Including "},{"_type":"span","marks":["4c4a4cbe965a"],"text":"transparently cross-connecting between the two","_key":"11088efb8593"},{"_type":"span","marks":[],"text":". And regardless of what shape the public Internet takes (pure IPv4, pure IPv6, or some new thing).","_key":"26978e5006bf"}]},{"style":"normal","_key":"55ca1c07a4fe","markDefs":[],"children":[{"_type":"span","marks":[],"text":"Fifth, we would integrate security into what already exists, in an application-transparent way. Old-school IPv4 apps like telnet, ftp, rsh, and SMB are hopelessly insecure on the public Internet. But on Tailscale they're totally safe to use. We fixed the glitch by adding end-to-end encryption and identity. And without modifying any app, any protocol, or any part further up the stack.","_key":"1145a5892dda"}],"_type":"block"},{"display":"block","_type":"assetBlock","_key":"4ee3768a4fa6","asset":{"alignment":"center","type":"image","useMobileAlternativeImage":false,"image":{"_type":"sanityImage","alt":"Tailscale layer above emulation","asset":{"_ref":"image-a05101c38d530900a7ba5f35100a19bcaefc5dee-1320x900-svg","_type":"reference"}},"placeholderColor":{"color":"none","_type":"colors"},"_type":"asset","video":{"playType":"click","useMobileStaticAlt":false,"clickType":"watchVideoCaption","mobileStaticAlt":{"type":"image","useMobileAlternativeImage":false,"placeholderColor":{"color":"none","_type":"colors"},"_type":"asset","video":{"mobileStaticAlt":{"alignment":"center","type":"image","useMobileAlternativeImage":false,"placeholderColor":{"_type":"colors","color":"none"},"_type":"asset","video":{"clickType":"watchVideoCaption","mobileStaticAlt":{"type":"image","useMobileAlternativeImage":false,"placeholderColor":{"color":"none","_type":"colors"},"_type":"asset","video":{"playType":"click","useMobileStaticAlt":false,"clickType":"watchVideoCaption"},"alignment":"center"},"playType":"click","useMobileStaticAlt":false}},"playType":"click","useMobileStaticAlt":false,"clickType":"watchVideoCaption"},"alignment":"center"}}},"title":"Tailscale layer above emulation"},{"children":[{"text":"As a result, people who deployed a Tailscale node onto an embedded device at a factory three years ago won't have nasty surprises when they take it out of the box three years from now.","_key":"6861ff1b274b","_type":"span","marks":[]},{"text":"[9]","_key":"1ab80b5bdbb7","_type":"span","marks":["6dc5d325a449"]},{"_type":"span","marks":[],"text":" It'll work fine (assuming you set its ","_key":"ee7144c48420"},{"_type":"span","marks":["c5d2f4b9e6c9"],"text":"key expiry","_key":"392e474ed155"},{"marks":[],"text":" correctly :))","_key":"130117c12573","_type":"span"}],"_type":"block","style":"normal","_key":"fcceb878fde6","markDefs":[{"_type":"link","href":"https://tailscale.com/kb/1028/key-expiry","_key":"c5d2f4b9e6c9"},{"blank":false,"_type":"link","href":"#footnote-9","_key":"6dc5d325a449"}]},{"markDefs":[],"children":[{"_type":"span","marks":[],"text":"We dogfooded our own Tailscale platform","_key":"82fd2ae03a55"}],"_type":"block","style":"h2","_key":"17b236cbaa2a"},{"_key":"915f17842ba9","markDefs":[],"children":[{"text":"Right, so, that was a long setup for what can now be a shorter payoff.","_key":"4886a9f47a9f","_type":"span","marks":[]}],"_type":"block","style":"normal"},{"_type":"block","style":"normal","_key":"2740f513439f","markDefs":[],"children":[{"_type":"span","marks":[],"text":"At Tailscale over the years, we've built several small tools that depend on our core product. Some of these are written by one person and only sporadically maintained, even though we use them heavily in production.","_key":"6a0c91e036c2"}]},{"_type":"block","style":"normal","_key":"5451aeef20b2","markDefs":[],"children":[{"_type":"span","marks":[],"text":"In most situations, \"sporadically maintained\" would be a little scary. You can't use that, right? Can you really rely on a tool that isn't updated every week to keep up with all its dependencies? Well, if it's on Tailscale, then: yes. We do, and you can too. It's awesome. We want to share that awesomeness with you.","_key":"96d82f4dba93"}]},{"_type":"block","style":"normal","_key":"abb17bbcb82d","markDefs":[],"children":[{"_type":"span","marks":[],"text":"For the Tailscale-owned tools below, I'm going to make a bold combination of claims.","_key":"5ea8a4943f33"}]},{"level":1,"_type":"block","style":"normal","_key":"a031bbedd6d5","listItem":"bullet","markDefs":[],"children":[{"_type":"span","marks":[],"text":"They are ","_key":"022b166d70b8"},{"_key":"f3419682675d","_type":"span","marks":["strong"],"text":"not maintained"},{"text":" (except if we really do find an exploitable security hole... or when we feel like it).","_key":"988fdfad29a1","_type":"span","marks":[]}]},{"_type":"block","style":"normal","_key":"78093645ba9c","listItem":"bullet","markDefs":[],"children":[{"_key":"96cb000a2e4f","_type":"span","marks":[],"text":"But, they "},{"_type":"span","marks":["strong"],"text":"are supported.","_key":"12d58246d797"}],"level":1},{"_type":"block","style":"normal","_key":"45bb6dbcd4ac","markDefs":[{"_type":"link","href":"https://tailscale.com/blog/free-plan","_key":"48ab4dadd219"},{"_key":"944625049ff3","blank":false,"_type":"link","href":"#footnote-11"}],"children":[{"_type":"span","marks":[],"text":"Let's read that again. Normally it's the other way around. Typically, popular projects are heavily maintained, but you still won't get official help when you ask, unless you pay up. But Tailscale offers ","_key":"4688fa23f11b"},{"marks":["48ab4dadd219"],"text":"free email support for our products for everyone, even free users","_key":"68a330fdd46d","_type":"span"},{"_key":"19516eb965ae","_type":"span","marks":[],"text":", and starting today, this extends to our community projects."},{"marks":["944625049ff3"],"text":"[11]","_key":"14e406ab07e4","_type":"span"}]},{"_key":"1b6cfd01d313","markDefs":[{"blank":false,"_type":"link","href":"#footnote-12","_key":"dc551af7592c"}],"children":[{"text":"Yes, we'll help you get these tools working on your tailnet. Since the tools aren't officially maintained, we can't guarantee new features or even bug fixes. They're provided as-is. But, they work. And even more importantly, once you get them working, they're going to keep working, no exceptions.","_key":"178a3fe227cd","_type":"span","marks":[]},{"_key":"aa003afdebe7","_type":"span","marks":["dc551af7592c"],"text":"[12]"},{"_type":"span","marks":[],"text":" That's the promise.","_key":"9817ece1d3cf"}],"_type":"block","style":"normal"},{"markDefs":[{"_type":"link","href":"https://tailscale.com/blog/how-tailscale-works","_key":"6d6dd93e5307"},{"_type":"link","href":"https://tailscale.com/blog/how-nat-traversal-works","_key":"0cd81060274a"}],"children":[{"_type":"span","marks":[],"text":"Of course, patches are welcome. Tailscale's core does the ","_key":"ae986a93c718"},{"_type":"span","marks":["6d6dd93e5307"],"text":"hard parts","_key":"3db4e9c82258"},{"text":" (backward compatibility, connectivity, ","_key":"122b10486b76","_type":"span","marks":[]},{"marks":["0cd81060274a"],"text":"NAT traversal","_key":"de093babc2c9","_type":"span"},{"_key":"ea3018dc6ae8","_type":"span","marks":[],"text":", authentication, and authorization), and we know it can be hairy to contribute to that. By comparison, these community projects tend to be fun and easy to fork and hack on. They make excellent toys, templates for new toys, or starter projects for new open source developers."}],"_type":"block","style":"normal","_key":"774538d3413e"},{"markDefs":[],"children":[{"_type":"span","marks":[],"text":"Avery's favourite Tailscale community projects","_key":"291e43aae9bf"}],"_type":"block","style":"h2","_key":"62a290fe68ba"},{"_type":"block","style":"normal","_key":"44f773b047e4","markDefs":[],"children":[{"text":"Okay, so today we're launching the first batch of projects. Some of these have been out there for a while, but in many cases they've been ","_key":"9eb72abeab19","_type":"span","marks":[]},{"text":"\u003ccough\u003e","_key":"737d6243fb6b","_type":"span","marks":["em"]},{"_type":"span","marks":[],"text":" only lightly documented or they had big warning signs on them, or it wasn't clear whether they were maintained or trustworthy. We've put some work into fixing up all those issues so you can feel safer about playing with them.","_key":"7314c5476dfe"}]},{"children":[{"_type":"span","marks":[],"text":"Here are some of my favourites!","_key":"4d5688d9e372"}],"_type":"block","style":"normal","_key":"dcaba90f50e0","markDefs":[]},{"_key":"f6dbfa0ad5b0","listItem":"bullet","markDefs":[{"_type":"link","href":"https://tailscale.com/blog/jit-access-ga","_key":"5c187b3ec877"},{"_key":"621307e07c41","_type":"link","href":"https://tailscale.com/api#tag/devices/POST/device/%7BdeviceId%7D/attributes/%7BattributeKey%7D"}],"children":[{"_type":"span","marks":[],"text":"The ","_key":"35ce5ee739f5"},{"_type":"span","marks":["strong","5c187b3ec877"],"text":"JIT accessbot","_key":"29753f122872"},{"_key":"388f70bff3be","_type":"span","marks":[],"text":" is an excellent, straightforward example of how to host a Slackbot on your tailnet that can call into Tailscale and Slack APIs. The current version uses our "},{"_type":"span","marks":["621307e07c41"],"text":"enterprise device posture APIs","_key":"62d5c8017ff1"},{"_type":"span","marks":[],"text":" (also available on personal plans) to temporarily adjust device postures after a request/approval process, which then affects access rights. But you can straightforwardly modify it to cause whatever tailnet changes you want based on whatever triggers you want, or whatever UI you want.","_key":"0b0af918f7df"}],"level":1,"_type":"block","style":"normal"},{"children":[{"_type":"span","marks":["75a13084b9c0","strong"],"text":"setec","_key":"9d5408956f3a"},{"_type":"span","marks":[],"text":" is a sort of \"safety deposit box\" ","_key":"c5935f83f745"},{"marks":["em"],"text":"\u003cahem\u003e","_key":"0f553f9976d8","_type":"span"},{"_type":"span","marks":[],"text":" for your keys and other secrets. The hardest part of storing secrets is bootstrapping: where do you put the key you'll use to authenticate yourself to the secrets store? And once you've got all that done, do you really need another secrets store or can you just use that one? But with Tailscale, we already do the auth for you, which means the hard bootstrap problem is solved already. That means setec can be really simple; it's just a secure key/value store and some config settings for who can read and write which things. It's also a great example of how to write an app that's configured by Tailscale using ","_key":"4457673c56fb"},{"_type":"span","marks":["3a7ef1567e01"],"text":"ACL Grants","_key":"dff94e87c1e6"},{"text":".","_key":"6c9da3185a79","_type":"span","marks":[]}],"level":1,"_type":"block","style":"normal","_key":"9bc0dfdf4cf4","listItem":"bullet","markDefs":[{"_type":"link","href":"https://tailscale.com/blog/acl-grants","_key":"3a7ef1567e01"},{"blank":true,"_type":"link","href":"https://github.com/tailscale/setec","_key":"75a13084b9c0"}]},{"listItem":"bullet","markDefs":[{"blank":false,"_type":"link","href":"#footnote-13","_key":"7382f2756902"},{"blank":true,"_type":"link","href":"https://github.com/tailscale/tailscale/tree/main/cmd/tsidp","_key":"9edcba34b305"},{"blank":true,"_type":"link","href":"https://tailscale.com/kb/1223/funnel","_key":"f956234c5d5b"}],"children":[{"_type":"span","marks":["9edcba34b305","strong"],"text":"tsidp","_key":"04d386d0a735"},{"_key":"2b223f2ced83","_type":"span","marks":[],"text":" is the world's smallest OIDC provider. Every Tailscale packet has an identity attached. But, not every app knows how to read that identity from Tailscale. On the other hand, lots of apps know how to auth against an OIDC provider. So, tsidp bridges the two. Ask it for an OIDC key, and it gives you one instantly, because it already knows who you are. And, it even works with apps outside your tailnet (like other people's SaaS apps!), if you export it over "},{"_type":"span","marks":["f956234c5d5b"],"text":"Tailscale Funnel","_key":"ef8f7a245ad2"},{"_type":"span","marks":[],"text":". And best of all, nobody can track which apps you use with your tsidp identity — because you, not we, are the identity provider. As always with Tailscale and Funnel, your traffic is end-to-end encrypted and we can't decrypt it ourselves.","_key":"a25cea2627aa"},{"text":"[13]","_key":"e9a0a95d0d92","_type":"span","marks":["7382f2756902"]}],"level":1,"_type":"block","style":"normal","_key":"6d29fd2cad1c"},{"_key":"e8069cb2322d","listItem":"bullet","markDefs":[{"blank":true,"_type":"link","href":"https://github.com/tailscale/golink","_key":"66e7dcf4a7dc"}],"children":[{"_type":"span","marks":["66e7dcf4a7dc","strong"],"text":"golink","_key":"47cb72d4d548"},{"_type":"span","marks":[],"text":" is an example of how to make trivial apps using Tailscale's built-in auth, built-in https, and MagicDNS. Install golink in a container somewhere, and then for everyone on your tailnet, you can make memorable \"go/whatever\" links that redirect to whatever URL you want. No browser extensions needed. Also, um, we would appreciate patches that make it prettier.","_key":"a38fb42d7a45"}],"level":1,"_type":"block","style":"normal"},{"listItem":"bullet","markDefs":[{"_type":"link","href":"https://github.com/tailscale-dev/tclip","_key":"718a6cfac91a","blank":true}],"children":[{"_type":"span","marks":["718a6cfac91a","strong"],"text":"tclip","_key":"b3be15827e95"},{"_type":"span","marks":["strong"],"text":" ","_key":"ead58f95132a"},{"marks":[],"text":"is a privately hosted pastebin alternative with a trivial command-line client. Cut and paste text from the command line, and share it with others. The command line tool requires no login, no keys or tokens, and no magic strings, because thanks to Tailscale, the server always knows it's you.","_key":"5c1dc4ce4c51","_type":"span"}],"level":1,"_type":"block","style":"normal","_key":"55753743e0d5"},{"listItem":"bullet","markDefs":[{"blank":true,"_type":"link","href":"https://github.com/tailscale/caddy-tailscale","_key":"a580308a0d75"}],"children":[{"text":"The ","_key":"281f42db82b0","_type":"span","marks":[]},{"_type":"span","marks":["a580308a0d75","strong"],"text":"Tailscale plugin for Caddy","_key":"548c03278177"},{"_type":"span","marks":[],"text":" makes it easy to publish internal services publicly using your own domain name, complete with automatic LetsEncrypt certs and forwarding to your tailnet.","_key":"23762d27dd40"}],"level":1,"_type":"block","style":"normal","_key":"492fe643a18d"},{"display":"inline","_type":"assetBlock","_key":"9e2ddcd4f325","asset":{"alignment":"center","type":"image","useMobileAlternativeImage":false,"image":{"asset":{"_ref":"image-d72784d9bbd3e82a9b13f5561fe57866199c95a7-2262x1887-png","_type":"reference"},"_type":"sanityImage","alt":"a screenshot of the Tailscale community projects home page"},"placeholderColor":{"color":"none","_type":"colors"},"_type":"asset","video":{"clickType":"watchVideoCaption","mobileStaticAlt":{"useMobileAlternativeImage":false,"placeholderColor":{"color":"none","_type":"colors"},"_type":"asset","video":{"mobileStaticAlt":{"_type":"asset","video":{"clickType":"watchVideoCaption","mobileStaticAlt":{"placeholderColor":{"_type":"colors","color":"none"},"_type":"asset","video":{"playType":"click","useMobileStaticAlt":false,"clickType":"watchVideoCaption"},"alignment":"center","type":"image","useMobileAlternativeImage":false},"playType":"click","useMobileStaticAlt":false},"alignment":"center","type":"image","useMobileAlternativeImage":false,"placeholderColor":{"color":"none","_type":"colors"}},"playType":"click","useMobileStaticAlt":false,"clickType":"watchVideoCaption"},"alignment":"center","type":"image"},"playType":"click","useMobileStaticAlt":false}},"title":"Community Projects Home Page"},{"_type":"block","style":"h4","_key":"58889ea81d96","markDefs":[{"_type":"link","href":"https://tailscale.com/community/community-projects","_key":"620fb87ede9e","blank":true}],"children":[{"marks":[],"text":"To check out the whole list of tools and extensions, take a look at our brand new and shiny ","_key":"7c7196e37a88","_type":"span"},{"marks":["620fb87ede9e","strong"],"text":"Community Projects home page","_key":"0b44386e4d65","_type":"span"},{"_type":"span","marks":[],"text":".","_key":"191a0e1fc437"}]},{"style":"normal","_key":"8b573dd92ef6","markDefs":[{"blank":true,"_type":"link","href":"https://bsky.app/profile/tailscale.com","_key":"6eb52f839378"},{"href":"https://twitter.com/tailscale","_key":"0518c833c6d5","blank":true,"_type":"link"},{"blank":true,"_type":"link","href":"https://hachyderm.io/@tailscale","_key":"79f31ced75f6"},{"blank":true,"_type":"link","href":"https://www.linkedin.com/company/tailscale","_key":"ba36e8a6d0f4"}],"children":[{"marks":[],"text":"Enjoy living in the future! And please send us your comments on ","_key":"f5e2b71911f1","_type":"span"},{"_key":"16a20a219e64","_type":"span","marks":["6eb52f839378"],"text":"bluesky"},{"marks":[],"text":", ","_key":"28187c5407b9","_type":"span"},{"_type":"span","marks":["0518c833c6d5"],"text":"twitter... sorry, X","_key":"b5f3dfa8dd79"},{"_type":"span","marks":[],"text":", ","_key":"655f1910c66d"},{"marks":["79f31ced75f6"],"text":"Mastodon","_key":"b784c8917cc6","_type":"span"},{"text":", ","_key":"5d9b26422ce0","_type":"span","marks":[]},{"_type":"span","marks":["ba36e8a6d0f4"],"text":"Linkedin","_key":"94938ec64c4d"},{"text":", or if none of those work for you, maybe try carrier pigeon or a message in a bottle.","_key":"7733062244f4","_type":"span","marks":[]}],"_type":"block"},{"children":[{"_type":"span","marks":[],"text":"\nFootnotes","_key":"c51873d761f4"}],"_type":"block","style":"h3","_key":"ca762e8216c5","markDefs":[]},{"_key":"0c397eedf0ea","code":"\u003cdiv class=\"pl-8 flex gap-2 flex-col\"\u003e\n \u003cspan id=\"footnote-1\"\u003e[1] If you can't trust your coworkers, then you have a different problem, which no amount of software upgrading will fix.\u003c/span\u003e\n\n \u003cspan id=\"footnote-2\"\u003e[2] This whole article is about small app instances for your friends and coworkers, not public-facing SaaS apps open for attack on the public Internet. For big scalable apps you need big scalable security. But for apps only your coworkers can access, you don't.\u003c/span\u003e\n\n \u003cspan id=\"footnote-3\"\u003e[3] For a long time, ARM was an embedded architecture almost as \n\u003ca href=\"https://en.wikipedia.org/wiki/List_of_ARM_processors\"\u003efamous for incompatible variants\u003c/a\u003e as MIPS was. Luckily they seem to have gotten over that bad habit and now you can compile \"for arm64\" and get binaries that work consistently on lots of devices.\u003c/span\u003e\n\n \u003cspan id=\"footnote-4\"\u003e[4] But not macOS and iOS, they \u003ca href=\"https://developer.apple.com/forums/thread/763864\"\u003eunapologetically break stuff all the time\u003c/a\u003e. Linux userspace gives a half-hearted try but it's not good enough, which is how containers got popular.\u003c/span\u003e\n\n \u003cspan id=\"footnote-5\"\u003e[5] IPv6 made the classic mistake of being incompatible with the old platform, so people had to choose whether to stick (works right now) or switch (does not work right now). Sure enough, \u003ca href=\"https://blog.apnic.net/2024/10/22/the-ipv6-transition/\"\u003eIPv6 adoption has been slow for 25 years now\u003c/a\u003e. This is a \u003ca href=\"https://apenwarr.ca/log/20201227\"\u003echicken-egg problem\u003c/a\u003e.\u003c/span\u003e\n\n \u003cspan id=\"footnote-6\"\u003e[6] They were quiet because we weren't sure we'd be able to keep them, and it's always embarrassing to miss a commitment. We're more confident about them now, years later. \u003c/span\u003e\n \n \u003cspan id=\"footnote-7\"\u003e[7] By the way, this is slightly more achievable than it sounds. Our coordination server is \"roll-forward,\" \u003ca href=\"#footnote-8\"\u003e[8]\u003c/a\u003e which means new server versions need to support old clients, but new clients do not need to support old servers; they will never see an old server. That means validation testing overhead can be O(n) with the number of client versions, not O(m*n) with the number of (server, client) version pairs.\u003c/span\u003e\n\n \u003cspan id=\"footnote-8\"\u003e[8] The exception is people's headscale deployments, which we can't guarantee will always understand new clients. Sorry. We do put effort into automated testing against headscale. But it's impossible to keep up with the O(m*n) testing required to make every combination perfect. If you use headscale, you need to keep at least that component on your upgrade treadmill. This is a good idea anyway, since it's the only public-facing component, which billions of untrusted people have the opportunity to attack.\u003c/span\u003e\n\n \u003cspan id=\"footnote-9\"\u003e[9] There are some tricks to make this safe. Core Tailscale only has two kinds of ports \u003ca href=\"#footnote-10\"\u003e[10]\u003c/a\u003e facing the public network: outgoing connections to the coordination server, which are secure as long as TLS and the coordination server are secure; and incoming connections via WireGuard, which is so simple that the \u003ca href=\"https://tailscale.com/kb/1028/key-expiry\"\u003eWireGuard protocol has never had security holes reported since it came out 10 years ago\u003c/a\u003e.\u003c/span\u003e\n\n \u003cspan id=\"footnote-10\"\u003e[10] Other Tailscale incoming ports, like \u003ca href=\"https://tailscale.com/kb/1193/tailscale-ssh\"\u003eTailscale SSH\u003c/a\u003e and \u003ca href=\"https://tailscale.com/kb/1106/taildrop\"\u003eTaildrop\u003c/a\u003e, can be selectively disabled by the coordination server per-node based on client software version, in case we find a critical bug. So far this has never been necessary, thanks partly to \u003ca href=\"https://xeiaso.net/shitposts/no-way-to-prevent-this/CVE-2025-0725/\"\u003eGo's memory-safe programming model\u003c/a\u003e.\u003c/span\u003e\n\n \u003cspan id=\"footnote-11\"\u003e[11] Yes, I get as much internal eyebrow-raising for that as you'd expect. But it helps us maintain an insanely high quality bar that keeps getting higher. And yes, our gross margins are still healthy despite that promise, because fans who get great free support become superfans who tell you they got great free support. Also, our support team are a bunch of heroes. Next time you talk to them, please tell them Avery says thanks.\u003c/span\u003e\n\n \u003cspan id=\"footnote-12\"\u003e[12] At least, we won't be the ones to break them. If they call other people's APIs (for example, our \u003ca href=\"https://tailscale.com/blog/jit-access-ga\"\u003eJIT accessbot\u003c/a\u003e needs to call Slack APIs) then we can't stop other people from breaking or deprecating their APIs. Or, if your container platform can't make up its mind, then that's not our fault either.\u003c/span\u003e\n\n \u003cspan id=\"footnote-13\"\u003e[13] The more you think about this, the more fun it becomes. Don't like third-party providers like Google knowing which apps you log into? You can use Google, Microsoft, or Okta to log into your Tailscale account using their highly secure top-level IdPs. But then you can use tsidp to log into everything else, so the only app they ever know about is Tailscale. Combine this with Tailnet lock and your entire SSO chain is protected against breaches of the Tailscale coordination server and against breaches at your chosen SSO provider \u003ca href=\"#footnote-14\"\u003e[14]\u003c/a\u003e.\u003c/span\u003e\n\n \u003cspan id=\"footnote-14\"\u003e[14] There's one little exception. Since Tailscale Funnel issues the TLS cert for your externally-facing tsidp and we own the \u003ca href=\"https://ts.net\"\u003ets.net\u003c/a\u003e domain, a breach of the Tailscale coordination service could cascade into a breach of your tsidp cert. If you don't trust us, you can eliminate this dependency by skipping Funnel, using your own domain instead of ts.net, and instead hosting your own public-facing server with TLS certificates entirely under your control.\u003c/span\u003e\n\u003c/div\u003e\n","_type":"html"},{"markDefs":[],"children":[{"marks":[],"text":"","_key":"90f9fc06e3a2","_type":"span"}],"_type":"block","style":"normal","_key":"91ee037c7920"}],"category":"company","featuredImage":{"_type":"image","alt":"Tailscale image of shapes","asset":{"_type":"reference","_ref":"image-2ffad06c5f878ab41bc8e0eac682936df2518469-600x315-svg"}},"authors":[{"_id":"1646214e-9d2e-45f5-92f9-7609d8e90e47","title":"Avery Pennarun","_updatedAt":"2024-10-10T19:37:49Z","_createdAt":"2023-10-23T14:14:42Z","_rev":"KLVqzQL7KTVccOrMxg0eQ4","_type":"teamMember","member":{"image":{"alt":"Avery Pennarun Headshot","asset":{"_ref":"image-a389ecb80f53c38b95ef9739698831065fe034c8-200x200-jpg","_type":"reference"},"_type":"sanityImage"},"jobTitle":"CEO","name":"Avery Pennarun","socialLink":"https://twitter.com/apenwarr"}}],"title":"A stable platform for community projects","slug":{"current":"community-projects","_type":"slug"},"excerpt":null}],"heading":"Blog","textCard":{"_type":"textCard","options":{"subheadingColor":"subheading-black","headingFontColor":"black","headingFontSize":"80","subheadingMarginBottom":"20","contentFontSize":"b20","contentMarginBottom":"0","headingMarginBottom":"24","contentMaxWidth":510,"subheadingFontSize":"subheading","contentFontColor":"body-black","hasMobileTextAlignment":false,"highlightColor":"black","headingTag":"h2"},"richContent":[{"style":"normal","_key":"be9d879c92a0","markDefs":[{"_type":"link","href":"#blog-newsletter","_key":"29dc5d628858"},{"_type":"link","href":"https://tailscale.com/blog/index.xml","_key":"236e004fb1e7"},{"_key":"18af382634ca","_type":"link","href":"https://twitter.com/tailscale"}],"children":[{"_key":"4c5838a309f00","_type":"span","marks":[],"text":"A combination of our newsletter and other posts, where we talk about Tailscale, WireGuard®, two-factor auth, and other networking-related topics.\n"},{"_type":"span","marks":["mobileLineBreak"],"text":"Subscribe via ","_key":"08fd108669b2"},{"_type":"span","marks":["29dc5d628858","mobileLineBreak"],"text":"email","_key":"2e870b86e9f0"},{"_type":"span","marks":["mobileLineBreak"],"text":", ","_key":"3af21c2b06e3"},{"text":"RSS","_key":"76fe941a117d","_type":"span","marks":["236e004fb1e7","mobileLineBreak"]},{"_type":"span","marks":["mobileLineBreak"],"text":" or ","_key":"88fb05615717"},{"_type":"span","marks":["18af382634ca","mobileLineBreak"],"text":"follow us on Twitter","_key":"51da88c5a04b"},{"text":".","_key":"8ad6d6ba95f9","_type":"span","marks":["mobileLineBreak"]}],"_type":"block"}]}},"title":"Blog Index Page","featuredPosts":null}}],"title":"Blog","seo":{"seoCanonicalURL":"https://tailscale.com/blog","seoDescription":"Updates on innovations and the state of virtual private networks - globally, as well as Tailscale product and company news.","indexable":true,"seoTitle":"Blog | Tailscale"},"removeFooter":null,"headerStyle":"dark","footerStyle":"light","slug":{"_type":"slug","current":"blog"},"removeHeader":false},"global":{"header":{"button":{"buttonOptions":{"color":"black"},"_type":"button","link":{"title":"Get started - it's free!","url":"https://login.tailscale.com/start"}},"_rev":"LkeFT6GdaS5o81PVia9qTZ","_type":"header","links":[{"_key":"157b4ad1150d","title":"Download","url":"/download"},{"_key":"f00209e74f6b","title":"Log in","url":"https://login.tailscale.com/welcome"}],"title":"Production Header","_createdAt":"2023-10-06T12:21:23Z","_id":"7797109d-2dc4-4a75-b5a3-b1019c33212f","menu":[{"title":"Product","submenu":{"product":{"rightCol":{"nav":{"heading":"Explore","links":[{"title":"Integrations","link":"/integrations","_key":"c653da519dfb"},{"link":"/features","_key":"a878da5fa54c","title":"Features"},{"link":"/compare","_key":"adda698ed879","title":"Compare Tailscale"},{"link":"/community/community-projects","_key":"3341bd9805df","title":"Community Projects"},{"link":"/partnerships","_key":"b57369965809","title":"Partnerships"}]}},"leftCol":{"topNav":{"heading":"Meet Tailscale","links":[{"icon":{"_type":"sanityImage","alt":"icon"},"link":"/blog/how-tailscale-works/","_key":"5495d201056a","title":"How it works"},{"_key":"dc9cde7ff83cb94cfc98ff29bdcd0997","title":"Why Tailscale","icon":{"_type":"sanityImage","alt":"icon"},"link":"/why-tailscale"},{"icon":{"_type":"sanityImage","alt":"WireGuard®"},"link":"/wireguard-vpn","_key":"5d88e3ffcc6b","title":"WireGuard® for Enterprises"},{"icon":{"_type":"sanityImage","alt":"Bring Tailscale to Work"},"link":"/bring-tailscale-to-work","_key":"435de37ddd5f","title":"Bring Tailscale to Work"}]}}},"submenuType":"product"},"hasSubmenu":true,"_key":"95381f81d527"},{"submenu":{"product":{"rightCol":{"nav":{"heading":"By role","links":[{"link":"/solutions/devops","_key":"502a00f49baf","title":"DevOps"},{"link":"/solutions/it","_key":"0fe4c0d6fa83","title":"IT"},{"title":"Security","link":"/solutions/security","_key":"026f30b876a7"}]}},"leftCol":{"topNav":{"links":[{"_key":"193eaaa0cef8","title":"Remote Access","link":"/use-cases/remote-access"},{"link":"/use-cases/site-to-site-networking","_key":"05cadfcf3e65b04708a9d88060f68f9e","title":"Site-to-site Networking"},{"link":"/use-cases/multi-cloud-networking","_key":"fbd28dffeac0","title":"Multi-Cloud Networking"},{"link":"/use-cases/kubernetes","_key":"da202f1d966a","title":"Kubernetes Networking"},{"link":"/use-cases/iot","_key":"8c78e633c6b1","title":"Edge \u0026 IoT Deployments"},{"title":"Zero Trust Networking","link":"/use-cases/zero-trust-networking","_key":"6a363d694952"},{"title":"AI Workloads","link":"/use-cases/ai","_key":"9c49b97d6b06"},{"link":"/use-cases/secure-saas","_key":"2602b548bd52","title":"Secure SaaS"},{"link":"/use-cases/business-vpn","_key":"6fc65e9fe1c6","title":"Business VPN"},{"link":"/use-cases/homelab","_key":"d99d14013ab3","title":"Homelab"}],"heading":"By use-case"}}},"submenuType":"product"},"hasSubmenu":true,"_key":"a7062f1924df","title":"Solutions"},{"submenu":{"submenuType":"product"},"link":"/enterprise","hasSubmenu":false,"_key":"fd055b16290df04c6012d0d33c2fad13","title":"Enterprise"},{"submenu":{"product":{"leftCol":{"topNav":{"heading":"Nav heading here","links":[{"icon":{"_type":"sanityImage","alt":"Alt text ","asset":{"_type":"reference","_ref":"image-a06dc612b1e3e4f4df53a72030002600639a8738-300x120-png"}},"link":"https://tailscale.com/customers","description":"How Cribl Enables Secure Work From Anywhere with Tailscale","_key":"2d22491d8262","title":"Title here"}]}}},"resources":{"topNav":[{"heading":"Cribl","description":"How Cribl Enables Secure Work From Anywhere with Tailscale","_key":"61d0f0cb130e"},{"heading":"Cribl","description":"How Cribl Enables Secure Work From Anywhere with Tailscale","_key":"712684d509a6a6ea07ab9401bdb23f8f"},{"_key":"ceac3f234a3a6923a671af91772b7e8b","heading":"Cribl","description":"How Cribl Enables Secure Work From Anywhere with Tailscale"}]},"submenuType":"product"},"link":"/customers","hasSubmenu":false,"_key":"b595975539c7407a7ed4510edd549223","title":"Customers"},{"title":"Docs","submenu":{"submenuType":"product"},"link":"/kb/1017/install/","hasSubmenu":false,"_key":"f06fabeb084c"},{"link":"/blog","hasSubmenu":false,"_key":"f2537b6fa068","title":"Blog","submenu":{"submenuType":"product"}},{"link":"/pricing","hasSubmenu":false,"_key":"e1b7b44dc091","title":"Pricing","submenu":{"submenuType":"product"}}],"_updatedAt":"2025-03-25T14:00:19Z"},"footer":{"_createdAt":"2023-10-06T14:44:29Z","footerNav":[{"_key":"05f3fa61c972","heading":"Product","links":[{"title":"How it works","url":"/blog/how-tailscale-works/","_key":"30386cf08177"},{"url":"/pricing","_key":"45dec9531713","title":"Pricing"},{"_key":"e6f4d8daff21","title":"Integrations","url":"/integrations"},{"_key":"d4f7875a767f","title":"Features","url":"/features"},{"_key":"64846fcdaf3b","title":"Compare Tailscale","url":"/compare"}]},{"heading":"Use Cases","links":[{"url":"/use-cases/business-vpn","_key":"7b4858603fc7","title":"Business VPN"},{"url":"/use-cases/remote-access","_key":"06fbf46e9354","title":"Remote Access"},{"_key":"ab3e69241df2","title":"Site-to-Site Networking","url":"/use-cases/site-to-site-networking"},{"_key":"b79f544a8266","title":"Homelab","url":"/use-cases/homelab"},{"_key":"8660f39ec574","title":"Enterprise","url":"/enterprise"}],"_key":"7870d03d9802"},{"heading":"Resources","links":[{"url":"/blog","_key":"b5ad8866742c","title":"Blog"},{"_key":"21869f26f11b","title":"Events \u0026 Webinars","url":"/events-webinars"},{"_key":"c844ea072844","title":"Partnerships","url":"/partnerships"}],"_key":"2e262725243d"},{"heading":"Company","links":[{"_key":"8cc3fedb5b31","title":"Company","url":"/company"},{"_key":"e69d139c2c7c","title":"Careers","url":"/careers"},{"_key":"ad370d7ab2c1","title":"Press","url":"/press"}],"_key":"a1e16018d519"},{"heading":"Help \u0026 Support","links":[{"_key":"f7d6ef6a99c6","title":"Support","url":"/contact/support"},{"_key":"18077954da8f455140153a58c74e53ba","title":"Sales","url":"/contact/sales"},{"url":"/security","_key":"3b91a6bb3d6b","title":"Security"},{"_key":"9d3e837341e2","title":"Legal","url":"/legal"},{"_key":"a69304fe5b80","title":"Open Source","url":"/opensource"},{"_key":"a02943ca7fdd","title":"Changelog","url":"/changelog"}],"_key":"b25bd2c7203e"},{"heading":"Learn","links":[{"_key":"6c45141fcc65","title":"SSH keys","url":"/learn/generate-ssh-keys/"},{"_key":"86c070f995c4","title":"Docker SSH","url":"/learn/ssh-into-docker-container/"},{"_key":"19c70bbf9478","title":"DevSecOps","url":"/learn/devsecops/"},{"_key":"927093698579","title":"Multicloud","url":"/learn/multicloud/"},{"_key":"22e6d051e763","title":"NAT Traversal","url":"/blog/how-nat-traversal-works/"},{"_key":"4e51a8a4f0a7","title":"MagicDNS","url":"/blog/2021-09-private-dns-with-magicdns/"},{"_key":"f8f8893085b3","title":"PAM","url":"/learn/privileged-access-management/"},{"_key":"8775c2b1f419","title":"PoLP","url":"/learn/principle-of-least-privilege/"},{"_key":"e7fdb19bd312","title":"All articles","url":"/learn"}],"_key":"0bdaf34fbe61"}],"_updatedAt":"2024-11-01T16:35:35Z","copyrightContent":"Tailscale Inc. All rights reserved. Tailscale is a registered trademark of Tailscale Inc.","_rev":"IlIq0JCGGmrvSiDdugDJgM","_type":"footer","legalNav":[{"_key":"b3b1d8dfddea","title":"Terms of Service","url":"/terms"},{"title":"Privacy Policy","url":"/privacy-policy","_key":"3e22b7802445"}],"_id":"422b4abf-6e3f-4213-ab94-a03dd444be3d","title":"Production Footer","cta":{"secondaryCta":{"heading":"Schedule a demo","link":{"title":"Contact sales","url":"/contact/sales"}},"heading":"Try Tailscale for |free|","textCard":{"heading":"Try Tailscale for |free|","_type":"textCard","options":{"contentFontColor":"white","headingMaxWidth":292,"hasMobileTextAlignment":false,"highlightColor":"blue-3","headingMarginBottom":"30","headingFontSize":"h3","headingFontColor":"white","sectionAlignment":"left"},"links":[{"button":{"buttonOptions":{"color":"white"},"_type":"button","link":{"title":"Get started","url":"https://login.tailscale.com/start"}},"_key":"dc04d805f7e0","type":"button","textLink":{"_type":"textLink","textLinkOptions":{"underlineColor":"black","arrowColor":"black"}}}]},"asset":{"type":"image","image":{"_type":"sanityImage","alt":"cta phone","asset":{"_ref":"image-b715b4ca5e2577da60f0d529a4a9bc2ad4cadf59-362x567-svg","_type":"reference"}},"_type":"asset"},"darkLogoGrid":[{"logo":{"_type":"sanityImage","alt":"mercury","asset":{"_ref":"image-a1fb7441ec6ea5254d0f14119dbe0abf5c822f9f-199x81-svg","_type":"reference"}},"_key":"fb360d1bc6c4"},{"logo":{"_type":"sanityImage","alt":"instacart","asset":{"_ref":"image-62410277e3cd5df52c9b59e787ae52a5a2699580-199x81-svg","_type":"reference"}},"_key":"a24139987731"},{"logo":{"_type":"sanityImage","alt":"Retool","asset":{"_ref":"image-80654c9d97220caec3e35ba29d3e7439a03d482a-199x82-svg","_type":"reference"}},"_key":"0fa57e2eebee"},{"_key":"b47251ca28bd","logo":{"_type":"sanityImage","alt":"duolingo","asset":{"_ref":"image-9b799915a326b1b78decc95e6ce251b87111f2bf-199x81-svg","_type":"reference"}}},{"_key":"7bf06e2e5305","logo":{"alt":"Hugging Face","asset":{"_ref":"image-b36780abd0594e34b52e74176a6b61811bbed602-199x82-svg","_type":"reference"},"_type":"sanityImage"}}],"ctaButton":{"buttonOptions":{"color":"white"},"_type":"button","link":{"title":"Get started","url":"/get-started"}},"logoGrid":[{"_key":"a3a9b2012378","logo":{"_type":"sanityImage","alt":"mercury","asset":{"_ref":"image-459a7a8492910eeb22f22bb8d4c0f864b0bae25f-199x81-svg","_type":"reference"}}},{"logo":{"asset":{"_ref":"image-7d127f4bb62a408b056328349f291857df6251b3-199x81-svg","_type":"reference"},"_type":"sanityImage","alt":"instacrt"},"_key":"993b75d39e13"},{"logo":{"_type":"sanityImage","alt":"Retool","asset":{"_ref":"image-e9579b00087d7896e9cb750f4eb39f2c11ed11b8-199x82-svg","_type":"reference"}},"_key":"8449f10eb5c7"},{"logo":{"_type":"sanityImage","alt":"duolingo","asset":{"_ref":"image-7958bf3d43a30e661ca74cf0510f250d9b99ecef-199x81-svg","_type":"reference"}},"_key":"3ab303288a39"},{"_key":"5e630c781c8a","logo":{"_type":"sanityImage","alt":"Hugging Face","asset":{"_ref":"image-68e2e5024898bcd6f6d142e0306dc7564787e1d7-199x82-svg","_type":"reference"}}}]},"legalContent":"WireGuard is a registered trademark of Jason A. Donenfeld."},"newsBar":null,"redirects":[{"destination":"/wireguard-vpn","source":"/wireguard","_key":"8b0a3ebcf822"}],"seo":{"ogImage":{"_type":"image","asset":{"_ref":"image-8e0455b2d9b33c6151016afdf2ea81d7623c2f04-1200x628-png","_type":"reference"}}},"announcement":{"link":{"label":"Sign up now","url":"https://tailscale.com/events-webinars/zero-trust-series-part-two"},"text":"Upcoming Webinar: Least Privileged Access"},"socials":null,"legal":null,"globalOptions":null},"post":null,"customerStory":null,"comparison":null,"eventsWebinars":null,"learn":null,"securityPolicy":null}},"__N_SSG":true},"page":"/blog","query":{},"buildId":"vMenGf5kagsQzFAbLyaPA","isFallback":false,"isExperimentalCompile":false,"gsp":true,"scriptLoader":[]}</script></body></html>