CINXE.COM
Tailscale CLI · Tailscale Docs
<!DOCTYPE html><html lang="en" class="__className_943d4e"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="preload" href="/_next/static/media/d3470cfc68a51edd-s.p.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="stylesheet" href="/_next/static/css/425118351a398cbb.css" data-precedence="next"/><link rel="stylesheet" href="/_next/static/css/031b0c3bd76b5853.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/webpack-a0d1b0095e1f0be6.js"/><script src="/_next/static/chunks/fd9d1056-e2c756ac8808f8eb.js" async=""></script><script src="/_next/static/chunks/2117-45cfe96257eb3a9a.js" async=""></script><script src="/_next/static/chunks/main-app-93aa01555515a494.js" async=""></script><script src="/_next/static/chunks/2972-04611c7b37409cb4.js" async=""></script><script src="/_next/static/chunks/app/kb/%5B%5B...params%5D%5D/error-7d929094baa370f5.js" async=""></script><script src="/_next/static/chunks/8003-0833c71e6161cb44.js" async=""></script><script src="/_next/static/chunks/app/layout-54c1176bfefb7426.js" async=""></script><script src="/_next/static/chunks/4302-c45bec305c844d62.js" async=""></script><script src="/_next/static/chunks/8650-0409a4c5d9e604e6.js" async=""></script><script src="/_next/static/chunks/919-d3f1be5b16f843c6.js" async=""></script><script src="/_next/static/chunks/app/kb/layout-df5f9e4be68e4c7e.js" async=""></script><script src="/_next/static/chunks/9919-c01a1ac3548cb18e.js" async=""></script><script src="/_next/static/chunks/app/kb/%5B%5B...params%5D%5D/page-a4e571fc2bfbc86f.js" async=""></script><link rel="preload" href="https://widget.kapa.ai/kapa-widget.bundle.js" as="script"/><meta name="theme-color" content="#fff"/><title>Tailscale CLI · Tailscale Docs</title><meta name="description" content="Manage and troubleshoot your tailnet with the Tailscale command-line interface (Tailscale CLI)."/><link rel="canonical" href="https://tailscale.com/kb/1080/cli"/><meta property="og:title" content="Tailscale CLI · Tailscale Docs"/><meta property="og:description" content="Manage and troubleshoot your tailnet with the Tailscale command-line interface (Tailscale CLI)."/><meta property="og:url" content="https://tailscale.com/kb/1080/cli"/><meta property="og:site_name" content="Tailscale"/><meta property="og:image" content="https://tailscale.com/files/images/og-image.png"/><meta property="og:type" content="article"/><meta name="twitter:card" content="summary_large_image"/><meta name="twitter:creator" content="@tailscale"/><meta name="twitter:title" content="Tailscale CLI"/><meta name="twitter:description" content="Manage and troubleshoot your tailnet with the Tailscale command-line interface (Tailscale CLI)."/><meta name="twitter:image" content="https://tailscale.com/files/images/og-image.png"/><link rel="icon" href="/favicon.png" type="image/png"/><link rel="icon" href="/favicon.svg" type="image/svg+xml"/><meta name="next-size-adjust"/><script src="/_next/static/chunks/polyfills-42372ed130431b0a.js" noModule=""></script></head><body><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="#242424"></ellipse><ellipse cx="9.79094" cy="10.1796" rx="2.44719" ry="2.44128" fill="#242424"></ellipse><ellipse opacity="0.2" cx="2.44719" cy="17.5077" rx="2.44719" ry="2.44128" fill="#242424"></ellipse><ellipse opacity="0.2" cx="17.1269" cy="17.5077" rx="2.44719" ry="2.44128" fill="#242424"></ellipse><ellipse cx="9.79094" cy="17.5077" rx="2.44719" ry="2.44128" fill="#242424"></ellipse><ellipse cx="17.1269" cy="10.1796" rx="2.44719" ry="2.44128" fill="#242424"></ellipse><ellipse opacity="0.2" cx="2.44719" cy="2.85924" rx="2.44719" ry="2.44128" fill="#242424"></ellipse><ellipse opacity="0.2" cx="9.79094" cy="2.85924" rx="2.44719" ry="2.44128" fill="#242424"></ellipse><ellipse opacity="0.2" cx="17.1269" cy="2.85924" rx="2.44719" ry="2.44128" fill="#242424"></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="#242424"></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="#242424"></path><path d="M49.3069 5.39173H52.4677V2.5625H49.3069V5.39173ZM49.3718 18.2421H52.4028V6.83875H49.3718V18.2421Z" fill="#242424"></path><path d="M54.6109 18.2421H57.6418V2.90805H54.6109V18.2421Z" fill="#242424"></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="#242424"></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="#242424"></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="#242424"></path><path d="M93.3263 18.2421H96.3573V2.90805H93.3263V18.2421Z" fill="#242424"></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="#242424"></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 opacity-80 transition-colors duration-300 text-heading-black/80 hover:text-black/100" data-track="Link Clicked" data-track-properties="{"label": "Download"}" href="/download">Download</a><a class="t-14 font-medium opacity-80 transition-colors duration-300 text-heading-black/80 hover:text-black/100" 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 opacity-80 transition-colors duration-300 text-heading-black/80 hover:text-black/100" 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-black-4 hover:border-black-4 "><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-black-4" 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="#242424"></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-grey 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-black transition-transform duration-300 rotate-90 bg-black-4 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 lg:absolute lg:flex-row lg:gap-[50px] lg:border lg: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-[#706E6D] 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-[#F9F7F6] 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-[#F9F7F6] 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-[#F9F7F6] 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-[#F9F7F6] 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-[#706E6D] 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-[#F9F7F6] 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-[#F9F7F6] 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-[#F9F7F6] 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-[#F9F7F6] 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-[#F9F7F6] 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-grey 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-black transition-transform duration-300 rotate-90 bg-black-4 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 lg:absolute lg:flex-row lg:gap-[50px] lg:border lg: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-[#706E6D] 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-[#F9F7F6] 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-[#F9F7F6] 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-[#F9F7F6] 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-[#F9F7F6] 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-[#F9F7F6] 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-[#F9F7F6] 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-[#F9F7F6] 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-[#F9F7F6] 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-[#F9F7F6] 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-[#F9F7F6] 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-[#706E6D] 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-[#F9F7F6] 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-[#F9F7F6] 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-[#F9F7F6] 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-grey 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-black transition-transform duration-300 -rotate-0 bg-grey-2"><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 lg:absolute lg:flex-row lg:gap-[50px] lg:border lg: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-grey 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-black transition-transform duration-300 -rotate-0 bg-grey-2"><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 lg:absolute lg:flex-row lg:gap-[50px] lg:border lg: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-[#706E6D] 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-[#F9F7F6] 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-grey 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-black transition-transform duration-300 -rotate-0 bg-grey-2"><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 lg:absolute lg:flex-row lg:gap-[50px] lg:border lg: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-grey 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-black transition-transform duration-300 -rotate-0 bg-grey-2"><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 lg:absolute lg:flex-row lg:gap-[50px] lg:border lg: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-grey 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-black transition-transform duration-300 -rotate-0 bg-grey-2"><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 lg:absolute lg:flex-row lg:gap-[50px] lg:border lg: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-grey 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-black transition-transform duration-300 -rotate-0 bg-grey-2"><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-grey 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-black transition-transform duration-300 -rotate-0 bg-grey-2"><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-black-4 hover:border-black-4 "><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-grey-3 border-grey-3 text-heading-black"><div>Login</div></div></a><div class="t-14 mx-auto mt-[55px] max-w-[264px] text-center text-black-4/60"></div><div class="mt-[35px] flex flex-wrap justify-center gap-[14px]"></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-1"><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-1"><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-1"><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-1"><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-black-4/60"> <!-- -->© <!-- -->2025<!-- --> </div></div><main class="scope-kb is-wide container"><div class="grid grid-cols-10 gap-x-8 pt-4 md:pt-8"><aside class="js-docHighlight col-span-10 md:col-span-3 md:row-span-2 xl:col-span-2"><div class="relative hidden h-full md:block"><div class="sticky top-[68px] -mt-2 px-1"><div class="absolute inset-x-0 h-4 w-full from-white top-0 bg-gradient-to-b"></div><ul class="flex max-h-[90vh] flex-col gap-1 overflow-y-auto pb-4 pt-2 text-sm"><li data-slug="start"><a class="rounded py-1 text-stone-800 hover:text-stone-900 mb-0.5 mt-2 block pl-2 font-semibold hover:bg-stone-100" href="/kb/1346/start">Start</a><ul class="flex flex-col gap-0.5"><li data-slug="install" class="flex flex-col gap-0.5"><a class="rounded py-1 text-stone-800 hover:text-stone-900 flex w-full items-start gap-1 pr-2 pl-4 hover:bg-stone-100" href="/kb/1017/install"><svg class="icon inline-block !h-[0.9em] !w-[0.9em] stroke-gray-500 invisible relative top-1" viewBox="0 0 24 24"><polyline points="9 18 15 12 9 6"></polyline></svg> <span>Quickstart</span></a></li><li data-slug="installation" class="flex flex-col gap-0.5"><a class="rounded py-1 text-stone-800 hover:text-stone-900 flex w-full items-start gap-1 pr-2 pl-4 hover:bg-stone-100" href="/kb/1347/installation"><svg class="icon inline-block !h-[0.9em] !w-[0.9em] stroke-gray-500 relative top-1" viewBox="0 0 24 24"><polyline points="9 18 15 12 9 6"></polyline></svg> <span>Install Tailscale</span></a></li><li data-slug="quick-guides" class="flex flex-col gap-0.5"><a class="rounded py-1 text-stone-800 hover:text-stone-900 flex w-full items-start gap-1 pr-2 pl-4 hover:bg-stone-100" href="/kb/1415/quick-guides"><svg class="icon inline-block !h-[0.9em] !w-[0.9em] stroke-gray-500 relative top-1" viewBox="0 0 24 24"><polyline points="9 18 15 12 9 6"></polyline></svg> <span>Quick guides</span></a></li><li data-slug="sso-providers" class="flex flex-col gap-0.5"><a class="rounded py-1 text-stone-800 hover:text-stone-900 flex w-full items-start gap-1 pr-2 pl-4 hover:bg-stone-100" href="/kb/1013/sso-providers"><svg class="icon inline-block !h-[0.9em] !w-[0.9em] stroke-gray-500 relative top-1" viewBox="0 0 24 24"><polyline points="9 18 15 12 9 6"></polyline></svg> <span>Set up an identity provider</span></a></li><li data-slug="what-is-tailscale" class="flex flex-col gap-0.5"><a class="rounded py-1 text-stone-800 hover:text-stone-900 flex w-full items-start gap-1 pr-2 pl-4 hover:bg-stone-100" href="/kb/1151/what-is-tailscale"><svg class="icon inline-block !h-[0.9em] !w-[0.9em] stroke-gray-500 invisible relative top-1" viewBox="0 0 24 24"><polyline points="9 18 15 12 9 6"></polyline></svg> <span>What is Tailscale?</span></a></li></ul></li><li data-slug="guides"><a class="rounded py-1 text-stone-800 hover:text-stone-900 mb-0.5 mt-2 block pl-2 font-semibold hover:bg-stone-100" href="/kb/1348/guides">How-to Guides</a><ul class="flex flex-col gap-0.5"><li class="flex flex-col gap-0.5"><a class="rounded py-1 text-stone-800 hover:text-stone-900 block pl-4 font-semibold hover:bg-stone-100" href="/kb/1350/manage">Manage Access</a><ul class="flex flex-col gap-0.5"><li data-slug="access-control" class="flex flex-col gap-0.5"><a class="rounded py-1 text-stone-800 hover:text-stone-900 flex w-full items-start gap-1 pr-2 pl-4 hover:bg-stone-100" href="/kb/1393/access-control"><svg class="icon inline-block !h-[0.9em] !w-[0.9em] stroke-gray-500 relative top-1" viewBox="0 0 24 24"><polyline points="9 18 15 12 9 6"></polyline></svg> <span>Manage access control</span></a></li><li data-slug="just-in-time-access" class="flex flex-col gap-0.5"><a class="rounded py-1 text-stone-800 hover:text-stone-900 flex w-full items-start gap-1 pr-2 pl-4 hover:bg-stone-100" href="/kb/1443/just-in-time-access"><svg class="icon inline-block !h-[0.9em] !w-[0.9em] stroke-gray-500 relative top-1" viewBox="0 0 24 24"><polyline points="9 18 15 12 9 6"></polyline></svg> <span>Manage just-in-time access</span></a></li><li data-slug="manage-devices" class="flex flex-col gap-0.5"><a class="rounded py-1 text-stone-800 hover:text-stone-900 flex w-full items-start gap-1 pr-2 pl-4 hover:bg-stone-100" href="/kb/1372/manage-devices"><svg class="icon inline-block !h-[0.9em] !w-[0.9em] stroke-gray-500 relative top-1" viewBox="0 0 24 24"><polyline points="9 18 15 12 9 6"></polyline></svg> <span>Manage devices</span></a></li><li data-slug="manage-users" class="flex flex-col gap-0.5"><a class="rounded py-1 text-stone-800 hover:text-stone-900 flex w-full items-start gap-1 pr-2 pl-4 hover:bg-stone-100" href="/kb/1373/manage-users"><svg class="icon inline-block !h-[0.9em] !w-[0.9em] stroke-gray-500 relative top-1" viewBox="0 0 24 24"><polyline points="9 18 15 12 9 6"></polyline></svg> <span>Manage users</span></a></li><li data-slug="tailnet-lock" class="flex flex-col gap-0.5"><a class="rounded py-1 text-stone-800 hover:text-stone-900 flex w-full items-start gap-1 pr-2 pl-4 hover:bg-stone-100" href="/kb/1226/tailnet-lock"><svg class="icon inline-block !h-[0.9em] !w-[0.9em] stroke-gray-500 invisible relative top-1" viewBox="0 0 24 24"><polyline points="9 18 15 12 9 6"></polyline></svg> <span>Tailnet lock</span></a></li></ul></li><li class="flex flex-col gap-0.5"><a class="rounded py-1 text-stone-800 hover:text-stone-900 block pl-4 font-semibold hover:bg-stone-100" href="/kb/1351/route">Route Traffic</a><ul class="flex flex-col gap-0.5"><li data-slug="subnets" class="flex flex-col gap-0.5"><a class="rounded py-1 text-stone-800 hover:text-stone-900 flex w-full items-start gap-1 pr-2 pl-4 hover:bg-stone-100" href="/kb/1019/subnets"><svg class="icon inline-block !h-[0.9em] !w-[0.9em] stroke-gray-500 relative top-1" viewBox="0 0 24 24"><polyline points="9 18 15 12 9 6"></polyline></svg> <span>Set up a subnet router</span></a></li><li data-slug="exit-nodes" class="flex flex-col gap-0.5"><a class="rounded py-1 text-stone-800 hover:text-stone-900 flex w-full items-start gap-1 pr-2 pl-4 hover:bg-stone-100" href="/kb/1103/exit-nodes"><svg class="icon inline-block !h-[0.9em] !w-[0.9em] stroke-gray-500 relative top-1" viewBox="0 0 24 24"><polyline points="9 18 15 12 9 6"></polyline></svg> <span>Set up an exit node</span></a></li><li data-slug="app-connectors" class="flex flex-col gap-0.5"><a class="rounded py-1 text-stone-800 hover:text-stone-900 flex w-full items-start gap-1 pr-2 pl-4 hover:bg-stone-100" href="/kb/1281/app-connectors"><svg class="icon inline-block !h-[0.9em] !w-[0.9em] stroke-gray-500 relative top-1" viewBox="0 0 24 24"><polyline points="9 18 15 12 9 6"></polyline></svg> <span>Set up an app connector</span></a></li><li data-slug="dns" class="flex flex-col gap-0.5"><a class="rounded py-1 text-stone-800 hover:text-stone-900 flex w-full items-start gap-1 pr-2 pl-4 hover:bg-stone-100" href="/kb/1054/dns"><svg class="icon inline-block !h-[0.9em] !w-[0.9em] stroke-gray-500 relative top-1" viewBox="0 0 24 24"><polyline points="9 18 15 12 9 6"></polyline></svg> <span>Use DNS</span></a></li><li data-slug="magicdns" class="flex flex-col gap-0.5"><a class="rounded py-1 text-stone-800 hover:text-stone-900 flex w-full items-start gap-1 pr-2 pl-4 hover:bg-stone-100" href="/kb/1081/magicdns"><svg class="icon inline-block !h-[0.9em] !w-[0.9em] stroke-gray-500 invisible relative top-1" viewBox="0 0 24 24"><polyline points="9 18 15 12 9 6"></polyline></svg> <span>Set up MagicDNS</span></a></li><li data-slug="high-availability" class="flex flex-col gap-0.5"><a class="rounded py-1 text-stone-800 hover:text-stone-900 flex w-full items-start gap-1 pr-2 pl-4 hover:bg-stone-100" href="/kb/1115/high-availability"><svg class="icon inline-block !h-[0.9em] !w-[0.9em] stroke-gray-500 invisible relative top-1" viewBox="0 0 24 24"><polyline points="9 18 15 12 9 6"></polyline></svg> <span>Set up high availability</span></a></li></ul></li><li class="flex flex-col gap-0.5"><a class="rounded py-1 text-stone-800 hover:text-stone-900 block pl-4 font-semibold hover:bg-stone-100" href="/kb/1352/servers">Set Up Servers</a><ul class="flex flex-col gap-0.5"><li data-slug="set-up-servers" class="flex flex-col gap-0.5"><a class="rounded py-1 text-stone-800 hover:text-stone-900 flex w-full items-start gap-1 pr-2 pl-4 hover:bg-stone-100" href="/kb/1245/set-up-servers"><svg class="icon inline-block !h-[0.9em] !w-[0.9em] stroke-gray-500 invisible relative top-1" viewBox="0 0 24 24"><polyline points="9 18 15 12 9 6"></polyline></svg> <span>Set up a server</span></a></li><li data-slug="tags" class="flex flex-col gap-0.5"><a class="rounded py-1 text-stone-800 hover:text-stone-900 flex w-full items-start gap-1 pr-2 pl-4 hover:bg-stone-100" href="/kb/1068/tags"><svg class="icon inline-block !h-[0.9em] !w-[0.9em] stroke-gray-500 invisible relative top-1" viewBox="0 0 24 24"><polyline points="9 18 15 12 9 6"></polyline></svg> <span>Use tags</span></a></li><li data-slug="cloud-init" class="flex flex-col gap-0.5"><a class="rounded py-1 text-stone-800 hover:text-stone-900 flex w-full items-start gap-1 pr-2 pl-4 hover:bg-stone-100" href="/kb/1293/cloud-init"><svg class="icon inline-block !h-[0.9em] !w-[0.9em] stroke-gray-500 invisible relative top-1" viewBox="0 0 24 24"><polyline points="9 18 15 12 9 6"></polyline></svg> <span>Install Tailscale with cloud-init</span></a></li><li data-slug="auth-keys" class="flex flex-col gap-0.5"><a class="rounded py-1 text-stone-800 hover:text-stone-900 flex w-full items-start gap-1 pr-2 pl-4 hover:bg-stone-100" href="/kb/1085/auth-keys"><svg class="icon inline-block !h-[0.9em] !w-[0.9em] stroke-gray-500 relative top-1" viewBox="0 0 24 24"><polyline points="9 18 15 12 9 6"></polyline></svg> <span>Use auth keys</span></a></li><li data-slug="tailscale-ssh" class="flex flex-col gap-0.5"><a class="rounded py-1 text-stone-800 hover:text-stone-900 flex w-full items-start gap-1 pr-2 pl-4 hover:bg-stone-100" href="/kb/1193/tailscale-ssh"><svg class="icon inline-block !h-[0.9em] !w-[0.9em] stroke-gray-500 relative top-1" viewBox="0 0 24 24"><polyline points="9 18 15 12 9 6"></polyline></svg> <span>Use Tailscale SSH</span></a></li><li data-slug="enabling-https" class="flex flex-col gap-0.5"><a class="rounded py-1 text-stone-800 hover:text-stone-900 flex w-full items-start gap-1 pr-2 pl-4 hover:bg-stone-100" href="/kb/1153/enabling-https"><svg class="icon inline-block !h-[0.9em] !w-[0.9em] stroke-gray-500 invisible relative top-1" viewBox="0 0 24 24"><polyline points="9 18 15 12 9 6"></polyline></svg> <span>Set up HTTPS certificates</span></a></li><li data-slug="ephemeral-nodes" class="flex flex-col gap-0.5"><a class="rounded py-1 text-stone-800 hover:text-stone-900 flex w-full items-start gap-1 pr-2 pl-4 hover:bg-stone-100" href="/kb/1111/ephemeral-nodes"><svg class="icon inline-block !h-[0.9em] !w-[0.9em] stroke-gray-500 invisible relative top-1" viewBox="0 0 24 24"><polyline points="9 18 15 12 9 6"></polyline></svg> <span>Run an ephemeral node</span></a></li><li data-slug="run-unattended" class="flex flex-col gap-0.5"><a class="rounded py-1 text-stone-800 hover:text-stone-900 flex w-full items-start gap-1 pr-2 pl-4 hover:bg-stone-100" href="/kb/1088/run-unattended"><svg class="icon inline-block !h-[0.9em] !w-[0.9em] stroke-gray-500 invisible relative top-1" viewBox="0 0 24 24"><polyline points="9 18 15 12 9 6"></polyline></svg> <span>Run unattended</span></a></li></ul></li><li class="flex flex-col gap-0.5"><a class="rounded py-1 text-stone-800 hover:text-stone-900 block pl-4 font-semibold hover:bg-stone-100" href="/kb/1354/share">Access & Share Services</a><ul class="flex flex-col gap-0.5"><li data-slug="services" class="flex flex-col gap-0.5"><a class="rounded py-1 text-stone-800 hover:text-stone-900 flex w-full items-start gap-1 pr-2 pl-4 hover:bg-stone-100" href="/kb/1100/services"><svg class="icon inline-block !h-[0.9em] !w-[0.9em] stroke-gray-500 invisible relative top-1" viewBox="0 0 24 24"><polyline points="9 18 15 12 9 6"></polyline></svg> <span>View services</span></a></li><li data-slug="sharing" class="flex flex-col gap-0.5"><a class="rounded py-1 text-stone-800 hover:text-stone-900 flex w-full items-start gap-1 pr-2 pl-4 hover:bg-stone-100" href="/kb/1084/sharing"><svg class="icon inline-block !h-[0.9em] !w-[0.9em] stroke-gray-500 invisible relative top-1" viewBox="0 0 24 24"><polyline points="9 18 15 12 9 6"></polyline></svg> <span>Share nodes</span></a></li><li data-slug="taildrop" class="flex flex-col gap-0.5"><a class="rounded py-1 text-stone-800 hover:text-stone-900 flex w-full items-start gap-1 pr-2 pl-4 hover:bg-stone-100" href="/kb/1106/taildrop"><svg class="icon inline-block !h-[0.9em] !w-[0.9em] stroke-gray-500 relative top-1" viewBox="0 0 24 24"><polyline points="9 18 15 12 9 6"></polyline></svg> <span>Use Taildrop</span></a></li></ul></li><li class="flex flex-col gap-0.5"><a class="rounded py-1 text-stone-800 hover:text-stone-900 block pl-4 font-semibold hover:bg-stone-100" href="/kb/1353/share-web-server">Share a web server</a><ul class="flex flex-col gap-0.5"><li data-slug="funnel" class="flex flex-col gap-0.5"><a class="rounded py-1 text-stone-800 hover:text-stone-900 flex w-full items-start gap-1 pr-2 pl-4 hover:bg-stone-100" href="/kb/1223/funnel"><svg class="icon inline-block !h-[0.9em] !w-[0.9em] stroke-gray-500 relative top-1" viewBox="0 0 24 24"><polyline points="9 18 15 12 9 6"></polyline></svg> <span>Tailscale Funnel</span></a></li><li data-slug="serve" class="flex flex-col gap-0.5"><a class="rounded py-1 text-stone-800 hover:text-stone-900 flex w-full items-start gap-1 pr-2 pl-4 hover:bg-stone-100" href="/kb/1312/serve"><svg class="icon inline-block !h-[0.9em] !w-[0.9em] stroke-gray-500 relative top-1" viewBox="0 0 24 24"><polyline points="9 18 15 12 9 6"></polyline></svg> <span>Tailscale Serve</span></a></li></ul></li><li class="flex flex-col gap-0.5"><a class="rounded py-1 text-stone-800 hover:text-stone-900 block pl-4 font-semibold hover:bg-stone-100" href="/kb/1355/solutions">Solutions</a><ul class="flex flex-col gap-0.5"><li data-slug="vscode-ipad" class="flex flex-col gap-0.5"><a class="rounded py-1 text-stone-800 hover:text-stone-900 flex w-full items-start gap-1 pr-2 pl-4 hover:bg-stone-100" href="/kb/1166/vscode-ipad"><svg class="icon inline-block !h-[0.9em] !w-[0.9em] stroke-gray-500 invisible relative top-1" viewBox="0 0 24 24"><polyline points="9 18 15 12 9 6"></polyline></svg> <span>Code from your iPad</span></a></li><li data-slug="secure-server-ubuntu" class="flex flex-col gap-0.5"><a class="rounded py-1 text-stone-800 hover:text-stone-900 flex w-full items-start gap-1 pr-2 pl-4 hover:bg-stone-100" href="/kb/1077/secure-server-ubuntu"><svg class="icon inline-block !h-[0.9em] !w-[0.9em] stroke-gray-500 invisible relative top-1" viewBox="0 0 24 24"><polyline points="9 18 15 12 9 6"></polyline></svg> <span>Lock down a server</span></a></li><li data-slug="pikvm" class="flex flex-col gap-0.5"><a class="rounded py-1 text-stone-800 hover:text-stone-900 flex w-full items-start gap-1 pr-2 pl-4 hover:bg-stone-100" href="/kb/1292/pikvm"><svg class="icon inline-block !h-[0.9em] !w-[0.9em] stroke-gray-500 invisible relative top-1" viewBox="0 0 24 24"><polyline points="9 18 15 12 9 6"></polyline></svg> <span>Access a PiKVM</span></a></li><li data-slug="pi-hole" class="flex flex-col gap-0.5"><a class="rounded py-1 text-stone-800 hover:text-stone-900 flex w-full items-start gap-1 pr-2 pl-4 hover:bg-stone-100" href="/kb/1114/pi-hole"><svg class="icon inline-block !h-[0.9em] !w-[0.9em] stroke-gray-500 invisible relative top-1" viewBox="0 0 24 24"><polyline points="9 18 15 12 9 6"></polyline></svg> <span>Run a Pi-hole</span></a></li><li data-slug="ip-blocklist-relays" class="flex flex-col gap-0.5"><a class="rounded py-1 text-stone-800 hover:text-stone-900 flex w-full items-start gap-1 pr-2 pl-4 hover:bg-stone-100" href="/kb/1059/ip-blocklist-relays"><svg class="icon inline-block !h-[0.9em] !w-[0.9em] stroke-gray-500 invisible relative top-1" viewBox="0 0 24 24"><polyline points="9 18 15 12 9 6"></polyline></svg> <span>Secure external services</span></a></li><li data-slug="just-in-time-access" class="flex flex-col gap-0.5"><a class="rounded py-1 text-stone-800 hover:text-stone-900 flex w-full items-start gap-1 pr-2 pl-4 hover:bg-stone-100" href="/kb/1443/just-in-time-access"><svg class="icon inline-block !h-[0.9em] !w-[0.9em] stroke-gray-500 relative top-1" viewBox="0 0 24 24"><polyline points="9 18 15 12 9 6"></polyline></svg> <span>Just-in-time access</span></a></li><li data-slug="automations" class="flex flex-col gap-0.5"><a class="rounded py-1 text-stone-800 hover:text-stone-900 flex w-full items-start gap-1 pr-2 pl-4 hover:bg-stone-100" href="/kb/1430/automations"><svg class="icon inline-block !h-[0.9em] !w-[0.9em] stroke-gray-500 relative top-1" viewBox="0 0 24 24"><polyline points="9 18 15 12 9 6"></polyline></svg> <span>Automation</span></a></li></ul></li></ul></li><li data-slug="integrations"><a class="rounded py-1 text-stone-800 hover:text-stone-900 mb-0.5 mt-2 block pl-2 font-semibold hover:bg-stone-100" href="/kb/1356/integrations">Integrations</a><ul class="flex flex-col gap-0.5"><li data-slug="cloud-server" class="flex flex-col gap-0.5"><a class="rounded py-1 text-stone-800 hover:text-stone-900 flex w-full items-start gap-1 pr-2 pl-4 hover:bg-stone-100" href="/kb/integrations/cloud-server"><svg class="icon inline-block !h-[0.9em] !w-[0.9em] stroke-gray-500 relative top-1" viewBox="0 0 24 24"><polyline points="9 18 15 12 9 6"></polyline></svg> <span>Cloud servers</span></a></li><li data-slug="containers-and-virtualization" class="flex flex-col gap-0.5"><a class="rounded py-1 text-stone-800 hover:text-stone-900 flex w-full items-start gap-1 pr-2 pl-4 hover:bg-stone-100" href="/kb/1358/containers-and-virtualization"><svg class="icon inline-block !h-[0.9em] !w-[0.9em] stroke-gray-500 relative top-1" viewBox="0 0 24 24"><polyline points="9 18 15 12 9 6"></polyline></svg> <span>Containers and virtualization</span></a></li><li data-slug="serverless" class="flex flex-col gap-0.5"><a class="rounded py-1 text-stone-800 hover:text-stone-900 flex w-full items-start gap-1 pr-2 pl-4 hover:bg-stone-100" href="/kb/1364/serverless"><svg class="icon inline-block !h-[0.9em] !w-[0.9em] stroke-gray-500 relative top-1" viewBox="0 0 24 24"><polyline points="9 18 15 12 9 6"></polyline></svg> <span>Serverless apps</span></a></li><li data-slug="database" class="flex flex-col gap-0.5"><a class="rounded py-1 text-stone-800 hover:text-stone-900 flex w-full items-start gap-1 pr-2 pl-4 hover:bg-stone-100" href="/kb/1359/database"><svg class="icon inline-block !h-[0.9em] !w-[0.9em] stroke-gray-500 relative top-1" viewBox="0 0 24 24"><polyline points="9 18 15 12 9 6"></polyline></svg> <span>Databases</span></a></li><li data-slug="remote-code" class="flex flex-col gap-0.5"><a class="rounded py-1 text-stone-800 hover:text-stone-900 flex w-full items-start gap-1 pr-2 pl-4 hover:bg-stone-100" href="/kb/1363/remote-code"><svg class="icon inline-block !h-[0.9em] !w-[0.9em] stroke-gray-500 relative top-1" viewBox="0 0 24 24"><polyline points="9 18 15 12 9 6"></polyline></svg> <span>Remote environments</span></a></li><li data-slug="developer-tools" class="flex flex-col gap-0.5"><a class="rounded py-1 text-stone-800 hover:text-stone-900 flex w-full items-start gap-1 pr-2 pl-4 hover:bg-stone-100" href="/kb/1360/developer-tools"><svg class="icon inline-block !h-[0.9em] !w-[0.9em] stroke-gray-500 relative top-1" viewBox="0 0 24 24"><polyline points="9 18 15 12 9 6"></polyline></svg> <span>Developer tools</span></a></li><li data-slug="firewall" class="flex flex-col gap-0.5"><a class="rounded py-1 text-stone-800 hover:text-stone-900 flex w-full items-start gap-1 pr-2 pl-4 hover:bg-stone-100" href="/kb/1361/firewall"><svg class="icon inline-block !h-[0.9em] !w-[0.9em] stroke-gray-500 relative top-1" viewBox="0 0 24 24"><polyline points="9 18 15 12 9 6"></polyline></svg> <span>Firewalls</span></a></li><li data-slug="webserver" class="flex flex-col gap-0.5"><a class="rounded py-1 text-stone-800 hover:text-stone-900 flex w-full items-start gap-1 pr-2 pl-4 hover:bg-stone-100" href="/kb/1365/webserver"><svg class="icon inline-block !h-[0.9em] !w-[0.9em] stroke-gray-500 relative top-1" viewBox="0 0 24 24"><polyline points="9 18 15 12 9 6"></polyline></svg> <span>Web servers</span></a></li><li data-slug="nas" class="flex flex-col gap-0.5"><a class="rounded py-1 text-stone-800 hover:text-stone-900 flex w-full items-start gap-1 pr-2 pl-4 hover:bg-stone-100" href="/kb/1307/nas"><svg class="icon inline-block !h-[0.9em] !w-[0.9em] stroke-gray-500 relative top-1" viewBox="0 0 24 24"><polyline points="9 18 15 12 9 6"></polyline></svg> <span>NAS</span></a></li></ul></li><li data-slug="faq"><a class="rounded py-1 text-stone-800 hover:text-stone-900 mb-0.5 mt-2 block pl-2 font-semibold hover:bg-stone-100" href="/kb/1366/faq">FAQ</a></li><li data-slug="log-events"><a class="rounded py-1 text-stone-800 hover:text-stone-900 mb-0.5 mt-2 block pl-2 font-semibold hover:bg-stone-100" href="/kb/1349/log-events">Logging, Streaming, and Events</a><ul class="flex flex-col gap-0.5"><li data-slug="log-mesh-traffic" class="flex flex-col gap-0.5"><a class="rounded py-1 text-stone-800 hover:text-stone-900 flex w-full items-start gap-1 pr-2 pl-4 hover:bg-stone-100" href="/kb/1011/log-mesh-traffic"><svg class="icon inline-block !h-[0.9em] !w-[0.9em] stroke-gray-500 invisible relative top-1" viewBox="0 0 24 24"><polyline points="9 18 15 12 9 6"></polyline></svg> <span>Logging overview</span></a></li><li data-slug="audit-logging" class="flex flex-col gap-0.5"><a class="rounded py-1 text-stone-800 hover:text-stone-900 flex w-full items-start gap-1 pr-2 pl-4 hover:bg-stone-100" href="/kb/1203/audit-logging"><svg class="icon inline-block !h-[0.9em] !w-[0.9em] stroke-gray-500 invisible relative top-1" viewBox="0 0 24 24"><polyline points="9 18 15 12 9 6"></polyline></svg> <span>Configuration audit logging</span></a></li><li data-slug="network-flow-logs" class="flex flex-col gap-0.5"><a class="rounded py-1 text-stone-800 hover:text-stone-900 flex w-full items-start gap-1 pr-2 pl-4 hover:bg-stone-100" href="/kb/1219/network-flow-logs"><svg class="icon inline-block !h-[0.9em] !w-[0.9em] stroke-gray-500 invisible relative top-1" viewBox="0 0 24 24"><polyline points="9 18 15 12 9 6"></polyline></svg> <span>Network flow logs</span></a></li><li data-slug="log-streaming" class="flex flex-col gap-0.5"><a class="rounded py-1 text-stone-800 hover:text-stone-900 flex w-full items-start gap-1 pr-2 pl-4 hover:bg-stone-100" href="/kb/1255/log-streaming"><svg class="icon inline-block !h-[0.9em] !w-[0.9em] stroke-gray-500 invisible relative top-1" viewBox="0 0 24 24"><polyline points="9 18 15 12 9 6"></polyline></svg> <span>Log streaming</span></a></li><li data-slug="tailscale-ssh-session-recording" class="flex flex-col gap-0.5"><a class="rounded py-1 text-stone-800 hover:text-stone-900 flex w-full items-start gap-1 pr-2 pl-4 hover:bg-stone-100" href="/kb/1246/tailscale-ssh-session-recording"><svg class="icon inline-block !h-[0.9em] !w-[0.9em] stroke-gray-500 relative top-1" viewBox="0 0 24 24"><polyline points="9 18 15 12 9 6"></polyline></svg> <span>SSH session recording</span></a></li><li data-slug="client-metrics" class="flex flex-col gap-0.5"><a class="rounded py-1 text-stone-800 hover:text-stone-900 flex w-full items-start gap-1 pr-2 pl-4 hover:bg-stone-100" href="/kb/1482/client-metrics"><svg class="icon inline-block !h-[0.9em] !w-[0.9em] stroke-gray-500 invisible relative top-1" viewBox="0 0 24 24"><polyline points="9 18 15 12 9 6"></polyline></svg> <span>Client metrics</span></a></li><li data-slug="webhooks" class="flex flex-col gap-0.5"><a class="rounded py-1 text-stone-800 hover:text-stone-900 flex w-full items-start gap-1 pr-2 pl-4 hover:bg-stone-100" href="/kb/1213/webhooks"><svg class="icon inline-block !h-[0.9em] !w-[0.9em] stroke-gray-500 invisible relative top-1" viewBox="0 0 24 24"><polyline points="9 18 15 12 9 6"></polyline></svg> <span>Webhooks</span></a></li></ul></li><li data-slug="manage-account"><a class="rounded py-1 text-stone-800 hover:text-stone-900 mb-0.5 mt-2 block pl-2 font-semibold hover:bg-stone-100" href="/kb/1431/manage-account">Manage Your Organization</a><ul class="flex flex-col gap-0.5"><li data-slug="contract-preferences" class="flex flex-col gap-0.5"><a class="rounded py-1 text-stone-800 hover:text-stone-900 flex w-full items-start gap-1 pr-2 pl-4 hover:bg-stone-100" href="/kb/1224/contract-preferences"><svg class="icon inline-block !h-[0.9em] !w-[0.9em] stroke-gray-500 invisible relative top-1" viewBox="0 0 24 24"><polyline points="9 18 15 12 9 6"></polyline></svg> <span>Contact preferences</span></a></li><li data-slug="pb-lp" class="flex flex-col gap-0.5"><a class="rounded py-1 text-stone-800 hover:text-stone-900 flex w-full items-start gap-1 pr-2 pl-4 hover:bg-stone-100" href="/kb/1375/pb-lp"><svg class="icon inline-block !h-[0.9em] !w-[0.9em] stroke-gray-500 relative top-1" viewBox="0 0 24 24"><polyline points="9 18 15 12 9 6"></polyline></svg> <span>Pricing and billing</span></a></li><li data-slug="tailnet-name" class="flex flex-col gap-0.5"><a class="rounded py-1 text-stone-800 hover:text-stone-900 flex w-full items-start gap-1 pr-2 pl-4 hover:bg-stone-100" href="/kb/1217/tailnet-name"><svg class="icon inline-block !h-[0.9em] !w-[0.9em] stroke-gray-500 invisible relative top-1" viewBox="0 0 24 24"><polyline points="9 18 15 12 9 6"></polyline></svg> <span>Tailnet name</span></a></li><li data-slug="domain-ownership" class="flex flex-col gap-0.5"><a class="rounded py-1 text-stone-800 hover:text-stone-900 flex w-full items-start gap-1 pr-2 pl-4 hover:bg-stone-100" href="/kb/1259/domain-ownership"><svg class="icon inline-block !h-[0.9em] !w-[0.9em] stroke-gray-500 invisible relative top-1" viewBox="0 0 24 24"><polyline points="9 18 15 12 9 6"></polyline></svg> <span>Domain ownership</span></a></li></ul></li><li data-slug="reference"><a class="rounded py-1 text-stone-800 hover:text-stone-900 mb-0.5 mt-2 block pl-2 font-semibold hover:bg-stone-100" href="/kb/1367/reference">Reference</a><ul class="flex flex-col gap-0.5"><li data-slug="acl-syntax" class="flex flex-col gap-0.5"><a class="rounded py-1 text-stone-800 hover:text-stone-900 flex w-full items-start gap-1 pr-2 pl-4 hover:bg-stone-100" href="/kb/1337/acl-syntax"><svg class="icon inline-block !h-[0.9em] !w-[0.9em] stroke-gray-500 relative top-1" viewBox="0 0 24 24"><polyline points="9 18 15 12 9 6"></polyline></svg> <span>ACL syntax</span></a></li><li data-slug="acl-samples" class="flex flex-col gap-0.5"><a class="rounded py-1 text-stone-800 hover:text-stone-900 flex w-full items-start gap-1 pr-2 pl-4 hover:bg-stone-100" href="/kb/1192/acl-samples"><svg class="icon inline-block !h-[0.9em] !w-[0.9em] stroke-gray-500 invisible relative top-1" viewBox="0 0 24 24"><polyline points="9 18 15 12 9 6"></polyline></svg> <span>ACL samples</span></a></li><li data-slug="grant-samples" class="flex flex-col gap-0.5"><a class="rounded py-1 text-stone-800 hover:text-stone-900 flex w-full items-start gap-1 pr-2 pl-4 hover:bg-stone-100" href="/kb/1458/grant-samples"><svg class="icon inline-block !h-[0.9em] !w-[0.9em] stroke-gray-500 invisible relative top-1" viewBox="0 0 24 24"><polyline points="9 18 15 12 9 6"></polyline></svg> <span>Grant samples</span></a></li><li data-slug="cli" class="flex flex-col gap-0.5"><a class="rounded py-1 text-stone-800 hover:text-stone-900 flex w-full items-start gap-1 pr-2 pl-4 bg-stone-100 hover:bg-stone-200" href="/kb/1080/cli"><svg class="icon inline-block !h-[0.9em] !w-[0.9em] stroke-gray-500 relative top-1" viewBox="0 0 24 24"><polyline points="6 9 12 15 18 9"></polyline></svg> <span>CLI</span></a><ul class="flex flex-col gap-0.5"><li data-slug="tailscale-funnel" class="flex flex-col gap-0.5"><a class="rounded py-1 text-stone-800 hover:text-stone-900 flex w-full items-start gap-1 pr-2 pl-6 hover:bg-stone-100" href="/kb/1311/tailscale-funnel"><svg class="icon inline-block !h-[0.9em] !w-[0.9em] stroke-gray-500 invisible relative top-1" viewBox="0 0 24 24"><polyline points="9 18 15 12 9 6"></polyline></svg> <span>tailscale funnel</span></a></li><li data-slug="tailscale-lock" class="flex flex-col gap-0.5"><a class="rounded py-1 text-stone-800 hover:text-stone-900 flex w-full items-start gap-1 pr-2 pl-6 hover:bg-stone-100" href="/kb/1243/tailscale-lock"><svg class="icon inline-block !h-[0.9em] !w-[0.9em] stroke-gray-500 invisible relative top-1" viewBox="0 0 24 24"><polyline points="9 18 15 12 9 6"></polyline></svg> <span>tailscale lock</span></a></li><li data-slug="tailscale-serve" class="flex flex-col gap-0.5"><a class="rounded py-1 text-stone-800 hover:text-stone-900 flex w-full items-start gap-1 pr-2 pl-6 hover:bg-stone-100" href="/kb/1242/tailscale-serve"><svg class="icon inline-block !h-[0.9em] !w-[0.9em] stroke-gray-500 invisible relative top-1" viewBox="0 0 24 24"><polyline points="9 18 15 12 9 6"></polyline></svg> <span>tailscale serve</span></a></li><li data-slug="tailscale-up" class="flex flex-col gap-0.5"><a class="rounded py-1 text-stone-800 hover:text-stone-900 flex w-full items-start gap-1 pr-2 pl-6 hover:bg-stone-100" href="/kb/1241/tailscale-up"><svg class="icon inline-block !h-[0.9em] !w-[0.9em] stroke-gray-500 invisible relative top-1" viewBox="0 0 24 24"><polyline points="9 18 15 12 9 6"></polyline></svg> <span>tailscale up</span></a></li><li data-slug="tailscaled" class="flex flex-col gap-0.5"><a class="rounded py-1 text-stone-800 hover:text-stone-900 flex w-full items-start gap-1 pr-2 pl-6 hover:bg-stone-100" href="/kb/1278/tailscaled"><svg class="icon inline-block !h-[0.9em] !w-[0.9em] stroke-gray-500 invisible relative top-1" viewBox="0 0 24 24"><polyline points="9 18 15 12 9 6"></polyline></svg> <span>tailscaled</span></a></li></ul></li><li data-slug="api" class="flex flex-col gap-0.5"><a class="rounded py-1 text-stone-800 hover:text-stone-900 flex w-full items-start gap-1 pr-2 pl-4 hover:bg-stone-100" href="/kb/1101/api"><svg class="icon inline-block !h-[0.9em] !w-[0.9em] stroke-gray-500 relative top-1" viewBox="0 0 24 24"><polyline points="9 18 15 12 9 6"></polyline></svg> <span>API</span></a></li><li data-slug="key-prefixes" class="flex flex-col gap-0.5"><a class="rounded py-1 text-stone-800 hover:text-stone-900 flex w-full items-start gap-1 pr-2 pl-4 hover:bg-stone-100" href="/kb/1277/key-prefixes"><svg class="icon inline-block !h-[0.9em] !w-[0.9em] stroke-gray-500 invisible relative top-1" viewBox="0 0 24 24"><polyline points="9 18 15 12 9 6"></polyline></svg> <span>Key prefixes</span></a></li><li data-slug="production-best-practices" class="flex flex-col gap-0.5"><a class="rounded py-1 text-stone-800 hover:text-stone-900 flex w-full items-start gap-1 pr-2 pl-4 hover:bg-stone-100" href="/kb/1300/production-best-practices"><svg class="icon inline-block !h-[0.9em] !w-[0.9em] stroke-gray-500 relative top-1" viewBox="0 0 24 24"><polyline points="9 18 15 12 9 6"></polyline></svg> <span>Production best practices</span></a></li><li data-slug="shared-responsibility" class="flex flex-col gap-0.5"><a class="rounded py-1 text-stone-800 hover:text-stone-900 flex w-full items-start gap-1 pr-2 pl-4 hover:bg-stone-100" href="/kb/1212/shared-responsibility"><svg class="icon inline-block !h-[0.9em] !w-[0.9em] stroke-gray-500 invisible relative top-1" viewBox="0 0 24 24"><polyline points="9 18 15 12 9 6"></polyline></svg> <span>Shared responsibility</span></a></li><li data-slug="tech-overviews" class="flex flex-col gap-0.5"><a class="rounded py-1 text-stone-800 hover:text-stone-900 flex w-full items-start gap-1 pr-2 pl-4 hover:bg-stone-100" href="/kb/1376/tech-overviews"><svg class="icon inline-block !h-[0.9em] !w-[0.9em] stroke-gray-500 relative top-1" viewBox="0 0 24 24"><polyline points="9 18 15 12 9 6"></polyline></svg> <span>Technical overviews</span></a></li><li data-slug="terminology-and-concepts" class="flex flex-col gap-0.5"><a class="rounded py-1 text-stone-800 hover:text-stone-900 flex w-full items-start gap-1 pr-2 pl-4 hover:bg-stone-100" href="/kb/1155/terminology-and-concepts"><svg class="icon inline-block !h-[0.9em] !w-[0.9em] stroke-gray-500 invisible relative top-1" viewBox="0 0 24 24"><polyline points="9 18 15 12 9 6"></polyline></svg> <span>Terminology and concepts</span></a></li><li class="flex flex-col gap-0.5"><a class="rounded py-1 text-stone-800 hover:text-stone-900 flex w-full items-start gap-1 pr-2 pl-4 hover:bg-stone-100" href="https://github.com/tailscale/tailscale"><svg class="icon inline-block !h-[0.9em] !w-[0.9em] stroke-gray-500 invisible relative top-1" viewBox="0 0 24 24"><polyline points="9 18 15 12 9 6"></polyline></svg> <span>GitHub ↗</span></a></li></ul></li><li data-slug="get-support"><a class="rounded py-1 text-stone-800 hover:text-stone-900 mb-0.5 mt-2 block pl-2 font-semibold hover:bg-stone-100" href="/kb/1432/get-support">Get Support</a><ul class="flex flex-col gap-0.5"><li data-slug="troubleshooting" class="flex flex-col gap-0.5"><a class="rounded py-1 text-stone-800 hover:text-stone-900 flex w-full items-start gap-1 pr-2 pl-4 hover:bg-stone-100" href="/kb/1023/troubleshooting"><svg class="icon inline-block !h-[0.9em] !w-[0.9em] stroke-gray-500 relative top-1" viewBox="0 0 24 24"><polyline points="9 18 15 12 9 6"></polyline></svg> <span>Troubleshooting</span></a></li><li data-slug="support-options" class="flex flex-col gap-0.5"><a class="rounded py-1 text-stone-800 hover:text-stone-900 flex w-full items-start gap-1 pr-2 pl-4 hover:bg-stone-100" href="/kb/1250/support-options"><svg class="icon inline-block !h-[0.9em] !w-[0.9em] stroke-gray-500 invisible relative top-1" viewBox="0 0 24 24"><polyline points="9 18 15 12 9 6"></polyline></svg> <span>Support options</span></a></li><li class="flex flex-col gap-0.5"><a class="rounded py-1 text-stone-800 hover:text-stone-900 flex w-full items-start gap-1 pr-2 pl-4 hover:bg-stone-100" href="/contact/support"><svg class="icon inline-block !h-[0.9em] !w-[0.9em] stroke-gray-500 invisible relative top-1" viewBox="0 0 24 24"><polyline points="9 18 15 12 9 6"></polyline></svg> <span>Contact support ↗</span></a></li><li data-slug="bug-report" class="flex flex-col gap-0.5"><a class="rounded py-1 text-stone-800 hover:text-stone-900 flex w-full items-start gap-1 pr-2 pl-4 hover:bg-stone-100" href="/kb/1227/bug-report"><svg class="icon inline-block !h-[0.9em] !w-[0.9em] stroke-gray-500 invisible relative top-1" viewBox="0 0 24 24"><polyline points="9 18 15 12 9 6"></polyline></svg> <span>Generate a bug report</span></a></li></ul></li><li data-slug="resources"><a class="rounded py-1 text-stone-800 hover:text-stone-900 mb-0.5 mt-2 block pl-2 font-semibold hover:bg-stone-100" href="/kb/1368/resources">Resources</a><ul class="flex flex-col gap-0.5"><li class="flex flex-col gap-0.5"><a class="rounded py-1 text-stone-800 hover:text-stone-900 flex w-full items-start gap-1 pr-2 pl-4 hover:bg-stone-100" href="/changelog"><svg class="icon inline-block !h-[0.9em] !w-[0.9em] stroke-gray-500 invisible relative top-1" viewBox="0 0 24 24"><polyline points="9 18 15 12 9 6"></polyline></svg> <span>Changelog ↗</span></a></li><li class="flex flex-col gap-0.5"><a class="rounded py-1 text-stone-800 hover:text-stone-900 flex w-full items-start gap-1 pr-2 pl-4 hover:bg-stone-100" href="/compare"><svg class="icon inline-block !h-[0.9em] !w-[0.9em] stroke-gray-500 invisible relative top-1" viewBox="0 0 24 24"><polyline points="9 18 15 12 9 6"></polyline></svg> <span>Comparisons ↗</span></a></li><li data-slug="release-stages" class="flex flex-col gap-0.5"><a class="rounded py-1 text-stone-800 hover:text-stone-900 flex w-full items-start gap-1 pr-2 pl-4 hover:bg-stone-100" href="/kb/1167/release-stages"><svg class="icon inline-block !h-[0.9em] !w-[0.9em] stroke-gray-500 invisible relative top-1" viewBox="0 0 24 24"><polyline points="9 18 15 12 9 6"></polyline></svg> <span>Release stages</span></a></li><li class="flex flex-col gap-0.5"><a class="rounded py-1 text-stone-800 hover:text-stone-900 flex w-full items-start gap-1 pr-2 pl-4 hover:bg-stone-100" href="/security"><svg class="icon inline-block !h-[0.9em] !w-[0.9em] stroke-gray-500 invisible relative top-1" viewBox="0 0 24 24"><polyline points="9 18 15 12 9 6"></polyline></svg> <span>Security ↗</span></a></li><li data-slug="community-projects" class="flex flex-col gap-0.5"><a class="rounded py-1 text-stone-800 hover:text-stone-900 flex w-full items-start gap-1 pr-2 pl-4 hover:bg-stone-100" href="/kb/1531/community-projects"><svg class="icon inline-block !h-[0.9em] !w-[0.9em] stroke-gray-500 invisible relative top-1" viewBox="0 0 24 24"><polyline points="9 18 15 12 9 6"></polyline></svg> <span>Tailscale Community Projects</span></a></li><li data-slug="versions" class="flex flex-col gap-0.5"><a class="rounded py-1 text-stone-800 hover:text-stone-900 flex w-full items-start gap-1 pr-2 pl-4 hover:bg-stone-100" href="/kb/1168/versions"><svg class="icon inline-block !h-[0.9em] !w-[0.9em] stroke-gray-500 relative top-1" viewBox="0 0 24 24"><polyline points="9 18 15 12 9 6"></polyline></svg> <span>Versions</span></a></li><li data-slug="use-cases" class="flex flex-col gap-0.5"><a class="rounded py-1 text-stone-800 hover:text-stone-900 flex w-full items-start gap-1 pr-2 pl-4 hover:bg-stone-100" href="/kb/1377/use-cases"><svg class="icon inline-block !h-[0.9em] !w-[0.9em] stroke-gray-500 invisible relative top-1" viewBox="0 0 24 24"><polyline points="9 18 15 12 9 6"></polyline></svg> <span>Use cases</span></a></li><li data-slug="invite-only-feature" class="flex flex-col gap-0.5"><a class="rounded py-1 text-stone-800 hover:text-stone-900 flex w-full items-start gap-1 pr-2 pl-4 hover:bg-stone-100" href="/kb/1222/invite-only-feature"><svg class="icon inline-block !h-[0.9em] !w-[0.9em] stroke-gray-500 invisible relative top-1" viewBox="0 0 24 24"><polyline points="9 18 15 12 9 6"></polyline></svg> <span>Invite only features</span></a></li></ul></li></ul><div class="absolute inset-x-0 h-4 w-full from-white bottom-0 bg-gradient-to-t"></div></div></div><div class="relative pb-6 md:hidden"><div class="flex items-center gap-4"><button type="button" class="text-gray-600 hover:text-gray-800" aria-label="Open docs navigation" aria-expanded="false" aria-controls="drawer"><svg class="icon block stroke-gray-800 stroke-2"><use href="/files/images/marketing/icons.svg#list"></use></svg></button><script type="application/ld+json">{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Docs","item":"/kb"},{"@type":"ListItem","position":2,"name":"Reference","item":"/kb/1367/reference"},{"@type":"ListItem","position":3,"name":"CLI","item":"/kb/1080/cli"}]}</script><nav class="flex min-w-0 items-center gap-2 whitespace-nowrap text-sm font-medium"><a class="transition-color text-gray-600 hover:text-gray-800" href="/kb">Docs</a><span class="select-none text-gray-500">›</span><a class="transition-color text-gray-600 hover:text-gray-800" href="/kb/1367/reference">Reference</a><span class="select-none text-gray-500">›</span><span class="text-gray-800">CLI</span></nav></div><div id="drawer" role="dialog" aria-labelledby="dialog-label" class="left-0 top-0 z-[101] flex h-screen flex-col gap-8 bg-white p-4 shadow-md hidden"><div class="flex items-center justify-between"><h3 id="dialog-label" class="p-2 text-xl font-semibold">Documentation</h3><button type="button" class="text-gray-600 hover:text-gray-800" data-docs-menu="toggle" aria-expanded="false" aria-controls="drawer" aria-label="Close docs navigation"><svg class="icon block h-11 w-11 p-2"><use href="/files/images/marketing/icons.svg#x"></use></svg></button></div><div class="sticky top-[68px] -mt-2 px-1"><div class="absolute inset-x-0 h-4 w-full from-white top-0 bg-gradient-to-b"></div><ul class="flex max-h-[90vh] flex-col gap-1 overflow-y-auto pb-4 pt-2 text-sm"><li data-slug="start"><a class="rounded py-1 text-stone-800 hover:text-stone-900 mb-0.5 mt-2 block pl-2 font-semibold hover:bg-stone-100" href="/kb/1346/start">Start</a><ul class="flex flex-col gap-0.5"><li data-slug="install" class="flex flex-col gap-0.5"><a class="rounded py-1 text-stone-800 hover:text-stone-900 flex w-full items-start gap-1 pr-2 pl-4 hover:bg-stone-100" href="/kb/1017/install"><svg class="icon inline-block !h-[0.9em] !w-[0.9em] stroke-gray-500 invisible relative top-1" viewBox="0 0 24 24"><polyline points="9 18 15 12 9 6"></polyline></svg> <span>Quickstart</span></a></li><li data-slug="installation" class="flex flex-col gap-0.5"><a class="rounded py-1 text-stone-800 hover:text-stone-900 flex w-full items-start gap-1 pr-2 pl-4 hover:bg-stone-100" href="/kb/1347/installation"><svg class="icon inline-block !h-[0.9em] !w-[0.9em] stroke-gray-500 relative top-1" viewBox="0 0 24 24"><polyline points="9 18 15 12 9 6"></polyline></svg> <span>Install Tailscale</span></a></li><li data-slug="quick-guides" class="flex flex-col gap-0.5"><a class="rounded py-1 text-stone-800 hover:text-stone-900 flex w-full items-start gap-1 pr-2 pl-4 hover:bg-stone-100" href="/kb/1415/quick-guides"><svg class="icon inline-block !h-[0.9em] !w-[0.9em] stroke-gray-500 relative top-1" viewBox="0 0 24 24"><polyline points="9 18 15 12 9 6"></polyline></svg> <span>Quick guides</span></a></li><li data-slug="sso-providers" class="flex flex-col gap-0.5"><a class="rounded py-1 text-stone-800 hover:text-stone-900 flex w-full items-start gap-1 pr-2 pl-4 hover:bg-stone-100" href="/kb/1013/sso-providers"><svg class="icon inline-block !h-[0.9em] !w-[0.9em] stroke-gray-500 relative top-1" viewBox="0 0 24 24"><polyline points="9 18 15 12 9 6"></polyline></svg> <span>Set up an identity provider</span></a></li><li data-slug="what-is-tailscale" class="flex flex-col gap-0.5"><a class="rounded py-1 text-stone-800 hover:text-stone-900 flex w-full items-start gap-1 pr-2 pl-4 hover:bg-stone-100" href="/kb/1151/what-is-tailscale"><svg class="icon inline-block !h-[0.9em] !w-[0.9em] stroke-gray-500 invisible relative top-1" viewBox="0 0 24 24"><polyline points="9 18 15 12 9 6"></polyline></svg> <span>What is Tailscale?</span></a></li></ul></li><li data-slug="guides"><a class="rounded py-1 text-stone-800 hover:text-stone-900 mb-0.5 mt-2 block pl-2 font-semibold hover:bg-stone-100" href="/kb/1348/guides">How-to Guides</a><ul class="flex flex-col gap-0.5"><li class="flex flex-col gap-0.5"><a class="rounded py-1 text-stone-800 hover:text-stone-900 block pl-4 font-semibold hover:bg-stone-100" href="/kb/1350/manage">Manage Access</a><ul class="flex flex-col gap-0.5"><li data-slug="access-control" class="flex flex-col gap-0.5"><a class="rounded py-1 text-stone-800 hover:text-stone-900 flex w-full items-start gap-1 pr-2 pl-4 hover:bg-stone-100" href="/kb/1393/access-control"><svg class="icon inline-block !h-[0.9em] !w-[0.9em] stroke-gray-500 relative top-1" viewBox="0 0 24 24"><polyline points="9 18 15 12 9 6"></polyline></svg> <span>Manage access control</span></a></li><li data-slug="just-in-time-access" class="flex flex-col gap-0.5"><a class="rounded py-1 text-stone-800 hover:text-stone-900 flex w-full items-start gap-1 pr-2 pl-4 hover:bg-stone-100" href="/kb/1443/just-in-time-access"><svg class="icon inline-block !h-[0.9em] !w-[0.9em] stroke-gray-500 relative top-1" viewBox="0 0 24 24"><polyline points="9 18 15 12 9 6"></polyline></svg> <span>Manage just-in-time access</span></a></li><li data-slug="manage-devices" class="flex flex-col gap-0.5"><a class="rounded py-1 text-stone-800 hover:text-stone-900 flex w-full items-start gap-1 pr-2 pl-4 hover:bg-stone-100" href="/kb/1372/manage-devices"><svg class="icon inline-block !h-[0.9em] !w-[0.9em] stroke-gray-500 relative top-1" viewBox="0 0 24 24"><polyline points="9 18 15 12 9 6"></polyline></svg> <span>Manage devices</span></a></li><li data-slug="manage-users" class="flex flex-col gap-0.5"><a class="rounded py-1 text-stone-800 hover:text-stone-900 flex w-full items-start gap-1 pr-2 pl-4 hover:bg-stone-100" href="/kb/1373/manage-users"><svg class="icon inline-block !h-[0.9em] !w-[0.9em] stroke-gray-500 relative top-1" viewBox="0 0 24 24"><polyline points="9 18 15 12 9 6"></polyline></svg> <span>Manage users</span></a></li><li data-slug="tailnet-lock" class="flex flex-col gap-0.5"><a class="rounded py-1 text-stone-800 hover:text-stone-900 flex w-full items-start gap-1 pr-2 pl-4 hover:bg-stone-100" href="/kb/1226/tailnet-lock"><svg class="icon inline-block !h-[0.9em] !w-[0.9em] stroke-gray-500 invisible relative top-1" viewBox="0 0 24 24"><polyline points="9 18 15 12 9 6"></polyline></svg> <span>Tailnet lock</span></a></li></ul></li><li class="flex flex-col gap-0.5"><a class="rounded py-1 text-stone-800 hover:text-stone-900 block pl-4 font-semibold hover:bg-stone-100" href="/kb/1351/route">Route Traffic</a><ul class="flex flex-col gap-0.5"><li data-slug="subnets" class="flex flex-col gap-0.5"><a class="rounded py-1 text-stone-800 hover:text-stone-900 flex w-full items-start gap-1 pr-2 pl-4 hover:bg-stone-100" href="/kb/1019/subnets"><svg class="icon inline-block !h-[0.9em] !w-[0.9em] stroke-gray-500 relative top-1" viewBox="0 0 24 24"><polyline points="9 18 15 12 9 6"></polyline></svg> <span>Set up a subnet router</span></a></li><li data-slug="exit-nodes" class="flex flex-col gap-0.5"><a class="rounded py-1 text-stone-800 hover:text-stone-900 flex w-full items-start gap-1 pr-2 pl-4 hover:bg-stone-100" href="/kb/1103/exit-nodes"><svg class="icon inline-block !h-[0.9em] !w-[0.9em] stroke-gray-500 relative top-1" viewBox="0 0 24 24"><polyline points="9 18 15 12 9 6"></polyline></svg> <span>Set up an exit node</span></a></li><li data-slug="app-connectors" class="flex flex-col gap-0.5"><a class="rounded py-1 text-stone-800 hover:text-stone-900 flex w-full items-start gap-1 pr-2 pl-4 hover:bg-stone-100" href="/kb/1281/app-connectors"><svg class="icon inline-block !h-[0.9em] !w-[0.9em] stroke-gray-500 relative top-1" viewBox="0 0 24 24"><polyline points="9 18 15 12 9 6"></polyline></svg> <span>Set up an app connector</span></a></li><li data-slug="dns" class="flex flex-col gap-0.5"><a class="rounded py-1 text-stone-800 hover:text-stone-900 flex w-full items-start gap-1 pr-2 pl-4 hover:bg-stone-100" href="/kb/1054/dns"><svg class="icon inline-block !h-[0.9em] !w-[0.9em] stroke-gray-500 relative top-1" viewBox="0 0 24 24"><polyline points="9 18 15 12 9 6"></polyline></svg> <span>Use DNS</span></a></li><li data-slug="magicdns" class="flex flex-col gap-0.5"><a class="rounded py-1 text-stone-800 hover:text-stone-900 flex w-full items-start gap-1 pr-2 pl-4 hover:bg-stone-100" href="/kb/1081/magicdns"><svg class="icon inline-block !h-[0.9em] !w-[0.9em] stroke-gray-500 invisible relative top-1" viewBox="0 0 24 24"><polyline points="9 18 15 12 9 6"></polyline></svg> <span>Set up MagicDNS</span></a></li><li data-slug="high-availability" class="flex flex-col gap-0.5"><a class="rounded py-1 text-stone-800 hover:text-stone-900 flex w-full items-start gap-1 pr-2 pl-4 hover:bg-stone-100" href="/kb/1115/high-availability"><svg class="icon inline-block !h-[0.9em] !w-[0.9em] stroke-gray-500 invisible relative top-1" viewBox="0 0 24 24"><polyline points="9 18 15 12 9 6"></polyline></svg> <span>Set up high availability</span></a></li></ul></li><li class="flex flex-col gap-0.5"><a class="rounded py-1 text-stone-800 hover:text-stone-900 block pl-4 font-semibold hover:bg-stone-100" href="/kb/1352/servers">Set Up Servers</a><ul class="flex flex-col gap-0.5"><li data-slug="set-up-servers" class="flex flex-col gap-0.5"><a class="rounded py-1 text-stone-800 hover:text-stone-900 flex w-full items-start gap-1 pr-2 pl-4 hover:bg-stone-100" href="/kb/1245/set-up-servers"><svg class="icon inline-block !h-[0.9em] !w-[0.9em] stroke-gray-500 invisible relative top-1" viewBox="0 0 24 24"><polyline points="9 18 15 12 9 6"></polyline></svg> <span>Set up a server</span></a></li><li data-slug="tags" class="flex flex-col gap-0.5"><a class="rounded py-1 text-stone-800 hover:text-stone-900 flex w-full items-start gap-1 pr-2 pl-4 hover:bg-stone-100" href="/kb/1068/tags"><svg class="icon inline-block !h-[0.9em] !w-[0.9em] stroke-gray-500 invisible relative top-1" viewBox="0 0 24 24"><polyline points="9 18 15 12 9 6"></polyline></svg> <span>Use tags</span></a></li><li data-slug="cloud-init" class="flex flex-col gap-0.5"><a class="rounded py-1 text-stone-800 hover:text-stone-900 flex w-full items-start gap-1 pr-2 pl-4 hover:bg-stone-100" href="/kb/1293/cloud-init"><svg class="icon inline-block !h-[0.9em] !w-[0.9em] stroke-gray-500 invisible relative top-1" viewBox="0 0 24 24"><polyline points="9 18 15 12 9 6"></polyline></svg> <span>Install Tailscale with cloud-init</span></a></li><li data-slug="auth-keys" class="flex flex-col gap-0.5"><a class="rounded py-1 text-stone-800 hover:text-stone-900 flex w-full items-start gap-1 pr-2 pl-4 hover:bg-stone-100" href="/kb/1085/auth-keys"><svg class="icon inline-block !h-[0.9em] !w-[0.9em] stroke-gray-500 relative top-1" viewBox="0 0 24 24"><polyline points="9 18 15 12 9 6"></polyline></svg> <span>Use auth keys</span></a></li><li data-slug="tailscale-ssh" class="flex flex-col gap-0.5"><a class="rounded py-1 text-stone-800 hover:text-stone-900 flex w-full items-start gap-1 pr-2 pl-4 hover:bg-stone-100" href="/kb/1193/tailscale-ssh"><svg class="icon inline-block !h-[0.9em] !w-[0.9em] stroke-gray-500 relative top-1" viewBox="0 0 24 24"><polyline points="9 18 15 12 9 6"></polyline></svg> <span>Use Tailscale SSH</span></a></li><li data-slug="enabling-https" class="flex flex-col gap-0.5"><a class="rounded py-1 text-stone-800 hover:text-stone-900 flex w-full items-start gap-1 pr-2 pl-4 hover:bg-stone-100" href="/kb/1153/enabling-https"><svg class="icon inline-block !h-[0.9em] !w-[0.9em] stroke-gray-500 invisible relative top-1" viewBox="0 0 24 24"><polyline points="9 18 15 12 9 6"></polyline></svg> <span>Set up HTTPS certificates</span></a></li><li data-slug="ephemeral-nodes" class="flex flex-col gap-0.5"><a class="rounded py-1 text-stone-800 hover:text-stone-900 flex w-full items-start gap-1 pr-2 pl-4 hover:bg-stone-100" href="/kb/1111/ephemeral-nodes"><svg class="icon inline-block !h-[0.9em] !w-[0.9em] stroke-gray-500 invisible relative top-1" viewBox="0 0 24 24"><polyline points="9 18 15 12 9 6"></polyline></svg> <span>Run an ephemeral node</span></a></li><li data-slug="run-unattended" class="flex flex-col gap-0.5"><a class="rounded py-1 text-stone-800 hover:text-stone-900 flex w-full items-start gap-1 pr-2 pl-4 hover:bg-stone-100" href="/kb/1088/run-unattended"><svg class="icon inline-block !h-[0.9em] !w-[0.9em] stroke-gray-500 invisible relative top-1" viewBox="0 0 24 24"><polyline points="9 18 15 12 9 6"></polyline></svg> <span>Run unattended</span></a></li></ul></li><li class="flex flex-col gap-0.5"><a class="rounded py-1 text-stone-800 hover:text-stone-900 block pl-4 font-semibold hover:bg-stone-100" href="/kb/1354/share">Access & Share Services</a><ul class="flex flex-col gap-0.5"><li data-slug="services" class="flex flex-col gap-0.5"><a class="rounded py-1 text-stone-800 hover:text-stone-900 flex w-full items-start gap-1 pr-2 pl-4 hover:bg-stone-100" href="/kb/1100/services"><svg class="icon inline-block !h-[0.9em] !w-[0.9em] stroke-gray-500 invisible relative top-1" viewBox="0 0 24 24"><polyline points="9 18 15 12 9 6"></polyline></svg> <span>View services</span></a></li><li data-slug="sharing" class="flex flex-col gap-0.5"><a class="rounded py-1 text-stone-800 hover:text-stone-900 flex w-full items-start gap-1 pr-2 pl-4 hover:bg-stone-100" href="/kb/1084/sharing"><svg class="icon inline-block !h-[0.9em] !w-[0.9em] stroke-gray-500 invisible relative top-1" viewBox="0 0 24 24"><polyline points="9 18 15 12 9 6"></polyline></svg> <span>Share nodes</span></a></li><li data-slug="taildrop" class="flex flex-col gap-0.5"><a class="rounded py-1 text-stone-800 hover:text-stone-900 flex w-full items-start gap-1 pr-2 pl-4 hover:bg-stone-100" href="/kb/1106/taildrop"><svg class="icon inline-block !h-[0.9em] !w-[0.9em] stroke-gray-500 relative top-1" viewBox="0 0 24 24"><polyline points="9 18 15 12 9 6"></polyline></svg> <span>Use Taildrop</span></a></li></ul></li><li class="flex flex-col gap-0.5"><a class="rounded py-1 text-stone-800 hover:text-stone-900 block pl-4 font-semibold hover:bg-stone-100" href="/kb/1353/share-web-server">Share a web server</a><ul class="flex flex-col gap-0.5"><li data-slug="funnel" class="flex flex-col gap-0.5"><a class="rounded py-1 text-stone-800 hover:text-stone-900 flex w-full items-start gap-1 pr-2 pl-4 hover:bg-stone-100" href="/kb/1223/funnel"><svg class="icon inline-block !h-[0.9em] !w-[0.9em] stroke-gray-500 relative top-1" viewBox="0 0 24 24"><polyline points="9 18 15 12 9 6"></polyline></svg> <span>Tailscale Funnel</span></a></li><li data-slug="serve" class="flex flex-col gap-0.5"><a class="rounded py-1 text-stone-800 hover:text-stone-900 flex w-full items-start gap-1 pr-2 pl-4 hover:bg-stone-100" href="/kb/1312/serve"><svg class="icon inline-block !h-[0.9em] !w-[0.9em] stroke-gray-500 relative top-1" viewBox="0 0 24 24"><polyline points="9 18 15 12 9 6"></polyline></svg> <span>Tailscale Serve</span></a></li></ul></li><li class="flex flex-col gap-0.5"><a class="rounded py-1 text-stone-800 hover:text-stone-900 block pl-4 font-semibold hover:bg-stone-100" href="/kb/1355/solutions">Solutions</a><ul class="flex flex-col gap-0.5"><li data-slug="vscode-ipad" class="flex flex-col gap-0.5"><a class="rounded py-1 text-stone-800 hover:text-stone-900 flex w-full items-start gap-1 pr-2 pl-4 hover:bg-stone-100" href="/kb/1166/vscode-ipad"><svg class="icon inline-block !h-[0.9em] !w-[0.9em] stroke-gray-500 invisible relative top-1" viewBox="0 0 24 24"><polyline points="9 18 15 12 9 6"></polyline></svg> <span>Code from your iPad</span></a></li><li data-slug="secure-server-ubuntu" class="flex flex-col gap-0.5"><a class="rounded py-1 text-stone-800 hover:text-stone-900 flex w-full items-start gap-1 pr-2 pl-4 hover:bg-stone-100" href="/kb/1077/secure-server-ubuntu"><svg class="icon inline-block !h-[0.9em] !w-[0.9em] stroke-gray-500 invisible relative top-1" viewBox="0 0 24 24"><polyline points="9 18 15 12 9 6"></polyline></svg> <span>Lock down a server</span></a></li><li data-slug="pikvm" class="flex flex-col gap-0.5"><a class="rounded py-1 text-stone-800 hover:text-stone-900 flex w-full items-start gap-1 pr-2 pl-4 hover:bg-stone-100" href="/kb/1292/pikvm"><svg class="icon inline-block !h-[0.9em] !w-[0.9em] stroke-gray-500 invisible relative top-1" viewBox="0 0 24 24"><polyline points="9 18 15 12 9 6"></polyline></svg> <span>Access a PiKVM</span></a></li><li data-slug="pi-hole" class="flex flex-col gap-0.5"><a class="rounded py-1 text-stone-800 hover:text-stone-900 flex w-full items-start gap-1 pr-2 pl-4 hover:bg-stone-100" href="/kb/1114/pi-hole"><svg class="icon inline-block !h-[0.9em] !w-[0.9em] stroke-gray-500 invisible relative top-1" viewBox="0 0 24 24"><polyline points="9 18 15 12 9 6"></polyline></svg> <span>Run a Pi-hole</span></a></li><li data-slug="ip-blocklist-relays" class="flex flex-col gap-0.5"><a class="rounded py-1 text-stone-800 hover:text-stone-900 flex w-full items-start gap-1 pr-2 pl-4 hover:bg-stone-100" href="/kb/1059/ip-blocklist-relays"><svg class="icon inline-block !h-[0.9em] !w-[0.9em] stroke-gray-500 invisible relative top-1" viewBox="0 0 24 24"><polyline points="9 18 15 12 9 6"></polyline></svg> <span>Secure external services</span></a></li><li data-slug="just-in-time-access" class="flex flex-col gap-0.5"><a class="rounded py-1 text-stone-800 hover:text-stone-900 flex w-full items-start gap-1 pr-2 pl-4 hover:bg-stone-100" href="/kb/1443/just-in-time-access"><svg class="icon inline-block !h-[0.9em] !w-[0.9em] stroke-gray-500 relative top-1" viewBox="0 0 24 24"><polyline points="9 18 15 12 9 6"></polyline></svg> <span>Just-in-time access</span></a></li><li data-slug="automations" class="flex flex-col gap-0.5"><a class="rounded py-1 text-stone-800 hover:text-stone-900 flex w-full items-start gap-1 pr-2 pl-4 hover:bg-stone-100" href="/kb/1430/automations"><svg class="icon inline-block !h-[0.9em] !w-[0.9em] stroke-gray-500 relative top-1" viewBox="0 0 24 24"><polyline points="9 18 15 12 9 6"></polyline></svg> <span>Automation</span></a></li></ul></li></ul></li><li data-slug="integrations"><a class="rounded py-1 text-stone-800 hover:text-stone-900 mb-0.5 mt-2 block pl-2 font-semibold hover:bg-stone-100" href="/kb/1356/integrations">Integrations</a><ul class="flex flex-col gap-0.5"><li data-slug="cloud-server" class="flex flex-col gap-0.5"><a class="rounded py-1 text-stone-800 hover:text-stone-900 flex w-full items-start gap-1 pr-2 pl-4 hover:bg-stone-100" href="/kb/integrations/cloud-server"><svg class="icon inline-block !h-[0.9em] !w-[0.9em] stroke-gray-500 relative top-1" viewBox="0 0 24 24"><polyline points="9 18 15 12 9 6"></polyline></svg> <span>Cloud servers</span></a></li><li data-slug="containers-and-virtualization" class="flex flex-col gap-0.5"><a class="rounded py-1 text-stone-800 hover:text-stone-900 flex w-full items-start gap-1 pr-2 pl-4 hover:bg-stone-100" href="/kb/1358/containers-and-virtualization"><svg class="icon inline-block !h-[0.9em] !w-[0.9em] stroke-gray-500 relative top-1" viewBox="0 0 24 24"><polyline points="9 18 15 12 9 6"></polyline></svg> <span>Containers and virtualization</span></a></li><li data-slug="serverless" class="flex flex-col gap-0.5"><a class="rounded py-1 text-stone-800 hover:text-stone-900 flex w-full items-start gap-1 pr-2 pl-4 hover:bg-stone-100" href="/kb/1364/serverless"><svg class="icon inline-block !h-[0.9em] !w-[0.9em] stroke-gray-500 relative top-1" viewBox="0 0 24 24"><polyline points="9 18 15 12 9 6"></polyline></svg> <span>Serverless apps</span></a></li><li data-slug="database" class="flex flex-col gap-0.5"><a class="rounded py-1 text-stone-800 hover:text-stone-900 flex w-full items-start gap-1 pr-2 pl-4 hover:bg-stone-100" href="/kb/1359/database"><svg class="icon inline-block !h-[0.9em] !w-[0.9em] stroke-gray-500 relative top-1" viewBox="0 0 24 24"><polyline points="9 18 15 12 9 6"></polyline></svg> <span>Databases</span></a></li><li data-slug="remote-code" class="flex flex-col gap-0.5"><a class="rounded py-1 text-stone-800 hover:text-stone-900 flex w-full items-start gap-1 pr-2 pl-4 hover:bg-stone-100" href="/kb/1363/remote-code"><svg class="icon inline-block !h-[0.9em] !w-[0.9em] stroke-gray-500 relative top-1" viewBox="0 0 24 24"><polyline points="9 18 15 12 9 6"></polyline></svg> <span>Remote environments</span></a></li><li data-slug="developer-tools" class="flex flex-col gap-0.5"><a class="rounded py-1 text-stone-800 hover:text-stone-900 flex w-full items-start gap-1 pr-2 pl-4 hover:bg-stone-100" href="/kb/1360/developer-tools"><svg class="icon inline-block !h-[0.9em] !w-[0.9em] stroke-gray-500 relative top-1" viewBox="0 0 24 24"><polyline points="9 18 15 12 9 6"></polyline></svg> <span>Developer tools</span></a></li><li data-slug="firewall" class="flex flex-col gap-0.5"><a class="rounded py-1 text-stone-800 hover:text-stone-900 flex w-full items-start gap-1 pr-2 pl-4 hover:bg-stone-100" href="/kb/1361/firewall"><svg class="icon inline-block !h-[0.9em] !w-[0.9em] stroke-gray-500 relative top-1" viewBox="0 0 24 24"><polyline points="9 18 15 12 9 6"></polyline></svg> <span>Firewalls</span></a></li><li data-slug="webserver" class="flex flex-col gap-0.5"><a class="rounded py-1 text-stone-800 hover:text-stone-900 flex w-full items-start gap-1 pr-2 pl-4 hover:bg-stone-100" href="/kb/1365/webserver"><svg class="icon inline-block !h-[0.9em] !w-[0.9em] stroke-gray-500 relative top-1" viewBox="0 0 24 24"><polyline points="9 18 15 12 9 6"></polyline></svg> <span>Web servers</span></a></li><li data-slug="nas" class="flex flex-col gap-0.5"><a class="rounded py-1 text-stone-800 hover:text-stone-900 flex w-full items-start gap-1 pr-2 pl-4 hover:bg-stone-100" href="/kb/1307/nas"><svg class="icon inline-block !h-[0.9em] !w-[0.9em] stroke-gray-500 relative top-1" viewBox="0 0 24 24"><polyline points="9 18 15 12 9 6"></polyline></svg> <span>NAS</span></a></li></ul></li><li data-slug="faq"><a class="rounded py-1 text-stone-800 hover:text-stone-900 mb-0.5 mt-2 block pl-2 font-semibold hover:bg-stone-100" href="/kb/1366/faq">FAQ</a></li><li data-slug="log-events"><a class="rounded py-1 text-stone-800 hover:text-stone-900 mb-0.5 mt-2 block pl-2 font-semibold hover:bg-stone-100" href="/kb/1349/log-events">Logging, Streaming, and Events</a><ul class="flex flex-col gap-0.5"><li data-slug="log-mesh-traffic" class="flex flex-col gap-0.5"><a class="rounded py-1 text-stone-800 hover:text-stone-900 flex w-full items-start gap-1 pr-2 pl-4 hover:bg-stone-100" href="/kb/1011/log-mesh-traffic"><svg class="icon inline-block !h-[0.9em] !w-[0.9em] stroke-gray-500 invisible relative top-1" viewBox="0 0 24 24"><polyline points="9 18 15 12 9 6"></polyline></svg> <span>Logging overview</span></a></li><li data-slug="audit-logging" class="flex flex-col gap-0.5"><a class="rounded py-1 text-stone-800 hover:text-stone-900 flex w-full items-start gap-1 pr-2 pl-4 hover:bg-stone-100" href="/kb/1203/audit-logging"><svg class="icon inline-block !h-[0.9em] !w-[0.9em] stroke-gray-500 invisible relative top-1" viewBox="0 0 24 24"><polyline points="9 18 15 12 9 6"></polyline></svg> <span>Configuration audit logging</span></a></li><li data-slug="network-flow-logs" class="flex flex-col gap-0.5"><a class="rounded py-1 text-stone-800 hover:text-stone-900 flex w-full items-start gap-1 pr-2 pl-4 hover:bg-stone-100" href="/kb/1219/network-flow-logs"><svg class="icon inline-block !h-[0.9em] !w-[0.9em] stroke-gray-500 invisible relative top-1" viewBox="0 0 24 24"><polyline points="9 18 15 12 9 6"></polyline></svg> <span>Network flow logs</span></a></li><li data-slug="log-streaming" class="flex flex-col gap-0.5"><a class="rounded py-1 text-stone-800 hover:text-stone-900 flex w-full items-start gap-1 pr-2 pl-4 hover:bg-stone-100" href="/kb/1255/log-streaming"><svg class="icon inline-block !h-[0.9em] !w-[0.9em] stroke-gray-500 invisible relative top-1" viewBox="0 0 24 24"><polyline points="9 18 15 12 9 6"></polyline></svg> <span>Log streaming</span></a></li><li data-slug="tailscale-ssh-session-recording" class="flex flex-col gap-0.5"><a class="rounded py-1 text-stone-800 hover:text-stone-900 flex w-full items-start gap-1 pr-2 pl-4 hover:bg-stone-100" href="/kb/1246/tailscale-ssh-session-recording"><svg class="icon inline-block !h-[0.9em] !w-[0.9em] stroke-gray-500 relative top-1" viewBox="0 0 24 24"><polyline points="9 18 15 12 9 6"></polyline></svg> <span>SSH session recording</span></a></li><li data-slug="client-metrics" class="flex flex-col gap-0.5"><a class="rounded py-1 text-stone-800 hover:text-stone-900 flex w-full items-start gap-1 pr-2 pl-4 hover:bg-stone-100" href="/kb/1482/client-metrics"><svg class="icon inline-block !h-[0.9em] !w-[0.9em] stroke-gray-500 invisible relative top-1" viewBox="0 0 24 24"><polyline points="9 18 15 12 9 6"></polyline></svg> <span>Client metrics</span></a></li><li data-slug="webhooks" class="flex flex-col gap-0.5"><a class="rounded py-1 text-stone-800 hover:text-stone-900 flex w-full items-start gap-1 pr-2 pl-4 hover:bg-stone-100" href="/kb/1213/webhooks"><svg class="icon inline-block !h-[0.9em] !w-[0.9em] stroke-gray-500 invisible relative top-1" viewBox="0 0 24 24"><polyline points="9 18 15 12 9 6"></polyline></svg> <span>Webhooks</span></a></li></ul></li><li data-slug="manage-account"><a class="rounded py-1 text-stone-800 hover:text-stone-900 mb-0.5 mt-2 block pl-2 font-semibold hover:bg-stone-100" href="/kb/1431/manage-account">Manage Your Organization</a><ul class="flex flex-col gap-0.5"><li data-slug="contract-preferences" class="flex flex-col gap-0.5"><a class="rounded py-1 text-stone-800 hover:text-stone-900 flex w-full items-start gap-1 pr-2 pl-4 hover:bg-stone-100" href="/kb/1224/contract-preferences"><svg class="icon inline-block !h-[0.9em] !w-[0.9em] stroke-gray-500 invisible relative top-1" viewBox="0 0 24 24"><polyline points="9 18 15 12 9 6"></polyline></svg> <span>Contact preferences</span></a></li><li data-slug="pb-lp" class="flex flex-col gap-0.5"><a class="rounded py-1 text-stone-800 hover:text-stone-900 flex w-full items-start gap-1 pr-2 pl-4 hover:bg-stone-100" href="/kb/1375/pb-lp"><svg class="icon inline-block !h-[0.9em] !w-[0.9em] stroke-gray-500 relative top-1" viewBox="0 0 24 24"><polyline points="9 18 15 12 9 6"></polyline></svg> <span>Pricing and billing</span></a></li><li data-slug="tailnet-name" class="flex flex-col gap-0.5"><a class="rounded py-1 text-stone-800 hover:text-stone-900 flex w-full items-start gap-1 pr-2 pl-4 hover:bg-stone-100" href="/kb/1217/tailnet-name"><svg class="icon inline-block !h-[0.9em] !w-[0.9em] stroke-gray-500 invisible relative top-1" viewBox="0 0 24 24"><polyline points="9 18 15 12 9 6"></polyline></svg> <span>Tailnet name</span></a></li><li data-slug="domain-ownership" class="flex flex-col gap-0.5"><a class="rounded py-1 text-stone-800 hover:text-stone-900 flex w-full items-start gap-1 pr-2 pl-4 hover:bg-stone-100" href="/kb/1259/domain-ownership"><svg class="icon inline-block !h-[0.9em] !w-[0.9em] stroke-gray-500 invisible relative top-1" viewBox="0 0 24 24"><polyline points="9 18 15 12 9 6"></polyline></svg> <span>Domain ownership</span></a></li></ul></li><li data-slug="reference"><a class="rounded py-1 text-stone-800 hover:text-stone-900 mb-0.5 mt-2 block pl-2 font-semibold hover:bg-stone-100" href="/kb/1367/reference">Reference</a><ul class="flex flex-col gap-0.5"><li data-slug="acl-syntax" class="flex flex-col gap-0.5"><a class="rounded py-1 text-stone-800 hover:text-stone-900 flex w-full items-start gap-1 pr-2 pl-4 hover:bg-stone-100" href="/kb/1337/acl-syntax"><svg class="icon inline-block !h-[0.9em] !w-[0.9em] stroke-gray-500 relative top-1" viewBox="0 0 24 24"><polyline points="9 18 15 12 9 6"></polyline></svg> <span>ACL syntax</span></a></li><li data-slug="acl-samples" class="flex flex-col gap-0.5"><a class="rounded py-1 text-stone-800 hover:text-stone-900 flex w-full items-start gap-1 pr-2 pl-4 hover:bg-stone-100" href="/kb/1192/acl-samples"><svg class="icon inline-block !h-[0.9em] !w-[0.9em] stroke-gray-500 invisible relative top-1" viewBox="0 0 24 24"><polyline points="9 18 15 12 9 6"></polyline></svg> <span>ACL samples</span></a></li><li data-slug="grant-samples" class="flex flex-col gap-0.5"><a class="rounded py-1 text-stone-800 hover:text-stone-900 flex w-full items-start gap-1 pr-2 pl-4 hover:bg-stone-100" href="/kb/1458/grant-samples"><svg class="icon inline-block !h-[0.9em] !w-[0.9em] stroke-gray-500 invisible relative top-1" viewBox="0 0 24 24"><polyline points="9 18 15 12 9 6"></polyline></svg> <span>Grant samples</span></a></li><li data-slug="cli" class="flex flex-col gap-0.5"><a class="rounded py-1 text-stone-800 hover:text-stone-900 flex w-full items-start gap-1 pr-2 pl-4 bg-stone-100 hover:bg-stone-200" href="/kb/1080/cli"><svg class="icon inline-block !h-[0.9em] !w-[0.9em] stroke-gray-500 relative top-1" viewBox="0 0 24 24"><polyline points="6 9 12 15 18 9"></polyline></svg> <span>CLI</span></a><ul class="flex flex-col gap-0.5"><li data-slug="tailscale-funnel" class="flex flex-col gap-0.5"><a class="rounded py-1 text-stone-800 hover:text-stone-900 flex w-full items-start gap-1 pr-2 pl-6 hover:bg-stone-100" href="/kb/1311/tailscale-funnel"><svg class="icon inline-block !h-[0.9em] !w-[0.9em] stroke-gray-500 invisible relative top-1" viewBox="0 0 24 24"><polyline points="9 18 15 12 9 6"></polyline></svg> <span>tailscale funnel</span></a></li><li data-slug="tailscale-lock" class="flex flex-col gap-0.5"><a class="rounded py-1 text-stone-800 hover:text-stone-900 flex w-full items-start gap-1 pr-2 pl-6 hover:bg-stone-100" href="/kb/1243/tailscale-lock"><svg class="icon inline-block !h-[0.9em] !w-[0.9em] stroke-gray-500 invisible relative top-1" viewBox="0 0 24 24"><polyline points="9 18 15 12 9 6"></polyline></svg> <span>tailscale lock</span></a></li><li data-slug="tailscale-serve" class="flex flex-col gap-0.5"><a class="rounded py-1 text-stone-800 hover:text-stone-900 flex w-full items-start gap-1 pr-2 pl-6 hover:bg-stone-100" href="/kb/1242/tailscale-serve"><svg class="icon inline-block !h-[0.9em] !w-[0.9em] stroke-gray-500 invisible relative top-1" viewBox="0 0 24 24"><polyline points="9 18 15 12 9 6"></polyline></svg> <span>tailscale serve</span></a></li><li data-slug="tailscale-up" class="flex flex-col gap-0.5"><a class="rounded py-1 text-stone-800 hover:text-stone-900 flex w-full items-start gap-1 pr-2 pl-6 hover:bg-stone-100" href="/kb/1241/tailscale-up"><svg class="icon inline-block !h-[0.9em] !w-[0.9em] stroke-gray-500 invisible relative top-1" viewBox="0 0 24 24"><polyline points="9 18 15 12 9 6"></polyline></svg> <span>tailscale up</span></a></li><li data-slug="tailscaled" class="flex flex-col gap-0.5"><a class="rounded py-1 text-stone-800 hover:text-stone-900 flex w-full items-start gap-1 pr-2 pl-6 hover:bg-stone-100" href="/kb/1278/tailscaled"><svg class="icon inline-block !h-[0.9em] !w-[0.9em] stroke-gray-500 invisible relative top-1" viewBox="0 0 24 24"><polyline points="9 18 15 12 9 6"></polyline></svg> <span>tailscaled</span></a></li></ul></li><li data-slug="api" class="flex flex-col gap-0.5"><a class="rounded py-1 text-stone-800 hover:text-stone-900 flex w-full items-start gap-1 pr-2 pl-4 hover:bg-stone-100" href="/kb/1101/api"><svg class="icon inline-block !h-[0.9em] !w-[0.9em] stroke-gray-500 relative top-1" viewBox="0 0 24 24"><polyline points="9 18 15 12 9 6"></polyline></svg> <span>API</span></a></li><li data-slug="key-prefixes" class="flex flex-col gap-0.5"><a class="rounded py-1 text-stone-800 hover:text-stone-900 flex w-full items-start gap-1 pr-2 pl-4 hover:bg-stone-100" href="/kb/1277/key-prefixes"><svg class="icon inline-block !h-[0.9em] !w-[0.9em] stroke-gray-500 invisible relative top-1" viewBox="0 0 24 24"><polyline points="9 18 15 12 9 6"></polyline></svg> <span>Key prefixes</span></a></li><li data-slug="production-best-practices" class="flex flex-col gap-0.5"><a class="rounded py-1 text-stone-800 hover:text-stone-900 flex w-full items-start gap-1 pr-2 pl-4 hover:bg-stone-100" href="/kb/1300/production-best-practices"><svg class="icon inline-block !h-[0.9em] !w-[0.9em] stroke-gray-500 relative top-1" viewBox="0 0 24 24"><polyline points="9 18 15 12 9 6"></polyline></svg> <span>Production best practices</span></a></li><li data-slug="shared-responsibility" class="flex flex-col gap-0.5"><a class="rounded py-1 text-stone-800 hover:text-stone-900 flex w-full items-start gap-1 pr-2 pl-4 hover:bg-stone-100" href="/kb/1212/shared-responsibility"><svg class="icon inline-block !h-[0.9em] !w-[0.9em] stroke-gray-500 invisible relative top-1" viewBox="0 0 24 24"><polyline points="9 18 15 12 9 6"></polyline></svg> <span>Shared responsibility</span></a></li><li data-slug="tech-overviews" class="flex flex-col gap-0.5"><a class="rounded py-1 text-stone-800 hover:text-stone-900 flex w-full items-start gap-1 pr-2 pl-4 hover:bg-stone-100" href="/kb/1376/tech-overviews"><svg class="icon inline-block !h-[0.9em] !w-[0.9em] stroke-gray-500 relative top-1" viewBox="0 0 24 24"><polyline points="9 18 15 12 9 6"></polyline></svg> <span>Technical overviews</span></a></li><li data-slug="terminology-and-concepts" class="flex flex-col gap-0.5"><a class="rounded py-1 text-stone-800 hover:text-stone-900 flex w-full items-start gap-1 pr-2 pl-4 hover:bg-stone-100" href="/kb/1155/terminology-and-concepts"><svg class="icon inline-block !h-[0.9em] !w-[0.9em] stroke-gray-500 invisible relative top-1" viewBox="0 0 24 24"><polyline points="9 18 15 12 9 6"></polyline></svg> <span>Terminology and concepts</span></a></li><li class="flex flex-col gap-0.5"><a class="rounded py-1 text-stone-800 hover:text-stone-900 flex w-full items-start gap-1 pr-2 pl-4 hover:bg-stone-100" href="https://github.com/tailscale/tailscale"><svg class="icon inline-block !h-[0.9em] !w-[0.9em] stroke-gray-500 invisible relative top-1" viewBox="0 0 24 24"><polyline points="9 18 15 12 9 6"></polyline></svg> <span>GitHub ↗</span></a></li></ul></li><li data-slug="get-support"><a class="rounded py-1 text-stone-800 hover:text-stone-900 mb-0.5 mt-2 block pl-2 font-semibold hover:bg-stone-100" href="/kb/1432/get-support">Get Support</a><ul class="flex flex-col gap-0.5"><li data-slug="troubleshooting" class="flex flex-col gap-0.5"><a class="rounded py-1 text-stone-800 hover:text-stone-900 flex w-full items-start gap-1 pr-2 pl-4 hover:bg-stone-100" href="/kb/1023/troubleshooting"><svg class="icon inline-block !h-[0.9em] !w-[0.9em] stroke-gray-500 relative top-1" viewBox="0 0 24 24"><polyline points="9 18 15 12 9 6"></polyline></svg> <span>Troubleshooting</span></a></li><li data-slug="support-options" class="flex flex-col gap-0.5"><a class="rounded py-1 text-stone-800 hover:text-stone-900 flex w-full items-start gap-1 pr-2 pl-4 hover:bg-stone-100" href="/kb/1250/support-options"><svg class="icon inline-block !h-[0.9em] !w-[0.9em] stroke-gray-500 invisible relative top-1" viewBox="0 0 24 24"><polyline points="9 18 15 12 9 6"></polyline></svg> <span>Support options</span></a></li><li class="flex flex-col gap-0.5"><a class="rounded py-1 text-stone-800 hover:text-stone-900 flex w-full items-start gap-1 pr-2 pl-4 hover:bg-stone-100" href="/contact/support"><svg class="icon inline-block !h-[0.9em] !w-[0.9em] stroke-gray-500 invisible relative top-1" viewBox="0 0 24 24"><polyline points="9 18 15 12 9 6"></polyline></svg> <span>Contact support ↗</span></a></li><li data-slug="bug-report" class="flex flex-col gap-0.5"><a class="rounded py-1 text-stone-800 hover:text-stone-900 flex w-full items-start gap-1 pr-2 pl-4 hover:bg-stone-100" href="/kb/1227/bug-report"><svg class="icon inline-block !h-[0.9em] !w-[0.9em] stroke-gray-500 invisible relative top-1" viewBox="0 0 24 24"><polyline points="9 18 15 12 9 6"></polyline></svg> <span>Generate a bug report</span></a></li></ul></li><li data-slug="resources"><a class="rounded py-1 text-stone-800 hover:text-stone-900 mb-0.5 mt-2 block pl-2 font-semibold hover:bg-stone-100" href="/kb/1368/resources">Resources</a><ul class="flex flex-col gap-0.5"><li class="flex flex-col gap-0.5"><a class="rounded py-1 text-stone-800 hover:text-stone-900 flex w-full items-start gap-1 pr-2 pl-4 hover:bg-stone-100" href="/changelog"><svg class="icon inline-block !h-[0.9em] !w-[0.9em] stroke-gray-500 invisible relative top-1" viewBox="0 0 24 24"><polyline points="9 18 15 12 9 6"></polyline></svg> <span>Changelog ↗</span></a></li><li class="flex flex-col gap-0.5"><a class="rounded py-1 text-stone-800 hover:text-stone-900 flex w-full items-start gap-1 pr-2 pl-4 hover:bg-stone-100" href="/compare"><svg class="icon inline-block !h-[0.9em] !w-[0.9em] stroke-gray-500 invisible relative top-1" viewBox="0 0 24 24"><polyline points="9 18 15 12 9 6"></polyline></svg> <span>Comparisons ↗</span></a></li><li data-slug="release-stages" class="flex flex-col gap-0.5"><a class="rounded py-1 text-stone-800 hover:text-stone-900 flex w-full items-start gap-1 pr-2 pl-4 hover:bg-stone-100" href="/kb/1167/release-stages"><svg class="icon inline-block !h-[0.9em] !w-[0.9em] stroke-gray-500 invisible relative top-1" viewBox="0 0 24 24"><polyline points="9 18 15 12 9 6"></polyline></svg> <span>Release stages</span></a></li><li class="flex flex-col gap-0.5"><a class="rounded py-1 text-stone-800 hover:text-stone-900 flex w-full items-start gap-1 pr-2 pl-4 hover:bg-stone-100" href="/security"><svg class="icon inline-block !h-[0.9em] !w-[0.9em] stroke-gray-500 invisible relative top-1" viewBox="0 0 24 24"><polyline points="9 18 15 12 9 6"></polyline></svg> <span>Security ↗</span></a></li><li data-slug="community-projects" class="flex flex-col gap-0.5"><a class="rounded py-1 text-stone-800 hover:text-stone-900 flex w-full items-start gap-1 pr-2 pl-4 hover:bg-stone-100" href="/kb/1531/community-projects"><svg class="icon inline-block !h-[0.9em] !w-[0.9em] stroke-gray-500 invisible relative top-1" viewBox="0 0 24 24"><polyline points="9 18 15 12 9 6"></polyline></svg> <span>Tailscale Community Projects</span></a></li><li data-slug="versions" class="flex flex-col gap-0.5"><a class="rounded py-1 text-stone-800 hover:text-stone-900 flex w-full items-start gap-1 pr-2 pl-4 hover:bg-stone-100" href="/kb/1168/versions"><svg class="icon inline-block !h-[0.9em] !w-[0.9em] stroke-gray-500 relative top-1" viewBox="0 0 24 24"><polyline points="9 18 15 12 9 6"></polyline></svg> <span>Versions</span></a></li><li data-slug="use-cases" class="flex flex-col gap-0.5"><a class="rounded py-1 text-stone-800 hover:text-stone-900 flex w-full items-start gap-1 pr-2 pl-4 hover:bg-stone-100" href="/kb/1377/use-cases"><svg class="icon inline-block !h-[0.9em] !w-[0.9em] stroke-gray-500 invisible relative top-1" viewBox="0 0 24 24"><polyline points="9 18 15 12 9 6"></polyline></svg> <span>Use cases</span></a></li><li data-slug="invite-only-feature" class="flex flex-col gap-0.5"><a class="rounded py-1 text-stone-800 hover:text-stone-900 flex w-full items-start gap-1 pr-2 pl-4 hover:bg-stone-100" href="/kb/1222/invite-only-feature"><svg class="icon inline-block !h-[0.9em] !w-[0.9em] stroke-gray-500 invisible relative top-1" viewBox="0 0 24 24"><polyline points="9 18 15 12 9 6"></polyline></svg> <span>Invite only features</span></a></li></ul></li></ul><div class="absolute inset-x-0 h-4 w-full from-white bottom-0 bg-gradient-to-t"></div></div></div></div></aside><div class="col-span-10 mb-8 md:col-span-7 xl:col-span-6"><div class="max-w-3xl xl:mx-auto"><div class="pb-8"><!--$--><div class="relative md:max-w-lg"><form class="relative flex" autoComplete="off" autoCapitalize="off" autoCorrect="off" action="/kb"><input class="input hide-search-ui flex-shrink-0 flex-grow" type="search" placeholder="Search..." aria-label="Search" name="q" value=""/></form></div><!--/$--></div><article id="main-content" class="prism markdown-content js-docHighlight"><header class="mb-2 hidden md:flex"><script type="application/ld+json">{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Docs","item":"/kb"},{"@type":"ListItem","position":2,"name":"Reference","item":"/kb/1367/reference"},{"@type":"ListItem","position":3,"name":"CLI","item":"/kb/1080/cli"}]}</script><nav class="flex min-w-0 items-center gap-2 whitespace-nowrap text-sm font-medium"><a class="transition-color text-gray-600 hover:text-gray-800" href="/kb">Docs</a><span class="select-none text-gray-500">›</span><a class="transition-color text-gray-600 hover:text-gray-800" href="/kb/1367/reference">Reference</a><span class="select-none text-gray-500">›</span><span class="text-gray-800">CLI</span></nav></header><h1 class="mb-4 text-4xl font-medium tracking-tight">Tailscale CLI</h1><div class="ts-prose"><!--$--><p>The Tailscale client includes a built-in command-line interface (CLI) you can use to manage and troubleshoot your device within your Tailscale network (known as a tailnet).</p> <div class="note border-grey-200 relative mt-4 rounded border border-solid pb-2 pl-9 pr-3 pt-3 text-base leading-normal tracking-tight md:text-sm"><span class="absolute left-3 top-3 inline-block h-[18px] w-[18px]"><svg xmlns="http://www.w3.org/2000/svg" width="18px" height="18px" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle><line x1="12" y1="16" x2="12" y2="12"></line><line x1="12" y1="8" x2="12.01" y2="8"></line></svg></span>The Tailscale CLI<!-- --> <!-- -->is<!-- --> available for <a class="!font-medium !text-blue-500 underline decoration-blue-50 underline-offset-4 hover:!text-blue-700 hover:!decoration-blue-500 focus-visible:no-underline" href="/pricing">all plans</a>.</div> <h2 id="using-the-tailscale-cli"><a class="group flex items-center gap-2" href="#using-the-tailscale-cli"><span id="inner-text">Using the Tailscale CLI</span><span aria-hidden="true" class="inline-block opacity-0 transition-opacity duration-150 group-hover:opacity-100"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-link-2"><path d="M15 7h3a5 5 0 0 1 5 5 5 5 0 0 1-5 5h-3m-6 0H6a5 5 0 0 1-5-5 5 5 0 0 1 5-5h3"></path><line x1="8" y1="12" x2="16" y2="12"></line></svg></span></a></h2> <p>The location of the CLI varies depending on your platform:</p> <div class="js-platformBox border-grey-200 my-5 rounded border"><div class="x border-grey-200 flex items-center gap-2 border-b bg-[#FAF9F8] px-3 py-3" role="tablist"><a class="!rounded-lg border px-2 py-0.5 !text-sm !font-medium border-blue-600 bg-blue-600 !text-white" data-tab-header="true" href="/kb/1080/cli?tab=linux">Linux</a><a class="!rounded-lg border px-2 py-0.5 !text-sm !font-medium bg-white" data-tab-header="true" href="/kb/1080/cli?tab=macos">macOS</a><a class="!rounded-lg border px-2 py-0.5 !text-sm !font-medium bg-white" data-tab-header="true" href="/kb/1080/cli?tab=windows">Windows</a></div><div class="px-3 py-4"><div class="font-base mr-1 cursor-pointer bg-none transition-colors aria-selected:cursor-default aria-selected:border-blue-500 aria-selected:bg-blue-500 aria-selected:text-white hover:[&:not([aria-selected])]:border-gray-100" role="tabpanel" data-tab-id="Linux"><p>On Linux, the CLI is your primary interface to Tailscale. The <code>tailscale</code> binary is likely already in your <code>$PATH</code>, so you can run commands with:</p><div class="group relative overflow-hidden"><div class="absolute right-[5px] top-[21px] flex h-10 w-10 items-center justify-center rounded bg-grey-3 text-black opacity-0 transition-opacity duration-200 group-hover:opacity-100"><button type="button" aria-label="copy"><svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M12.8333 9.91667H14.0833C15.0038 9.91667 15.75 9.1705 15.75 8.25V2.41667C15.75 1.49619 15.0038 0.75 14.0833 0.75H8.25C7.3295 0.75 6.58333 1.49619 6.58333 2.41667V3.66667M2.41667 6.58333H8.25C9.1705 6.58333 9.91667 7.3295 9.91667 8.25V14.0833C9.91667 15.0038 9.1705 15.75 8.25 15.75H2.41667C1.49619 15.75 0.75 15.0038 0.75 14.0833V8.25C0.75 7.3295 1.49619 6.58333 2.41667 6.58333Z" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path></svg></button></div><pre class="refractor language-shell"><code class="language-shell">tailscale <span class="token operator"><</span>command<span class="token operator">></span> </code></pre></div></div></div></div> <p>There is no CLI support for iOS and Android.</p> <h3 id="tab-completion"><a class="group flex items-center gap-2" href="#tab-completion"><span id="inner-text">Tab completion</span><span aria-hidden="true" class="inline-block opacity-0 transition-opacity duration-150 group-hover:opacity-100"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-link-2"><path d="M15 7h3a5 5 0 0 1 5 5 5 5 0 0 1-5 5h-3m-6 0H6a5 5 0 0 1-5-5 5 5 0 0 1 5-5h3"></path><line x1="8" y1="12" x2="16" y2="12"></line></svg></span></a></h3> <p>The Tailscale CLI supports tab-completion for commands, flags, and arguments. You can configure tab-completion with the <a href="#completion"><code>completion</code> command</a>.</p> <div class="group relative overflow-hidden"><div class="absolute right-[5px] top-[21px] flex h-10 w-10 items-center justify-center rounded bg-grey-3 text-black opacity-0 transition-opacity duration-200 group-hover:opacity-100"><button type="button" aria-label="copy"><svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M12.8333 9.91667H14.0833C15.0038 9.91667 15.75 9.1705 15.75 8.25V2.41667C15.75 1.49619 15.0038 0.75 14.0833 0.75H8.25C7.3295 0.75 6.58333 1.49619 6.58333 2.41667V3.66667M2.41667 6.58333H8.25C9.1705 6.58333 9.91667 7.3295 9.91667 8.25V14.0833C9.91667 15.0038 9.1705 15.75 8.25 15.75H2.41667C1.49619 15.75 0.75 15.0038 0.75 14.0833V8.25C0.75 7.3295 1.49619 6.58333 2.41667 6.58333Z" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path></svg></button></div><pre class="refractor language-shell"><code class="language-shell">tailscale completion <span class="token operator"><</span>shell<span class="token operator">></span> <span class="token punctuation">[</span>--flags<span class="token punctuation">]</span> <span class="token punctuation">[</span>--descs<span class="token punctuation">]</span> </code></pre></div> <p>Select your shell, then follow the instructions to load Tailscale CLI completions.</p> <div class="js-platformBox border-grey-200 my-5 rounded border"><div class="x border-grey-200 flex items-center gap-2 border-b bg-[#FAF9F8] px-3 py-3" role="tablist"><a class="!rounded-lg border px-2 py-0.5 !text-sm !font-medium border-blue-600 bg-blue-600 !text-white" data-tab-header="true" href="/kb/1080/cli?tab=bash">Bash</a><a class="!rounded-lg border px-2 py-0.5 !text-sm !font-medium bg-white" data-tab-header="true" href="/kb/1080/cli?tab=zsh">Zsh</a><a class="!rounded-lg border px-2 py-0.5 !text-sm !font-medium bg-white" data-tab-header="true" href="/kb/1080/cli?tab=fish">Fish</a><a class="!rounded-lg border px-2 py-0.5 !text-sm !font-medium bg-white" data-tab-header="true" href="/kb/1080/cli?tab=powershell">PowerShell</a></div><div class="px-3 py-4"><div class="font-base mr-1 cursor-pointer bg-none transition-colors aria-selected:cursor-default aria-selected:border-blue-500 aria-selected:bg-blue-500 aria-selected:text-white hover:[&:not([aria-selected])]:border-gray-100" role="tabpanel" data-tab-id="Bash"><p>To load tab-completions for Bash, run the following command.</p><div class="group relative overflow-hidden"><div class="absolute right-[5px] top-[21px] flex h-10 w-10 items-center justify-center rounded bg-grey-3 text-black opacity-0 transition-opacity duration-200 group-hover:opacity-100"><button type="button" aria-label="copy"><svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M12.8333 9.91667H14.0833C15.0038 9.91667 15.75 9.1705 15.75 8.25V2.41667C15.75 1.49619 15.0038 0.75 14.0833 0.75H8.25C7.3295 0.75 6.58333 1.49619 6.58333 2.41667V3.66667M2.41667 6.58333H8.25C9.1705 6.58333 9.91667 7.3295 9.91667 8.25V14.0833C9.91667 15.0038 9.1705 15.75 8.25 15.75H2.41667C1.49619 15.75 0.75 15.0038 0.75 14.0833V8.25C0.75 7.3295 1.49619 6.58333 2.41667 6.58333Z" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path></svg></button></div><pre class="refractor language-shell"><code class="language-shell"><span class="token builtin class-name">source</span> <span class="token operator"><</span><span class="token punctuation">(</span>tailscale completion <span class="token function">bash</span><span class="token punctuation">)</span> </code></pre></div><p>Run the following command to load completions for every new session on Linux, then reload your shell.</p><div class="group relative overflow-hidden"><div class="absolute right-[5px] top-[21px] flex h-10 w-10 items-center justify-center rounded bg-grey-3 text-black opacity-0 transition-opacity duration-200 group-hover:opacity-100"><button type="button" aria-label="copy"><svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M12.8333 9.91667H14.0833C15.0038 9.91667 15.75 9.1705 15.75 8.25V2.41667C15.75 1.49619 15.0038 0.75 14.0833 0.75H8.25C7.3295 0.75 6.58333 1.49619 6.58333 2.41667V3.66667M2.41667 6.58333H8.25C9.1705 6.58333 9.91667 7.3295 9.91667 8.25V14.0833C9.91667 15.0038 9.1705 15.75 8.25 15.75H2.41667C1.49619 15.75 0.75 15.0038 0.75 14.0833V8.25C0.75 7.3295 1.49619 6.58333 2.41667 6.58333Z" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path></svg></button></div><pre class="refractor language-shell"><code class="language-shell">tailscale completion <span class="token function">bash</span> <span class="token operator">></span> /etc/bash_completion.d/tailscale </code></pre></div><p>Run the following command to load completions for every new session on macOS, then reload your shell.</p><div class="group relative overflow-hidden"><div class="absolute right-[5px] top-[21px] flex h-10 w-10 items-center justify-center rounded bg-grey-3 text-black opacity-0 transition-opacity duration-200 group-hover:opacity-100"><button type="button" aria-label="copy"><svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M12.8333 9.91667H14.0833C15.0038 9.91667 15.75 9.1705 15.75 8.25V2.41667C15.75 1.49619 15.0038 0.75 14.0833 0.75H8.25C7.3295 0.75 6.58333 1.49619 6.58333 2.41667V3.66667M2.41667 6.58333H8.25C9.1705 6.58333 9.91667 7.3295 9.91667 8.25V14.0833C9.91667 15.0038 9.1705 15.75 8.25 15.75H2.41667C1.49619 15.75 0.75 15.0038 0.75 14.0833V8.25C0.75 7.3295 1.49619 6.58333 2.41667 6.58333Z" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path></svg></button></div><pre class="refractor language-shell"><code class="language-shell">tailscale completion <span class="token function">bash</span> <span class="token operator">></span> <span class="token variable"><span class="token variable">$(</span>brew --prefix<span class="token variable">)</span></span>/etc/bash_completion.d/tailscale </code></pre></div></div></div></div> <h2 id="command-reference"><a class="group flex items-center gap-2" href="#command-reference"><span id="inner-text">Command Reference</span><span aria-hidden="true" class="inline-block opacity-0 transition-opacity duration-150 group-hover:opacity-100"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-link-2"><path d="M15 7h3a5 5 0 0 1 5 5 5 5 0 0 1-5 5h-3m-6 0H6a5 5 0 0 1-5-5 5 5 0 0 1 5-5h3"></path><line x1="8" y1="12" x2="16" y2="12"></line></svg></span></a></h2> <h3 id="up"><a class="group flex items-center gap-2" href="#up"><span id="inner-text">up</span><span aria-hidden="true" class="inline-block opacity-0 transition-opacity duration-150 group-hover:opacity-100"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-link-2"><path d="M15 7h3a5 5 0 0 1 5 5 5 5 0 0 1-5 5h-3m-6 0H6a5 5 0 0 1-5-5 5 5 0 0 1 5-5h3"></path><line x1="8" y1="12" x2="16" y2="12"></line></svg></span></a></h3> <p>Connect your device to Tailscale and authenticate if needed.</p> <div class="group relative overflow-hidden"><div class="absolute right-[5px] top-[21px] flex h-10 w-10 items-center justify-center rounded bg-grey-3 text-black opacity-0 transition-opacity duration-200 group-hover:opacity-100"><button type="button" aria-label="copy"><svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M12.8333 9.91667H14.0833C15.0038 9.91667 15.75 9.1705 15.75 8.25V2.41667C15.75 1.49619 15.0038 0.75 14.0833 0.75H8.25C7.3295 0.75 6.58333 1.49619 6.58333 2.41667V3.66667M2.41667 6.58333H8.25C9.1705 6.58333 9.91667 7.3295 9.91667 8.25V14.0833C9.91667 15.0038 9.1705 15.75 8.25 15.75H2.41667C1.49619 15.75 0.75 15.0038 0.75 14.0833V8.25C0.75 7.3295 1.49619 6.58333 2.41667 6.58333Z" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path></svg></button></div><pre class="refractor language-shell"><code class="language-shell">tailscale up <span class="token punctuation">[</span>flags<span class="token punctuation">]</span> </code></pre></div> <p>Running <code>tailscale up</code> without any flags connects to Tailscale.</p> <p>Common flags:</p> <ul> <li><code>--accept-routes</code> Accept <a href="/kb/1019/subnets">subnet routes</a> that other nodes advertise. Linux devices default to not accepting routes.</li> <li><code>--advertise-exit-node</code> Offer to be an <a href="/kb/1103/exit-nodes">exit node</a> for outbound internet traffic from the Tailscale network. Defaults to not offering to be an exit node.</li> <li><code>--advertise-routes=<ip></code> Expose physical <a href="/kb/1019/subnets">subnet routes</a> to your entire Tailscale network.</li> <li><code>--exit-node=<ip|name></code> Provide a <a href="/kb/1033/ip-and-dns-addresses">Tailscale IP</a> or <a href="/kb/1098/machine-names">machine name</a> to use as an exit node. To disable the use of an exit node, pass the flag with an empty argument: <code>--exit-node=</code>.</li> <li><code>--exit-node-allow-lan-access</code> Allow the client node access to its own LAN while connected to an exit node. Defaults to not allowing access while connected to an exit node.</li> <li><code>--force-reauth</code> Force re-authentication.</li> <li><code>--snat-subnet-routes</code> (Linux only) Disable source NAT. In normal operations, a subnet device sees the traffic originating from the subnet router. This simplifies routing, but does not allow traversing multiple networks. By disabling source NAT, the end machine sees the LAN IP address of the originating machine as the source.</li> <li><code>--stateful-filtering</code> Enable stateful filtering for <a href="/kb/1019/subnets">subnet routers</a> and <a href="/kb/1103/exit-nodes">exit nodes</a>. When enabled, inbound packets with another node's destination IP are dropped, unless they are a part of a tracked outbound connection from that node. Defaults to disabled.</li> <li><code>--shields-up</code> <a href="/kb/1072/client-preferences">Block incoming connections</a> from other devices on your Tailscale network. Useful for personal devices that only make outgoing connections.</li> <li><code>--ssh</code> Run a <a href="/kb/1193/tailscale-ssh">Tailscale SSH</a> server, permitting access per the tailnet admin's declared <a href="/kb/1018/acls">access policy</a>, or the <a href="/kb/1192/acl-samples#allow-all-default-acl">default policy</a> if none is defined. Defaults to false.</li> </ul> <p>For a complete list of available flags, refer to the <a href="/kb/1241/tailscale-up"><code>tailscale up</code></a> topic.</p> <h3 id="down"><a class="group flex items-center gap-2" href="#down"><span id="inner-text">down</span><span aria-hidden="true" class="inline-block opacity-0 transition-opacity duration-150 group-hover:opacity-100"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-link-2"><path d="M15 7h3a5 5 0 0 1 5 5 5 5 0 0 1-5 5h-3m-6 0H6a5 5 0 0 1-5-5 5 5 0 0 1 5-5h3"></path><line x1="8" y1="12" x2="16" y2="12"></line></svg></span></a></h3> <p>Disconnect from Tailscale. Running this command is the same as choosing to disconnect from or quit a Tailscale client.</p> <div class="group relative overflow-hidden"><div class="absolute right-[5px] top-[21px] flex h-10 w-10 items-center justify-center rounded bg-grey-3 text-black opacity-0 transition-opacity duration-200 group-hover:opacity-100"><button type="button" aria-label="copy"><svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M12.8333 9.91667H14.0833C15.0038 9.91667 15.75 9.1705 15.75 8.25V2.41667C15.75 1.49619 15.0038 0.75 14.0833 0.75H8.25C7.3295 0.75 6.58333 1.49619 6.58333 2.41667V3.66667M2.41667 6.58333H8.25C9.1705 6.58333 9.91667 7.3295 9.91667 8.25V14.0833C9.91667 15.0038 9.1705 15.75 8.25 15.75H2.41667C1.49619 15.75 0.75 15.0038 0.75 14.0833V8.25C0.75 7.3295 1.49619 6.58333 2.41667 6.58333Z" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path></svg></button></div><pre class="refractor language-shell"><code class="language-shell">tailscale down </code></pre></div> <p>When disconnected, you cannot reach devices over Tailscale. To reconnect, re-run <code>tailscale up</code> without any flags.</p> <p>Available flags:</p> <ul> <li><code>--accept-risk=<risk></code> Accept risk and skip confirmation for risk type. This can be either <code>lose-ssh</code> or <code>all</code>, or an empty string to not accept risk.</li> </ul> <h3 id="bugreport"><a class="group flex items-center gap-2" href="#bugreport"><span id="inner-text">bugreport</span><span aria-hidden="true" class="inline-block opacity-0 transition-opacity duration-150 group-hover:opacity-100"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-link-2"><path d="M15 7h3a5 5 0 0 1 5 5 5 5 0 0 1-5 5h-3m-6 0H6a5 5 0 0 1-5-5 5 5 0 0 1 5-5h3"></path><line x1="8" y1="12" x2="16" y2="12"></line></svg></span></a></h3> <div class="note border-grey-200 relative mt-4 rounded border border-solid pb-2 pl-9 pr-3 pt-3 text-base leading-normal tracking-tight md:text-sm"><span class="absolute left-3 top-3 inline-block h-[18px] w-[18px]"><svg xmlns="http://www.w3.org/2000/svg" width="18px" height="18px" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle><line x1="12" y1="16" x2="12" y2="12"></line><line x1="12" y1="8" x2="12.01" y2="8"></line></svg></span><p>The <code>bugreport</code> command is available in Tailscale v1.8 or later. If you don't see this command, consider <a href="/kb/1067/update">updating</a> your Tailscale client.</p></div> <p>Generate a bug report with diagnostic information.</p> <p>The <code>bugreport</code> command makes it easier to report bugs to the Tailscale team by marking diagnostic logs with indicators to make triage easier.</p> <p>If you encounter a connectivity issue, run <code>tailscale bugreport</code> on the device experiencing the issue at the time you encounter it. This command prints a random identifier into diagnostic logs, which you can share with our team.</p> <p>Identifiers look like this:</p> <div class="group relative overflow-hidden"><div class="absolute right-[5px] top-[21px] flex h-10 w-10 items-center justify-center rounded bg-grey-3 text-black opacity-0 transition-opacity duration-200 group-hover:opacity-100"><button type="button" aria-label="copy"><svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M12.8333 9.91667H14.0833C15.0038 9.91667 15.75 9.1705 15.75 8.25V2.41667C15.75 1.49619 15.0038 0.75 14.0833 0.75H8.25C7.3295 0.75 6.58333 1.49619 6.58333 2.41667V3.66667M2.41667 6.58333H8.25C9.1705 6.58333 9.91667 7.3295 9.91667 8.25V14.0833C9.91667 15.0038 9.1705 15.75 8.25 15.75H2.41667C1.49619 15.75 0.75 15.0038 0.75 14.0833V8.25C0.75 7.3295 1.49619 6.58333 2.41667 6.58333Z" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path></svg></button></div><pre class="refractor language-shell"><code class="language-shell">$ tailscale bugreport BUG-1b7641a16971a9cd75822c0ed8043fee70ae88cf05c52981dc220eb96a5c49a8-20210427151443Z-fbcd4fd3a4b7ad94 </code></pre></div> <p>This command shares no personally identifiable information and is unused unless you share the bug identifier with our team.</p> <p>Available flags:</p> <ul> <li><code>--diagnose</code> Prints additional verbose information about the system to the Tailscale logs after generating a <code>bugreport</code> identifier, which can then be viewed by our support team. Defaults to <code>false</code>.</li> <li><code>--record</code> Pause and then write another <code>bugreport</code>. Use this flag to create an initial <code>bugreport</code> identifier. During the pause, perform the action that reproduces your issue. Then, press Enter to create a second <code>bugreport</code> identifier. Share both bug identifiers with our team. Defaults to <code>false</code>.</li> </ul> <h3 id="cert"><a class="group flex items-center gap-2" href="#cert"><span id="inner-text">cert</span><span aria-hidden="true" class="inline-block opacity-0 transition-opacity duration-150 group-hover:opacity-100"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-link-2"><path d="M15 7h3a5 5 0 0 1 5 5 5 5 0 0 1-5 5h-3m-6 0H6a5 5 0 0 1-5-5 5 5 0 0 1 5-5h3"></path><line x1="8" y1="12" x2="16" y2="12"></line></svg></span></a></h3> <p>Generate Let's Encrypt certificate and key files on the host for <a href="/kb/1153/enabling-https">HTTPS certificates</a> in your tailnet.</p> <div class="note border-grey-200 relative mt-4 rounded border border-solid pb-2 pl-9 pr-3 pt-3 text-base leading-normal tracking-tight md:text-sm"><span class="absolute left-3 top-3 inline-block h-[18px] w-[18px]"><svg xmlns="http://www.w3.org/2000/svg" width="18px" height="18px" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle><line x1="12" y1="16" x2="12" y2="12"></line><line x1="12" y1="8" x2="12.01" y2="8"></line></svg></span><p>If you are trying to serve a folder of files or reverse proxy to an HTTP service, use the <a href="#serve"><code>tailscale serve</code></a> command instead.</p></div> <div class="group relative overflow-hidden"><div class="absolute right-[5px] top-[21px] flex h-10 w-10 items-center justify-center rounded bg-grey-3 text-black opacity-0 transition-opacity duration-200 group-hover:opacity-100"><button type="button" aria-label="copy"><svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M12.8333 9.91667H14.0833C15.0038 9.91667 15.75 9.1705 15.75 8.25V2.41667C15.75 1.49619 15.0038 0.75 14.0833 0.75H8.25C7.3295 0.75 6.58333 1.49619 6.58333 2.41667V3.66667M2.41667 6.58333H8.25C9.1705 6.58333 9.91667 7.3295 9.91667 8.25V14.0833C9.91667 15.0038 9.1705 15.75 8.25 15.75H2.41667C1.49619 15.75 0.75 15.0038 0.75 14.0833V8.25C0.75 7.3295 1.49619 6.58333 2.41667 6.58333Z" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path></svg></button></div><pre class="refractor language-shell"><code class="language-shell">tailscale cert hostname.tails-scales.ts.net </code></pre></div> <p>Alternatively, if you want to save the certificate and private key to files, you can use the <code>--cert-file</code> and <code>--key-file</code> arguments:</p> <div class="group relative overflow-hidden"><div class="absolute right-[5px] top-[21px] flex h-10 w-10 items-center justify-center rounded bg-grey-3 text-black opacity-0 transition-opacity duration-200 group-hover:opacity-100"><button type="button" aria-label="copy"><svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M12.8333 9.91667H14.0833C15.0038 9.91667 15.75 9.1705 15.75 8.25V2.41667C15.75 1.49619 15.0038 0.75 14.0833 0.75H8.25C7.3295 0.75 6.58333 1.49619 6.58333 2.41667V3.66667M2.41667 6.58333H8.25C9.1705 6.58333 9.91667 7.3295 9.91667 8.25V14.0833C9.91667 15.0038 9.1705 15.75 8.25 15.75H2.41667C1.49619 15.75 0.75 15.0038 0.75 14.0833V8.25C0.75 7.3295 1.49619 6.58333 2.41667 6.58333Z" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path></svg></button></div><pre class="refractor language-shell"><code class="language-shell">tailscale cert --cert-file<span class="token operator">=</span>cert.pem --key-file<span class="token operator">=</span>key.pem hostname.tails-scales.ts.net </code></pre></div> <p>The certificates provided by Let's Encrypt have a 90-day expiry and require periodic renewal. When a certificate is delivered as files on disk which you then move to an install location, such as when using <code>tailscale cert</code>, the <a href="/kb/1278/tailscaled"><code>tailscaled</code> daemon</a> doesn't know where to place a renewed certificate or how to install it. As a result, you are responsible for renewing any certificates that you create using <code>tailscale cert</code>.</p> <p>If a certificate is handled without the user initiating any file-based certificate installation (such as when using the <a href="https://github.com/tailscale/caddy-tailscale">Caddy integration of Tailscale</a>) then the certificate will automatically renew without the user doing anything.</p> <p>Available flags:</p> <ul> <li><code>--cert-file=<cert></code> Specify the certificate output path.</li> <li><code>--key-file=<key></code> Specify the private key output path.</li> <li><code>--min-validity=<duration></code> Request a specified minimum remaining validity on the returned certificate. <code>duration</code> can be any value parseable by <a href="https://pkg.go.dev/time#ParseDuration"><code>time.ParseDuration()</code></a>. For example, use <code>120h</code> to set the duration to five days.</li> </ul> <div class="note border-grey-200 relative mt-4 rounded border border-solid pb-2 pl-9 pr-3 pt-3 text-base leading-normal tracking-tight md:text-sm"><span class="absolute left-3 top-3 inline-block h-[18px] w-[18px]"><svg xmlns="http://www.w3.org/2000/svg" width="18px" height="18px" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle><line x1="12" y1="16" x2="12" y2="12"></line><line x1="12" y1="8" x2="12.01" y2="8"></line></svg></span><p>The <code>--min-validity</code> flag lets you ensure that the returned certificate is valid for at least the specified duration. If you specify a duration longer than the <a href="https://letsencrypt.org/docs/faq#what-is-the-lifetime-for-let-s-encrypt-certificates-for-how-long-are-they-valid">certification lifetime set by Let's Encyrpt</a>, it uses the maximum lifetime set by Let's Encrypt.</p></div> <h3 id="dns"><a class="group flex items-center gap-2" href="#dns"><span id="inner-text">dns</span><span aria-hidden="true" class="inline-block opacity-0 transition-opacity duration-150 group-hover:opacity-100"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-link-2"><path d="M15 7h3a5 5 0 0 1 5 5 5 5 0 0 1-5 5h-3m-6 0H6a5 5 0 0 1-5-5 5 5 0 0 1 5-5h3"></path><line x1="8" y1="12" x2="16" y2="12"></line></svg></span></a></h3> <p>The <code>dns</code> command lets you access <a href="/kb/1054/dns">Tailscale DNS settings</a>. It's available in Tailscale v1.74.0 and later.</p> <p>Subcommands:</p> <ul> <li><code>status</code> Print the configuration of the local DNS forwarder and the tailnet-wide <a href="/kb/1081/magicdns">MagicDNS</a> configuration.</li> </ul> <h3 id="completion"><a class="group flex items-center gap-2" href="#completion"><span id="inner-text">completion</span><span aria-hidden="true" class="inline-block opacity-0 transition-opacity duration-150 group-hover:opacity-100"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-link-2"><path d="M15 7h3a5 5 0 0 1 5 5 5 5 0 0 1-5 5h-3m-6 0H6a5 5 0 0 1-5-5 5 5 0 0 1 5-5h3"></path><line x1="8" y1="12" x2="16" y2="12"></line></svg></span></a></h3> <p>Configure tab-completion for the Tailscale CLI.</p> <div class="group relative overflow-hidden"><div class="absolute right-[5px] top-[21px] flex h-10 w-10 items-center justify-center rounded bg-grey-3 text-black opacity-0 transition-opacity duration-200 group-hover:opacity-100"><button type="button" aria-label="copy"><svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M12.8333 9.91667H14.0833C15.0038 9.91667 15.75 9.1705 15.75 8.25V2.41667C15.75 1.49619 15.0038 0.75 14.0833 0.75H8.25C7.3295 0.75 6.58333 1.49619 6.58333 2.41667V3.66667M2.41667 6.58333H8.25C9.1705 6.58333 9.91667 7.3295 9.91667 8.25V14.0833C9.91667 15.0038 9.1705 15.75 8.25 15.75H2.41667C1.49619 15.75 0.75 15.0038 0.75 14.0833V8.25C0.75 7.3295 1.49619 6.58333 2.41667 6.58333Z" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path></svg></button></div><pre class="refractor language-shell"><code class="language-shell">tailscale completion <span class="token operator"><</span>subcommand<span class="token operator">></span> <span class="token punctuation">[</span>flags<span class="token punctuation">]</span> </code></pre></div> <p>Subcommands:</p> <ul> <li><code>bash</code> Configure tab-completion for the <code>bash</code> shell.</li> <li><code>zsh</code> Configure tab-completion for the <code>zsh</code> shell.</li> <li><code>fish</code> Configure tab-completion for the <code>fish</code> shell.</li> <li><code>powershell</code> Configure tab-completion for PowerShell.</li> </ul> <p>Available flags:</p> <ul> <li><code>--flags=<true|false></code> Configure whether to suggest flags (in addition to subcommands). Set to <code>true</code> by default.</li> <li><code>--descs=<true|false></code> Configure whether to include descriptions of subcommands in the suggestions. Set to <code>true</code> by default.</li> </ul> <h3 id="configure"><a class="group flex items-center gap-2" href="#configure"><span id="inner-text">configure</span><span aria-hidden="true" class="inline-block opacity-0 transition-opacity duration-150 group-hover:opacity-100"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-link-2"><path d="M15 7h3a5 5 0 0 1 5 5 5 5 0 0 1-5 5h-3m-6 0H6a5 5 0 0 1-5-5 5 5 0 0 1 5-5h3"></path><line x1="8" y1="12" x2="16" y2="12"></line></svg></span></a></h3> <p>Configure resources that you want to include in your tailnet.</p> <div class="group relative overflow-hidden"><div class="absolute right-[5px] top-[21px] flex h-10 w-10 items-center justify-center rounded bg-grey-3 text-black opacity-0 transition-opacity duration-200 group-hover:opacity-100"><button type="button" aria-label="copy"><svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M12.8333 9.91667H14.0833C15.0038 9.91667 15.75 9.1705 15.75 8.25V2.41667C15.75 1.49619 15.0038 0.75 14.0833 0.75H8.25C7.3295 0.75 6.58333 1.49619 6.58333 2.41667V3.66667M2.41667 6.58333H8.25C9.1705 6.58333 9.91667 7.3295 9.91667 8.25V14.0833C9.91667 15.0038 9.1705 15.75 8.25 15.75H2.41667C1.49619 15.75 0.75 15.0038 0.75 14.0833V8.25C0.75 7.3295 1.49619 6.58333 2.41667 6.58333Z" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path></svg></button></div><pre class="refractor language-shell"><code class="language-shell">tailscale configure <span class="token operator"><</span>subcommands<span class="token operator">></span> </code></pre></div> <p>Subcommands:</p> <ul> <li><code>kubeconfig</code> (alpha) Configure kubectl to connect to a Kubernetes cluster using Tailscale.</li> <li><code>synology</code> Configure Synology to enable outbound connections needed for Tailscale.</li> <li><code>sysext</code> Activate, deactivate, or manage the state of the Tailscale <a href="/kb/1340/macos-sysext">system extension</a> on the <a href="/kb/1065/macos-variants#standalone-variant">Standalone variant</a> of macOS.</li> </ul> <p>Available flags for <code>sysext</code>:</p> <ul> <li><code>activate</code> Register the Tailscale system extension with macOS.</li> <li><code>deactivate</code> Deactivate the Tailscale system extension on macOS</li> <li><code>status</code> Print the enablement status of the Tailscale system extension.</li> </ul> <p>Examples:</p> <ul> <li>To configure your local <code>kubeconfig</code> file for authentication with a Kubernetes auth proxy:</li> </ul> <div class="group relative overflow-hidden"><div class="absolute right-[5px] top-[21px] flex h-10 w-10 items-center justify-center rounded bg-grey-3 text-black opacity-0 transition-opacity duration-200 group-hover:opacity-100"><button type="button" aria-label="copy"><svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M12.8333 9.91667H14.0833C15.0038 9.91667 15.75 9.1705 15.75 8.25V2.41667C15.75 1.49619 15.0038 0.75 14.0833 0.75H8.25C7.3295 0.75 6.58333 1.49619 6.58333 2.41667V3.66667M2.41667 6.58333H8.25C9.1705 6.58333 9.91667 7.3295 9.91667 8.25V14.0833C9.91667 15.0038 9.1705 15.75 8.25 15.75H2.41667C1.49619 15.75 0.75 15.0038 0.75 14.0833V8.25C0.75 7.3295 1.49619 6.58333 2.41667 6.58333Z" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path></svg></button></div><pre class="refractor language-shell"><code class="language-shell">tailscale configure kubeconfig <span class="token operator"><</span>hostname-or-fqdn<span class="token operator">></span> </code></pre></div> <ul> <li>To configure Synology to enable outbound connections:</li> </ul> <div class="group relative overflow-hidden"><div class="absolute right-[5px] top-[21px] flex h-10 w-10 items-center justify-center rounded bg-grey-3 text-black opacity-0 transition-opacity duration-200 group-hover:opacity-100"><button type="button" aria-label="copy"><svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M12.8333 9.91667H14.0833C15.0038 9.91667 15.75 9.1705 15.75 8.25V2.41667C15.75 1.49619 15.0038 0.75 14.0833 0.75H8.25C7.3295 0.75 6.58333 1.49619 6.58333 2.41667V3.66667M2.41667 6.58333H8.25C9.1705 6.58333 9.91667 7.3295 9.91667 8.25V14.0833C9.91667 15.0038 9.1705 15.75 8.25 15.75H2.41667C1.49619 15.75 0.75 15.0038 0.75 14.0833V8.25C0.75 7.3295 1.49619 6.58333 2.41667 6.58333Z" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path></svg></button></div><pre class="refractor language-shell"><code class="language-shell">tailscale configure synology </code></pre></div> <h3 id="exit-node"><a class="group flex items-center gap-2" href="#exit-node"><span id="inner-text">exit-node</span><span aria-hidden="true" class="inline-block opacity-0 transition-opacity duration-150 group-hover:opacity-100"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-link-2"><path d="M15 7h3a5 5 0 0 1 5 5 5 5 0 0 1-5 5h-3m-6 0H6a5 5 0 0 1-5-5 5 5 0 0 1 5-5h3"></path><line x1="8" y1="12" x2="16" y2="12"></line></svg></span></a></h3> <p>Get information about <a href="/kb/1103/exit-nodes">exit-nodes</a> in your tailnet.</p> <div class="group relative overflow-hidden"><div class="absolute right-[5px] top-[21px] flex h-10 w-10 items-center justify-center rounded bg-grey-3 text-black opacity-0 transition-opacity duration-200 group-hover:opacity-100"><button type="button" aria-label="copy"><svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M12.8333 9.91667H14.0833C15.0038 9.91667 15.75 9.1705 15.75 8.25V2.41667C15.75 1.49619 15.0038 0.75 14.0833 0.75H8.25C7.3295 0.75 6.58333 1.49619 6.58333 2.41667V3.66667M2.41667 6.58333H8.25C9.1705 6.58333 9.91667 7.3295 9.91667 8.25V14.0833C9.91667 15.0038 9.1705 15.75 8.25 15.75H2.41667C1.49619 15.75 0.75 15.0038 0.75 14.0833V8.25C0.75 7.3295 1.49619 6.58333 2.41667 6.58333Z" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path></svg></button></div><pre class="refractor language-shell"><code class="language-shell">tailscale exit-node <span class="token operator"><</span>subcommands<span class="token operator">></span> </code></pre></div> <p>Available subcommands:</p> <ul> <li><code>list</code> Lists the exit nodes in your tailnet.</li> <li><code>suggest</code> Suggests a <a href="/kb/1392/auto-exit-nodes">recommended exit node</a>.</li> </ul> <h3 id="file"><a class="group flex items-center gap-2" href="#file"><span id="inner-text">file</span><span aria-hidden="true" class="inline-block opacity-0 transition-opacity duration-150 group-hover:opacity-100"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-link-2"><path d="M15 7h3a5 5 0 0 1 5 5 5 5 0 0 1-5 5h-3m-6 0H6a5 5 0 0 1-5-5 5 5 0 0 1 5-5h3"></path><line x1="8" y1="12" x2="16" y2="12"></line></svg></span></a></h3> <p>Access and make files available to <a href="/kb/1106/taildrop">Taildrop</a>.</p> <p>Available flags:</p> <ul> <li><code>cp</code> Copy files to a host</li> <li><code>get</code> Move files out of the Tailscale file inbox</li> </ul> <h3 id="funnel"><a class="group flex items-center gap-2" href="#funnel"><span id="inner-text">funnel</span><span aria-hidden="true" class="inline-block opacity-0 transition-opacity duration-150 group-hover:opacity-100"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-link-2"><path d="M15 7h3a5 5 0 0 1 5 5 5 5 0 0 1-5 5h-3m-6 0H6a5 5 0 0 1-5-5 5 5 0 0 1 5-5h3"></path><line x1="8" y1="12" x2="16" y2="12"></line></svg></span></a></h3> <p>Serve content and local servers from your Tailscale node to the internet.</p> <p>To limit local service access to your tailnet, use the <a href="#serve"><code>serve</code></a> command.</p> <div class="group relative overflow-hidden"><div class="absolute right-[5px] top-[21px] flex h-10 w-10 items-center justify-center rounded bg-grey-3 text-black opacity-0 transition-opacity duration-200 group-hover:opacity-100"><button type="button" aria-label="copy"><svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M12.8333 9.91667H14.0833C15.0038 9.91667 15.75 9.1705 15.75 8.25V2.41667C15.75 1.49619 15.0038 0.75 14.0833 0.75H8.25C7.3295 0.75 6.58333 1.49619 6.58333 2.41667V3.66667M2.41667 6.58333H8.25C9.1705 6.58333 9.91667 7.3295 9.91667 8.25V14.0833C9.91667 15.0038 9.1705 15.75 8.25 15.75H2.41667C1.49619 15.75 0.75 15.0038 0.75 14.0833V8.25C0.75 7.3295 1.49619 6.58333 2.41667 6.58333Z" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path></svg></button></div><pre class="refractor language-shell"><code class="language-shell">tailscale funnel <span class="token operator"><</span>target<span class="token operator">></span> tailscale funnel <span class="token operator"><</span>subcommand<span class="token operator">></span> <span class="token punctuation">[</span>flags<span class="token punctuation">]</span> <span class="token operator"><</span>args<span class="token operator">></span> </code></pre></div> <p>Subcommands:</p> <ul> <li><a href="/kb/1311/tailscale-funnel#view-the-status"><code>status</code></a> Shows the status</li> <li><a href="/kb/1311/tailscale-funnel#reset-tailscale-funnel"><code>reset</code></a> Resets the configuration</li> </ul> <p>For more information, refer to the <a href="/kb/1311/tailscale-funnel"><code>tailscale funnel</code></a> topic.</p> <h3 id="ip"><a class="group flex items-center gap-2" href="#ip"><span id="inner-text">ip</span><span aria-hidden="true" class="inline-block opacity-0 transition-opacity duration-150 group-hover:opacity-100"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-link-2"><path d="M15 7h3a5 5 0 0 1 5 5 5 5 0 0 1-5 5h-3m-6 0H6a5 5 0 0 1-5-5 5 5 0 0 1 5-5h3"></path><line x1="8" y1="12" x2="16" y2="12"></line></svg></span></a></h3> <p>Get a device's Tailscale IP address.</p> <div class="group relative overflow-hidden"><div class="absolute right-[5px] top-[21px] flex h-10 w-10 items-center justify-center rounded bg-grey-3 text-black opacity-0 transition-opacity duration-200 group-hover:opacity-100"><button type="button" aria-label="copy"><svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M12.8333 9.91667H14.0833C15.0038 9.91667 15.75 9.1705 15.75 8.25V2.41667C15.75 1.49619 15.0038 0.75 14.0833 0.75H8.25C7.3295 0.75 6.58333 1.49619 6.58333 2.41667V3.66667M2.41667 6.58333H8.25C9.1705 6.58333 9.91667 7.3295 9.91667 8.25V14.0833C9.91667 15.0038 9.1705 15.75 8.25 15.75H2.41667C1.49619 15.75 0.75 15.0038 0.75 14.0833V8.25C0.75 7.3295 1.49619 6.58333 2.41667 6.58333Z" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path></svg></button></div><pre class="refractor language-shell"><code class="language-shell">tailscale <span class="token function">ip</span> <span class="token punctuation">[</span>flags<span class="token punctuation">]</span> <span class="token punctuation">[</span><span class="token operator"><</span>hostname<span class="token operator">></span><span class="token punctuation">]</span> </code></pre></div> <p>By default, this command returns both an <a href="/kb/1033/ip-and-dns-addresses"><code>100.x.y.z</code> IPv4 address</a> and an IPv6 address for the current device. You can return only an IPv4 or IPv6 address by passing either the <code>-4</code> or <code>-6</code> flags.</p> <div class="group relative overflow-hidden"><div class="absolute right-[5px] top-[21px] flex h-10 w-10 items-center justify-center rounded bg-grey-3 text-black opacity-0 transition-opacity duration-200 group-hover:opacity-100"><button type="button" aria-label="copy"><svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M12.8333 9.91667H14.0833C15.0038 9.91667 15.75 9.1705 15.75 8.25V2.41667C15.75 1.49619 15.0038 0.75 14.0833 0.75H8.25C7.3295 0.75 6.58333 1.49619 6.58333 2.41667V3.66667M2.41667 6.58333H8.25C9.1705 6.58333 9.91667 7.3295 9.91667 8.25V14.0833C9.91667 15.0038 9.1705 15.75 8.25 15.75H2.41667C1.49619 15.75 0.75 15.0038 0.75 14.0833V8.25C0.75 7.3295 1.49619 6.58333 2.41667 6.58333Z" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path></svg></button></div><pre class="refractor language-shell"><code class="language-shell">$ tailscale <span class="token function">ip</span> -4 <span class="token number">100.121</span>.112.23 </code></pre></div> <p>You can also find the Tailscale IP for other devices on your network by adding the device hostname after the command. For example:</p> <div class="group relative overflow-hidden"><div class="absolute right-[5px] top-[21px] flex h-10 w-10 items-center justify-center rounded bg-grey-3 text-black opacity-0 transition-opacity duration-200 group-hover:opacity-100"><button type="button" aria-label="copy"><svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M12.8333 9.91667H14.0833C15.0038 9.91667 15.75 9.1705 15.75 8.25V2.41667C15.75 1.49619 15.0038 0.75 14.0833 0.75H8.25C7.3295 0.75 6.58333 1.49619 6.58333 2.41667V3.66667M2.41667 6.58333H8.25C9.1705 6.58333 9.91667 7.3295 9.91667 8.25V14.0833C9.91667 15.0038 9.1705 15.75 8.25 15.75H2.41667C1.49619 15.75 0.75 15.0038 0.75 14.0833V8.25C0.75 7.3295 1.49619 6.58333 2.41667 6.58333Z" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path></svg></button></div><pre class="refractor language-shell"><code class="language-shell">$ tailscale <span class="token function">ip</span> raspberrypi <span class="token number">100.126</span>.153.111 fd7a:115c:a1e0:ab12:4843:cd96:627e:9975 </code></pre></div> <p>Available flags:</p> <ul> <li><code>-4</code> Only return an IPv4 address</li> <li><code>-6</code> Only return an IPv6 address</li> <li><code>-1</code> Only return one address, preferring IPv4</li> </ul> <h3 id="lock"><a class="group flex items-center gap-2" href="#lock"><span id="inner-text">lock</span><span aria-hidden="true" class="inline-block opacity-0 transition-opacity duration-150 group-hover:opacity-100"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-link-2"><path d="M15 7h3a5 5 0 0 1 5 5 5 5 0 0 1-5 5h-3m-6 0H6a5 5 0 0 1-5-5 5 5 0 0 1 5-5h3"></path><line x1="8" y1="12" x2="16" y2="12"></line></svg></span></a></h3> <p>Manage <a href="/kb/1226/tailnet-lock">tailnet lock</a> for your tailnet.</p> <div class="group relative overflow-hidden"><div class="absolute right-[5px] top-[21px] flex h-10 w-10 items-center justify-center rounded bg-grey-3 text-black opacity-0 transition-opacity duration-200 group-hover:opacity-100"><button type="button" aria-label="copy"><svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M12.8333 9.91667H14.0833C15.0038 9.91667 15.75 9.1705 15.75 8.25V2.41667C15.75 1.49619 15.0038 0.75 14.0833 0.75H8.25C7.3295 0.75 6.58333 1.49619 6.58333 2.41667V3.66667M2.41667 6.58333H8.25C9.1705 6.58333 9.91667 7.3295 9.91667 8.25V14.0833C9.91667 15.0038 9.1705 15.75 8.25 15.75H2.41667C1.49619 15.75 0.75 15.0038 0.75 14.0833V8.25C0.75 7.3295 1.49619 6.58333 2.41667 6.58333Z" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path></svg></button></div><pre class="refractor language-shell"><code class="language-shell">tailscale lock <span class="token operator"><</span>subcommand<span class="token operator">></span> <span class="token punctuation">[</span>flags<span class="token punctuation">]</span> <span class="token operator"><</span>args<span class="token operator">></span> </code></pre></div> <p>Common subcommands:</p> <ul> <li><a href="/kb/1243/tailscale-lock#lock-init"><code>init</code></a> Initializes tailnet lock.</li> <li><a href="/kb/1243/tailscale-lock#lock-status"><code>status</code></a> Outputs the state of tailnet lock.</li> <li><a href="/kb/1243/tailscale-lock#lock-add"><code>add</code></a> Adds one or more trusted signing keys to tailnet lock.</li> <li><a href="/kb/1243/tailscale-lock#lock-remove"><code>remove</code></a> Removes one or more trusted signing keys from tailnet lock.</li> <li><a href="/kb/1243/tailscale-lock#lock-sign"><code>sign</code></a> Signs a node key and transmits the signature to the coordination server.</li> </ul> <p>Running <code>tailnet lock</code> with no subcommand and no arguments is equivalent to running <a href="/kb/1243/tailscale-lock#lock-status"><code>tailscale lock status</code></a>.</p> <p>For a complete list of subcommands and flags, refer to the <a href="/kb/1243/tailscale-lock"><code>tailscale lock</code></a> topic.</p> <h3 id="login"><a class="group flex items-center gap-2" href="#login"><span id="inner-text">login</span><span aria-hidden="true" class="inline-block opacity-0 transition-opacity duration-150 group-hover:opacity-100"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-link-2"><path d="M15 7h3a5 5 0 0 1 5 5 5 5 0 0 1-5 5h-3m-6 0H6a5 5 0 0 1-5-5 5 5 0 0 1 5-5h3"></path><line x1="8" y1="12" x2="16" y2="12"></line></svg></span></a></h3> <p>Log into Tailscale (and add this device to your Tailscale network). For more information about logging in, refer to <a href="/kb/1225/fast-user-switching">fast-user-switching</a>.</p> <div class="group relative overflow-hidden"><div class="absolute right-[5px] top-[21px] flex h-10 w-10 items-center justify-center rounded bg-grey-3 text-black opacity-0 transition-opacity duration-200 group-hover:opacity-100"><button type="button" aria-label="copy"><svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M12.8333 9.91667H14.0833C15.0038 9.91667 15.75 9.1705 15.75 8.25V2.41667C15.75 1.49619 15.0038 0.75 14.0833 0.75H8.25C7.3295 0.75 6.58333 1.49619 6.58333 2.41667V3.66667M2.41667 6.58333H8.25C9.1705 6.58333 9.91667 7.3295 9.91667 8.25V14.0833C9.91667 15.0038 9.1705 15.75 8.25 15.75H2.41667C1.49619 15.75 0.75 15.0038 0.75 14.0833V8.25C0.75 7.3295 1.49619 6.58333 2.41667 6.58333Z" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path></svg></button></div><pre class="refractor language-shell"><code class="language-shell">tailscale login <span class="token punctuation">[</span>flags<span class="token punctuation">]</span> </code></pre></div> <p>Available flags:</p> <ul> <li><code>--accept-dns</code> Accept <a href="/kb/1054/dns">DNS configuration</a> from the admin console. Defaults to accepting DNS settings.</li> <li><code>--accept-routes</code> Accept <a href="/kb/1019/subnets">subnet routes</a> that other nodes advertise. Linux devices default to not accepting routes.</li> <li><code>--advertise-exit-node</code> Offer to be an <a href="/kb/1103/exit-nodes">exit node</a> for outbound internet traffic from the Tailscale network. Defaults to not offering to be an exit node.</li> <li><code>--advertise-routes=<ip></code> Expose physical <a href="/kb/1019/subnets">subnet routes</a> to your entire Tailscale network.</li> <li><code>--advertise-tags=<tags></code> Give tagged permissions to this device. You must be <a href="/kb/1337/acl-syntax#tag-owners">listed in <code>"TagOwners"</code></a> to be able to apply tags.</li> <li><code>--auth-key=<key></code> Provide an <a href="/kb/1085/auth-keys">auth key</a> to automatically authenticate the node as your user account.</li> <li><code>--exit-node=<ip|name></code> Provide a <a href="/kb/1033/ip-and-dns-addresses">Tailscale IP</a> or <a href="/kb/1098/machine-names">machine name</a> to use as an exit node. To disable the use of an exit node, pass the flag with an empty argument: <code>--exit-node=</code>.</li> <li><code>--exit-node-allow-lan-access</code> Allow the client node access to its own LAN while connected to an exit node. Defaults to not allowing access while connected to an exit node.</li> <li><code>--hostname=<name></code> Provide a hostname to use for the device instead of the one provided by the OS. Note that this will change the machine name used in <a href="/kb/1081/magicdns">MagicDNS</a>.</li> <li><code>--login-server=<url></code> Provide the base URL of a control server instead of <code>https://controlplane.tailscale.com</code>. If you are using <a href="/blog/opensource#the-open-source-coordination-server">Headscale</a> for your control server, use your Headscale instance's URL.</li> <li><code>--nickname=<name></code> <a href="/kb/1225/fast-user-switching#setting-a-nickname">Nickname</a> for the current account.</li> <li><code>--operator=<user></code> Provide a Unix username other than <code>root</code> to operate <code>tailscaled</code>.</li> <li><code>--qr</code> Generate a QR code for the web login URL. Defaults to not showing a QR code.</li> <li><code>--stateful-filtering</code> Enable stateful filtering for <a href="/kb/1019/subnets">subnet routers</a> and <a href="/kb/1103/exit-nodes">exit nodes</a>. When enabled, inbound packets with another node's destination IP are dropped, unless they are a part of a tracked outbound connection from that node. Defaults to disabled.</li> <li><code>--shields-up</code> <a href="/kb/1072/client-preferences">Block incoming connections</a> from other devices on your Tailscale network. Useful for personal devices that only make outgoing connections.</li> <li><code>--ssh</code> Run a <a href="/kb/1193/tailscale-ssh">Tailscale SSH</a> server, permitting access per the tailnet admin's declared <a href="/kb/1018/acls">access policy</a>, or the <a href="/kb/1192/acl-samples#allow-all-default-acl">default policy</a> if none is defined. Defaults to false.</li> <li><code>--timeout=<duration></code> Maximum amount of time to wait for the Tailscale service to initialize. <code>duration</code> can be any value parseable by <a href="https://pkg.go.dev/time#ParseDuration"><code>time.ParseDuration()</code></a>. Defaults to <code>0s</code>, which blocks forever.</li> <li><code>--unattended</code>(Windows only) Run in <a href="/kb/1088/run-unattended">unattended mode</a> where Tailscale keeps running even after the current user logs out.</li> </ul> <h3 id="logout"><a class="group flex items-center gap-2" href="#logout"><span id="inner-text">logout</span><span aria-hidden="true" class="inline-block opacity-0 transition-opacity duration-150 group-hover:opacity-100"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-link-2"><path d="M15 7h3a5 5 0 0 1 5 5 5 5 0 0 1-5 5h-3m-6 0H6a5 5 0 0 1-5-5 5 5 0 0 1 5-5h3"></path><line x1="8" y1="12" x2="16" y2="12"></line></svg></span></a></h3> <p>Disconnect from Tailscale and expire the current log in. The next time you run <code>tailscale up</code>, you'll need to reauthenticate your device.</p> <div class="group relative overflow-hidden"><div class="absolute right-[5px] top-[21px] flex h-10 w-10 items-center justify-center rounded bg-grey-3 text-black opacity-0 transition-opacity duration-200 group-hover:opacity-100"><button type="button" aria-label="copy"><svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M12.8333 9.91667H14.0833C15.0038 9.91667 15.75 9.1705 15.75 8.25V2.41667C15.75 1.49619 15.0038 0.75 14.0833 0.75H8.25C7.3295 0.75 6.58333 1.49619 6.58333 2.41667V3.66667M2.41667 6.58333H8.25C9.1705 6.58333 9.91667 7.3295 9.91667 8.25V14.0833C9.91667 15.0038 9.1705 15.75 8.25 15.75H2.41667C1.49619 15.75 0.75 15.0038 0.75 14.0833V8.25C0.75 7.3295 1.49619 6.58333 2.41667 6.58333Z" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path></svg></button></div><pre class="refractor language-shell"><code class="language-shell">tailscale <span class="token builtin class-name">logout</span> </code></pre></div> <p>If you run <code>tailscale logout</code> on an <a href="/kb/1111/ephemeral-nodes">ephemeral node</a>, the node will be removed from your tailnet immediately.</p> <h3 id="metrics"><a class="group flex items-center gap-2" href="#metrics"><span id="inner-text">metrics</span><span aria-hidden="true" class="inline-block opacity-0 transition-opacity duration-150 group-hover:opacity-100"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-link-2"><path d="M15 7h3a5 5 0 0 1 5 5 5 5 0 0 1-5 5h-3m-6 0H6a5 5 0 0 1-5-5 5 5 0 0 1 5-5h3"></path><line x1="8" y1="12" x2="16" y2="12"></line></svg></span></a></h3> <p>Expose and collect <a href="/kb/1482/client-metrics">Tailscale client metrics</a> for use with third-party monitoring systems.</p> <div class="group relative overflow-hidden"><div class="absolute right-[5px] top-[21px] flex h-10 w-10 items-center justify-center rounded bg-grey-3 text-black opacity-0 transition-opacity duration-200 group-hover:opacity-100"><button type="button" aria-label="copy"><svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M12.8333 9.91667H14.0833C15.0038 9.91667 15.75 9.1705 15.75 8.25V2.41667C15.75 1.49619 15.0038 0.75 14.0833 0.75H8.25C7.3295 0.75 6.58333 1.49619 6.58333 2.41667V3.66667M2.41667 6.58333H8.25C9.1705 6.58333 9.91667 7.3295 9.91667 8.25V14.0833C9.91667 15.0038 9.1705 15.75 8.25 15.75H2.41667C1.49619 15.75 0.75 15.0038 0.75 14.0833V8.25C0.75 7.3295 1.49619 6.58333 2.41667 6.58333Z" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path></svg></button></div><pre class="refractor language-shell"><code class="language-shell">tailscale metrics </code></pre></div> <p>Subcommands:</p> <ul> <li><code>print</code> Shows client metrics in the current terminal session</li> <li><code>write</code> Writes metric values to a text file</li> </ul> <h3 id="netcheck"><a class="group flex items-center gap-2" href="#netcheck"><span id="inner-text">netcheck</span><span aria-hidden="true" class="inline-block opacity-0 transition-opacity duration-150 group-hover:opacity-100"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-link-2"><path d="M15 7h3a5 5 0 0 1 5 5 5 5 0 0 1-5 5h-3m-6 0H6a5 5 0 0 1-5-5 5 5 0 0 1 5-5h3"></path><line x1="8" y1="12" x2="16" y2="12"></line></svg></span></a></h3> <p>Get a report on your current physical network conditions. This command is provided to help debug connection troubles.</p> <div class="group relative overflow-hidden"><div class="absolute right-[5px] top-[21px] flex h-10 w-10 items-center justify-center rounded bg-grey-3 text-black opacity-0 transition-opacity duration-200 group-hover:opacity-100"><button type="button" aria-label="copy"><svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M12.8333 9.91667H14.0833C15.0038 9.91667 15.75 9.1705 15.75 8.25V2.41667C15.75 1.49619 15.0038 0.75 14.0833 0.75H8.25C7.3295 0.75 6.58333 1.49619 6.58333 2.41667V3.66667M2.41667 6.58333H8.25C9.1705 6.58333 9.91667 7.3295 9.91667 8.25V14.0833C9.91667 15.0038 9.1705 15.75 8.25 15.75H2.41667C1.49619 15.75 0.75 15.0038 0.75 14.0833V8.25C0.75 7.3295 1.49619 6.58333 2.41667 6.58333Z" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path></svg></button></div><pre class="refractor language-shell"><code class="language-shell">tailscale netcheck </code></pre></div> <p><code>netcheck</code> will output a report like this:</p> <div class="group relative overflow-hidden"><div class="absolute right-[5px] top-[21px] flex h-10 w-10 items-center justify-center rounded bg-grey-3 text-black opacity-0 transition-opacity duration-200 group-hover:opacity-100"><button type="button" aria-label="copy"><svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M12.8333 9.91667H14.0833C15.0038 9.91667 15.75 9.1705 15.75 8.25V2.41667C15.75 1.49619 15.0038 0.75 14.0833 0.75H8.25C7.3295 0.75 6.58333 1.49619 6.58333 2.41667V3.66667M2.41667 6.58333H8.25C9.1705 6.58333 9.91667 7.3295 9.91667 8.25V14.0833C9.91667 15.0038 9.1705 15.75 8.25 15.75H2.41667C1.49619 15.75 0.75 15.0038 0.75 14.0833V8.25C0.75 7.3295 1.49619 6.58333 2.41667 6.58333Z" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path></svg></button></div><pre class="refractor language-shell"><code class="language-shell">Report: * Time: <span class="token number">2025</span>-03-13T16:35:03.336481Z * UDP: <span class="token boolean">true</span> * IPv4: yes, <span class="token operator"><</span>ipv4-address<span class="token operator">></span> * IPv6: yes, <span class="token operator"><</span>ipv6-address<span class="token operator">></span> * MappingVariesByDestIP: <span class="token boolean">false</span> * PortMapping: * Nearest DERP: Seattle * DERP latency: - sea: <span class="token number">24</span>.2ms <span class="token punctuation">(</span>Seattle<span class="token punctuation">)</span> - sfo: <span class="token number">50</span>.5ms <span class="token punctuation">(</span>San Francisco<span class="token punctuation">)</span> - lax: <span class="token number">57</span>.2ms <span class="token punctuation">(</span>Los Angeles<span class="token punctuation">)</span> - den: <span class="token number">58</span>.5ms <span class="token punctuation">(</span>Denver<span class="token punctuation">)</span> - dfw: 63ms <span class="token punctuation">(</span>Dallas<span class="token punctuation">)</span> - ord: <span class="token number">73</span>.3ms <span class="token punctuation">(</span>Chicago<span class="token punctuation">)</span> </code></pre></div> <p>(In the example output, the list of <a href="/kb/1232/derp-servers">DERP servers</a> is truncated for brevity.)</p> <ul> <li><strong>UDP</strong> shows whether UDP traffic is enabled on the current network. If this is false, it's unlikely Tailscale will be able to make point-to-point connections, and will instead rely on our <a href="/kb/1232/derp-servers">encrypted TCP relays (DERP)</a></li> <li><strong>IPv4</strong> and <strong>IPv6</strong> show your network public IP addresses and support for both protocols.</li> <li><strong>MappingVariesByDestIP</strong> describes whether your device is behind a difficult NAT that varies the device's IP address depending on the destination.</li> <li><strong>HairPinning</strong> describes whether your router can route connections from endpoints on your LAN back to your LAN using those endpoints' globally-mapped IPv4 addresses/ports.</li> <li><strong>PortMapping</strong> describes a list of which three port-mapping services exist on your router. Possible values are "UPnP", "NAT-PMP", and "PCP".</li> <li><strong>DERP latency</strong> and <strong>Nearest DERP</strong> describe latency from our <a href="/kb/1232/derp-servers">encrypted TCP relays (DERP)</a>. The lowest latency ("nearest") server is used for traffic.</li> </ul> <p>If any fields are blank, it means Tailscale wasn't able to measure that network property.</p> <p>All the information from <code>tailscale netcheck</code> is also available in the <a href="https://login.tailscale.com/admin/machines">admin console</a>, by selecting a particular machine.</p> <h3 id="version"><a class="group flex items-center gap-2" href="#version"><span id="inner-text">version</span><span aria-hidden="true" class="inline-block opacity-0 transition-opacity duration-150 group-hover:opacity-100"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-link-2"><path d="M15 7h3a5 5 0 0 1 5 5 5 5 0 0 1-5 5h-3m-6 0H6a5 5 0 0 1-5-5 5 5 0 0 1 5-5h3"></path><line x1="8" y1="12" x2="16" y2="12"></line></svg></span></a></h3> <p>Print the version of Tailscale.</p> <div class="group relative overflow-hidden"><div class="absolute right-[5px] top-[21px] flex h-10 w-10 items-center justify-center rounded bg-grey-3 text-black opacity-0 transition-opacity duration-200 group-hover:opacity-100"><button type="button" aria-label="copy"><svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M12.8333 9.91667H14.0833C15.0038 9.91667 15.75 9.1705 15.75 8.25V2.41667C15.75 1.49619 15.0038 0.75 14.0833 0.75H8.25C7.3295 0.75 6.58333 1.49619 6.58333 2.41667V3.66667M2.41667 6.58333H8.25C9.1705 6.58333 9.91667 7.3295 9.91667 8.25V14.0833C9.91667 15.0038 9.1705 15.75 8.25 15.75H2.41667C1.49619 15.75 0.75 15.0038 0.75 14.0833V8.25C0.75 7.3295 1.49619 6.58333 2.41667 6.58333Z" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path></svg></button></div><pre class="refractor language-shell"><code class="language-shell">tailscale version <span class="token punctuation">[</span>flags<span class="token punctuation">]</span> </code></pre></div> <p>Available flags:</p> <ul> <li><code>--daemon</code> Also print local node's daemon version. Defaults to false.</li> <li><code>--json</code> Return a machine-readable JSON response.</li> <li><code>--upstream</code> Print the latest upstream release version from pkgs.tailscale.com. Defaults to false.</li> </ul> <div class="note relative mt-4 rounded border border-solid border-green-300 bg-green-50 pb-2 pl-9 pr-3 pt-3 text-base leading-normal tracking-tight md:text-sm"><span class="absolute left-3 top-3 inline-block h-[18px] w-[18px] text-green-700"><svg xmlns="http://www.w3.org/2000/svg" width="18px" height="18px" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M22 11.08V12a10 10 0 1 1-5.93-9.14"></path><polyline points="22 4 12 14.01 9 11.01"></polyline></svg></span><p>Running <code>tailscale version</code> also prints other information, including the Go version. Here's an example of the output:</p><div class="group relative overflow-hidden"><div class="absolute right-[5px] top-[21px] flex h-10 w-10 items-center justify-center rounded bg-grey-3 text-black opacity-0 transition-opacity duration-200 group-hover:opacity-100"><button type="button" aria-label="copy"><svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M12.8333 9.91667H14.0833C15.0038 9.91667 15.75 9.1705 15.75 8.25V2.41667C15.75 1.49619 15.0038 0.75 14.0833 0.75H8.25C7.3295 0.75 6.58333 1.49619 6.58333 2.41667V3.66667M2.41667 6.58333H8.25C9.1705 6.58333 9.91667 7.3295 9.91667 8.25V14.0833C9.91667 15.0038 9.1705 15.75 8.25 15.75H2.41667C1.49619 15.75 0.75 15.0038 0.75 14.0833V8.25C0.75 7.3295 1.49619 6.58333 2.41667 6.58333Z" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path></svg></button></div><pre class="refractor language-shell"><code class="language-shell">tailscale version <span class="token number">1.72</span>.0 tailscale commit: 9a0f00ea8ed08d1a94b357fb232ac9d44a512664 other commit: 387e0b40ad87031fb4444372ee80a97156e8deb9 go version: go1.22.5 </code></pre></div></div> <h3 id="ping"><a class="group flex items-center gap-2" href="#ping"><span id="inner-text">ping</span><span aria-hidden="true" class="inline-block opacity-0 transition-opacity duration-150 group-hover:opacity-100"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-link-2"><path d="M15 7h3a5 5 0 0 1 5 5 5 5 0 0 1-5 5h-3m-6 0H6a5 5 0 0 1-5-5 5 5 0 0 1 5-5h3"></path><line x1="8" y1="12" x2="16" y2="12"></line></svg></span></a></h3> <p>Attempt to ping another device exclusively over Tailscale.</p> <p>The regular <code>ping</code> command often works fine over Tailscale, but <code>tailscale ping</code> provides more details about the connection over Tailscale that can be helpful when troubleshooting connectivity.</p> <div class="group relative overflow-hidden"><div class="absolute right-[5px] top-[21px] flex h-10 w-10 items-center justify-center rounded bg-grey-3 text-black opacity-0 transition-opacity duration-200 group-hover:opacity-100"><button type="button" aria-label="copy"><svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M12.8333 9.91667H14.0833C15.0038 9.91667 15.75 9.1705 15.75 8.25V2.41667C15.75 1.49619 15.0038 0.75 14.0833 0.75H8.25C7.3295 0.75 6.58333 1.49619 6.58333 2.41667V3.66667M2.41667 6.58333H8.25C9.1705 6.58333 9.91667 7.3295 9.91667 8.25V14.0833C9.91667 15.0038 9.1705 15.75 8.25 15.75H2.41667C1.49619 15.75 0.75 15.0038 0.75 14.0833V8.25C0.75 7.3295 1.49619 6.58333 2.41667 6.58333Z" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path></svg></button></div><pre class="refractor language-shell"><code class="language-shell">tailscale <span class="token function">ping</span> <span class="token operator"><</span>hostname-or-ip<span class="token operator">></span> </code></pre></div> <p>You can call <code>tailscale ping</code> using either a <a href="/kb/1033/ip-and-dns-addresses">100.x.y.z address</a> or a <a href="/kb/1098/machine-names">machine name</a>.</p> <p>Available flags:</p> <ul> <li><code>--c</code> Maximum number of pings to send. Defaults to 10.</li> <li><code>--icmp</code>, <code>--icmp=false</code> Perform an ICMP-level ping (through WireGuard, but not the local host OS stack). Defaults to false.</li> <li><code>--peerapi</code>, <code>--peerapi=false</code> Try hitting the peer's PeerAPI HTTP server. Defaults to false.</li> <li><code>--tsmp</code>, <code>--tsmp=false</code> Perform a TSMP-level ping (through WireGuard, but not either host's OS stack). Defaults to false.</li> <li><code>--timeout=<duration></code> Maximum amount of time to wait before giving up on a ping. <code>duration</code> can be any value parseable by <a href="https://pkg.go.dev/time#ParseDuration"><code>time.ParseDuration()</code></a>. Defaults to <code>5s</code>.</li> <li><code>--until-direct</code>, <code>--until-direct=false</code> Stop once a direct path is established. Defaults to true.</li> <li><code>--verbose</code>, <code>--verbose=false</code> Show verbose output. Defaults to false.</li> </ul> <div class="note relative mt-4 rounded border border-solid border-green-300 bg-green-50 pb-2 pl-9 pr-3 pt-3 text-base leading-normal tracking-tight md:text-sm"><span class="absolute left-3 top-3 inline-block h-[18px] w-[18px] text-green-700"><svg xmlns="http://www.w3.org/2000/svg" width="18px" height="18px" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M22 11.08V12a10 10 0 1 1-5.93-9.14"></path><polyline points="22 4 12 14.01 9 11.01"></polyline></svg></span><p>There are <a href="/kb/1465/ping-types">four types of ping messages</a> supported by the <code>tailscale ping</code> command.</p></div> <h3 id="serve"><a class="group flex items-center gap-2" href="#serve"><span id="inner-text">serve</span><span aria-hidden="true" class="inline-block opacity-0 transition-opacity duration-150 group-hover:opacity-100"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-link-2"><path d="M15 7h3a5 5 0 0 1 5 5 5 5 0 0 1-5 5h-3m-6 0H6a5 5 0 0 1-5-5 5 5 0 0 1 5-5h3"></path><line x1="8" y1="12" x2="16" y2="12"></line></svg></span></a></h3> <p>Serve content and local servers from your Tailscale node to your tailnet.</p> <p>To publicly share the local service to the internet, use the <a href="#funnel"><code>funnel</code></a> command.</p> <div class="group relative overflow-hidden"><div class="absolute right-[5px] top-[21px] flex h-10 w-10 items-center justify-center rounded bg-grey-3 text-black opacity-0 transition-opacity duration-200 group-hover:opacity-100"><button type="button" aria-label="copy"><svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M12.8333 9.91667H14.0833C15.0038 9.91667 15.75 9.1705 15.75 8.25V2.41667C15.75 1.49619 15.0038 0.75 14.0833 0.75H8.25C7.3295 0.75 6.58333 1.49619 6.58333 2.41667V3.66667M2.41667 6.58333H8.25C9.1705 6.58333 9.91667 7.3295 9.91667 8.25V14.0833C9.91667 15.0038 9.1705 15.75 8.25 15.75H2.41667C1.49619 15.75 0.75 15.0038 0.75 14.0833V8.25C0.75 7.3295 1.49619 6.58333 2.41667 6.58333Z" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path></svg></button></div><pre class="refractor language-shell"><code class="language-shell">tailscale serve <span class="token operator"><</span>target<span class="token operator">></span> tailscale serve <span class="token operator"><</span>subcommand<span class="token operator">></span> <span class="token punctuation">[</span>flags<span class="token punctuation">]</span> <span class="token operator"><</span>args<span class="token operator">></span> </code></pre></div> <p>Subcommands:</p> <ul> <li><a href="/kb/1242/tailscale-serve#view-the-status"><code>status</code></a> Shows the status</li> <li><a href="/kb/1242/tailscale-serve#reset-tailscale-serve"><code>reset</code></a> Resets the configuration</li> </ul> <p>For more information, refer to the <a href="/kb/1242/tailscale-serve"><code>tailscale serve</code></a> topic.</p> <h3 id="set"><a class="group flex items-center gap-2" href="#set"><span id="inner-text">set</span><span aria-hidden="true" class="inline-block opacity-0 transition-opacity duration-150 group-hover:opacity-100"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-link-2"><path d="M15 7h3a5 5 0 0 1 5 5 5 5 0 0 1-5 5h-3m-6 0H6a5 5 0 0 1-5-5 5 5 0 0 1 5-5h3"></path><line x1="8" y1="12" x2="16" y2="12"></line></svg></span></a></h3> <p>Change specified preferences.</p> <p>Unlike <a href="#up"><code>tailscale up</code></a>, this command does not require the complete set of desired settings. It only updates the settings you explicitly set. There are no default values. Note that when using <a href="/kb/1225/fast-user-switching">Fast User Switching</a>, changes made are only for the currently connected tailnet.</p> <div class="group relative overflow-hidden"><div class="absolute right-[5px] top-[21px] flex h-10 w-10 items-center justify-center rounded bg-grey-3 text-black opacity-0 transition-opacity duration-200 group-hover:opacity-100"><button type="button" aria-label="copy"><svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M12.8333 9.91667H14.0833C15.0038 9.91667 15.75 9.1705 15.75 8.25V2.41667C15.75 1.49619 15.0038 0.75 14.0833 0.75H8.25C7.3295 0.75 6.58333 1.49619 6.58333 2.41667V3.66667M2.41667 6.58333H8.25C9.1705 6.58333 9.91667 7.3295 9.91667 8.25V14.0833C9.91667 15.0038 9.1705 15.75 8.25 15.75H2.41667C1.49619 15.75 0.75 15.0038 0.75 14.0833V8.25C0.75 7.3295 1.49619 6.58333 2.41667 6.58333Z" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path></svg></button></div><pre class="refractor language-shell"><code class="language-shell">tailscale <span class="token builtin class-name">set</span> <span class="token punctuation">[</span>flags<span class="token punctuation">]</span> </code></pre></div> <p>Available flags:</p> <ul> <li><code>--accept-dns</code> Accept <a href="/kb/1054/dns">DNS configuration</a> from the admin console.</li> <li><code>--accept-risk=<risk></code> Accept risk and skip confirmation for risk type. This can be either <code>lose-ssh</code> or <code>all</code>, or an empty string to not accept risk.</li> <li><code>--accept-routes</code>, <code>--accept-routes=false</code> Accept <a href="/kb/1019/subnets">subnet routes</a> that other nodes advertise.</li> <li><code>--advertise-exit-node</code>, <code>--advertise-exit-node=false</code> Offer to be an exit node for internet traffic for the tailnet.</li> <li><code>--advertise-routes=<ip></code> Expose physical <a href="/kb/1019/subnets">subnet routes</a> to your entire Tailscale network. This is a comma-separated string, such as "10.0.0.0/8,192.168.0.0/24"), or an empty string to not advertise routes.</li> <li><code>--auto-update</code>, <code>--auto-update=false</code> Enable or disable <a href="/kb/1067/update#auto-updates">auto-updates</a> for the client.</li> <li><code>--exit-node <ip|name></code> A <a href="/kb/1033/ip-and-dns-addresses">Tailscale IP</a> or <a href="/kb/1098/machine-names">machine name</a> to use as an exit node, or an empty string to not use an exit node.</li> <li><code>--exit-node-allow-lan-access</code>, <code>--exit-node-allow-lan-access=false</code> Allow the client node access to its own LAN while connected to an exit node.</li> <li><code>--hostname=<name></code> Hostname to use for the device instead of the one provided by the OS. Note that this will change the machine name used in <a href="/kb/1081/magicdns">MagicDNS</a>.</li> <li><code>--nickname=<name></code> <a href="/kb/1225/fast-user-switching#setting-a-nickname">Nickname</a> for the current account.</li> <li><code>--operator=<user></code> A Unix username other than <code>root</code> to operate <code>tailscaled</code>.</li> <li><code>--shields-up</code>, <code>--shields-up=false</code> <a href="/kb/1072/client-preferences">Block incoming connections</a> from other devices on your Tailscale network. Useful for personal devices that only make outgoing connections.</li> <li><code>--ssh</code>, <code>--ssh=false</code> Run a <a href="/kb/1193/tailscale-ssh">Tailscale SSH</a> server, permitting access per the tailnet admin's declared <a href="/kb/1018/acls">access policy</a>, or the <a href="/kb/1192/acl-samples#allow-all-default-acl">default policy</a> if none is defined.</li> <li><code>--webclient</code>, <code>--webclient=false</code> Expose the <a href="/kb/1325/device-web-interface">web interface</a> to your tailnet persistently in the background on port <code>:5252.</code></li> </ul> <h3 id="ssh"><a class="group flex items-center gap-2" href="#ssh"><span id="inner-text">ssh</span><span aria-hidden="true" class="inline-block opacity-0 transition-opacity duration-150 group-hover:opacity-100"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-link-2"><path d="M15 7h3a5 5 0 0 1 5 5 5 5 0 0 1-5 5h-3m-6 0H6a5 5 0 0 1-5-5 5 5 0 0 1 5-5h3"></path><line x1="8" y1="12" x2="16" y2="12"></line></svg></span></a></h3> <p>Establish a <a href="/kb/1193/tailscale-ssh">Tailscale SSH</a> session to a Tailscale machine.</p> <p>You can often use the regular <code>ssh</code> command or another SSH client to make an SSH session to a Tailscale machine. However, when your local node is in <a href="/kb/1177/kernel-vs-userspace-routers#userspace-netstack-mode">userspace-networking</a> mode and can't make a direct connection, use <code>tailscale ssh</code>. This sets up an SSH <code>ProxyCommand</code> to connect through the local <code>tailscaled</code> daemon. You can also use <code>tailscale ssh</code> when your local node is in <a href="/kb/1177/kernel-vs-userspace-routers#kernel-mode">kernel</a> mode.</p> <p>The <code>tailscale ssh</code> command automatically checks the destination server's SSH host key against the node's SSH host key as advertised via the Tailscale coordination server.</p> <div class="group relative overflow-hidden"><div class="absolute right-[5px] top-[21px] flex h-10 w-10 items-center justify-center rounded bg-grey-3 text-black opacity-0 transition-opacity duration-200 group-hover:opacity-100"><button type="button" aria-label="copy"><svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M12.8333 9.91667H14.0833C15.0038 9.91667 15.75 9.1705 15.75 8.25V2.41667C15.75 1.49619 15.0038 0.75 14.0833 0.75H8.25C7.3295 0.75 6.58333 1.49619 6.58333 2.41667V3.66667M2.41667 6.58333H8.25C9.1705 6.58333 9.91667 7.3295 9.91667 8.25V14.0833C9.91667 15.0038 9.1705 15.75 8.25 15.75H2.41667C1.49619 15.75 0.75 15.0038 0.75 14.0833V8.25C0.75 7.3295 1.49619 6.58333 2.41667 6.58333Z" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path></svg></button></div><pre class="refractor language-shell"><code class="language-shell">tailscale <span class="token function">ssh</span> <span class="token operator"><</span>args<span class="token operator">></span> </code></pre></div> <p><code><args></code> is one of the following forms:</p> <ul> <li><code>host</code> The destination server. An interactive session will prompt you for the user name to use for the session.</li> <li><code>user@host</code> The user name for the session and the destination server.</li> </ul> <p>For both forms, <code>host</code> can be the destination server's <a href="/kb/1081/magicdns">MagicDNS</a> name (even if <code>--accept-dns=false</code> was set on the local node) or the destination server's <a href="/kb/1033/ip-and-dns-addresses">Tailscale IP address</a>.</p> <div class="note border-grey-200 relative mt-4 rounded border border-solid pb-2 pl-9 pr-3 pt-3 text-base leading-normal tracking-tight md:text-sm"><span class="absolute left-3 top-3 inline-block h-[18px] w-[18px]"><svg xmlns="http://www.w3.org/2000/svg" width="18px" height="18px" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle><line x1="12" y1="16" x2="12" y2="12"></line><line x1="12" y1="8" x2="12.01" y2="8"></line></svg></span><p><code>tailscale ssh</code> is not available on sandboxed macOS builds—use the regular <code>ssh</code> client instead.</p></div> <h3 id="status"><a class="group flex items-center gap-2" href="#status"><span id="inner-text">status</span><span aria-hidden="true" class="inline-block opacity-0 transition-opacity duration-150 group-hover:opacity-100"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-link-2"><path d="M15 7h3a5 5 0 0 1 5 5 5 5 0 0 1-5 5h-3m-6 0H6a5 5 0 0 1-5-5 5 5 0 0 1 5-5h3"></path><line x1="8" y1="12" x2="16" y2="12"></line></svg></span></a></h3> <p>Get the status of your connections to other Tailscale devices.</p> <div class="group relative overflow-hidden"><div class="absolute right-[5px] top-[21px] flex h-10 w-10 items-center justify-center rounded bg-grey-3 text-black opacity-0 transition-opacity duration-200 group-hover:opacity-100"><button type="button" aria-label="copy"><svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M12.8333 9.91667H14.0833C15.0038 9.91667 15.75 9.1705 15.75 8.25V2.41667C15.75 1.49619 15.0038 0.75 14.0833 0.75H8.25C7.3295 0.75 6.58333 1.49619 6.58333 2.41667V3.66667M2.41667 6.58333H8.25C9.1705 6.58333 9.91667 7.3295 9.91667 8.25V14.0833C9.91667 15.0038 9.1705 15.75 8.25 15.75H2.41667C1.49619 15.75 0.75 15.0038 0.75 14.0833V8.25C0.75 7.3295 1.49619 6.58333 2.41667 6.58333Z" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path></svg></button></div><pre class="refractor language-shell"><code class="language-shell">tailscale status </code></pre></div> <p>This command returns a table of information like so:</p> <div class="group relative overflow-hidden"><div class="absolute right-[5px] top-[21px] flex h-10 w-10 items-center justify-center rounded bg-grey-3 text-black opacity-0 transition-opacity duration-200 group-hover:opacity-100"><button type="button" aria-label="copy"><svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M12.8333 9.91667H14.0833C15.0038 9.91667 15.75 9.1705 15.75 8.25V2.41667C15.75 1.49619 15.0038 0.75 14.0833 0.75H8.25C7.3295 0.75 6.58333 1.49619 6.58333 2.41667V3.66667M2.41667 6.58333H8.25C9.1705 6.58333 9.91667 7.3295 9.91667 8.25V14.0833C9.91667 15.0038 9.1705 15.75 8.25 15.75H2.41667C1.49619 15.75 0.75 15.0038 0.75 14.0833V8.25C0.75 7.3295 1.49619 6.58333 2.41667 6.58333Z" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path></svg></button></div><pre class="refractor language-markup"><code class="language-markup">1 2 3 4 5 100.1.2.3 device-a apenwarr@ linux active; direct <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>ip-port</span><span class="token punctuation">></span></span>, tx 1116 rx 1124 100.4.5.6 device-b crawshaw@ macOS active; relay <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>relay-server</span><span class="token punctuation">></span></span>, tx 1351 rx 4262 100.7.8.9 device-c danderson@ windows idle; tx 1214 rx 50 100.0.1.2 device-d ross@ iOS — </code></pre></div> <p>From left-to-right, these columns represent:</p> <ul> <li>Column 1 is a <a href="/kb/1015/100.x-addresses"><strong>Tailscale IP</strong></a>, which you can use to connect to the device.</li> <li>Column 2 is the <a href="/kb/1098/machine-names"><strong>machine name</strong></a> of the device. If you use <a href="/kb/1081/magicdns">MagicDNS</a>, you can also use this name to connect.</li> <li>Column 3 is the <strong>email address</strong> for the owner of the device.</li> <li>Column 4 is the <strong>device OS</strong>.</li> <li>Column 5 shows the current <strong>connection status</strong>.</li> </ul> <p>Connection status (column 5) is shown using three terms:</p> <ul> <li><code>active</code> means traffic is currently being sent/received from this device. You'll also see either (a) "direct" for peer-to-peer connections, along with the IP address used to connect or (b) "relay" for connections using a <a href="/kb/1232/derp-servers">relay server</a> along with a city code (nyc, fra, tok, syd) for the respective location.</li> <li><code>idle</code> means traffic is not currently being sent/received from this device.</li> <li><code>–</code> means no traffic has ever been sent/received from this device.</li> </ul> <p><code>active</code> and <code>idle</code> connection statuses will also include tx/rx values indicating the number of bytes sent (tx) and received (rx) from this device.</p> <p>You can filter this list to only active connections by running <code>tailscale status --active</code>.</p> <p>Running <code>tailscale status</code> with the <code>--json</code> flag returns a machine-readable JSON response.</p> <div class="group relative overflow-hidden"><div class="absolute right-[5px] top-[21px] flex h-10 w-10 items-center justify-center rounded bg-grey-3 text-black opacity-0 transition-opacity duration-200 group-hover:opacity-100"><button type="button" aria-label="copy"><svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M12.8333 9.91667H14.0833C15.0038 9.91667 15.75 9.1705 15.75 8.25V2.41667C15.75 1.49619 15.0038 0.75 14.0833 0.75H8.25C7.3295 0.75 6.58333 1.49619 6.58333 2.41667V3.66667M2.41667 6.58333H8.25C9.1705 6.58333 9.91667 7.3295 9.91667 8.25V14.0833C9.91667 15.0038 9.1705 15.75 8.25 15.75H2.41667C1.49619 15.75 0.75 15.0038 0.75 14.0833V8.25C0.75 7.3295 1.49619 6.58333 2.41667 6.58333Z" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path></svg></button></div><pre class="refractor language-shell"><code class="language-shell">tailscale status --json </code></pre></div> <p>Combine this with <a href="https://stedolan.github.io/jq"><code>jq</code></a> to automate data collection about your network. For example, the following command counts and sorts the relay servers your Tailscale peers are connected to.</p> <div class="group relative overflow-hidden"><div class="absolute right-[5px] top-[21px] flex h-10 w-10 items-center justify-center rounded bg-grey-3 text-black opacity-0 transition-opacity duration-200 group-hover:opacity-100"><button type="button" aria-label="copy"><svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M12.8333 9.91667H14.0833C15.0038 9.91667 15.75 9.1705 15.75 8.25V2.41667C15.75 1.49619 15.0038 0.75 14.0833 0.75H8.25C7.3295 0.75 6.58333 1.49619 6.58333 2.41667V3.66667M2.41667 6.58333H8.25C9.1705 6.58333 9.91667 7.3295 9.91667 8.25V14.0833C9.91667 15.0038 9.1705 15.75 8.25 15.75H2.41667C1.49619 15.75 0.75 15.0038 0.75 14.0833V8.25C0.75 7.3295 1.49619 6.58333 2.41667 6.58333Z" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path></svg></button></div><pre class="refractor language-shell"><code class="language-shell">tailscale status --json <span class="token operator">|</span> jq -r <span class="token string">'.Peer[].Relay | select(.!="")'</span> <span class="token operator">|</span> <span class="token function">sort</span> <span class="token operator">|</span> <span class="token function">uniq</span> -c <span class="token operator">|</span> <span class="token function">sort</span> -nr </code></pre></div> <h3 id="switch"><a class="group flex items-center gap-2" href="#switch"><span id="inner-text">switch</span><span aria-hidden="true" class="inline-block opacity-0 transition-opacity duration-150 group-hover:opacity-100"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-link-2"><path d="M15 7h3a5 5 0 0 1 5 5 5 5 0 0 1-5 5h-3m-6 0H6a5 5 0 0 1-5-5 5 5 0 0 1 5-5h3"></path><line x1="8" y1="12" x2="16" y2="12"></line></svg></span></a></h3> <p>Switch to a different Tailscale account. For more information about switching accounts, refer to <a href="/kb/1225/fast-user-switching">fast-user-switching</a>.</p> <div class="group relative overflow-hidden"><div class="absolute right-[5px] top-[21px] flex h-10 w-10 items-center justify-center rounded bg-grey-3 text-black opacity-0 transition-opacity duration-200 group-hover:opacity-100"><button type="button" aria-label="copy"><svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M12.8333 9.91667H14.0833C15.0038 9.91667 15.75 9.1705 15.75 8.25V2.41667C15.75 1.49619 15.0038 0.75 14.0833 0.75H8.25C7.3295 0.75 6.58333 1.49619 6.58333 2.41667V3.66667M2.41667 6.58333H8.25C9.1705 6.58333 9.91667 7.3295 9.91667 8.25V14.0833C9.91667 15.0038 9.1705 15.75 8.25 15.75H2.41667C1.49619 15.75 0.75 15.0038 0.75 14.0833V8.25C0.75 7.3295 1.49619 6.58333 2.41667 6.58333Z" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path></svg></button></div><pre class="refractor language-shell"><code class="language-shell">tailscale switch <span class="token operator"><</span>account<span class="token operator">></span> <span class="token punctuation">[</span>flags<span class="token punctuation">]</span> </code></pre></div> <p>Examples:</p> <ul> <li> <p>To switch to the <a href="mailto:alice@example.com">alice@example.com</a> account:</p> <div class="group relative overflow-hidden"><div class="absolute right-[5px] top-[21px] flex h-10 w-10 items-center justify-center rounded bg-grey-3 text-black opacity-0 transition-opacity duration-200 group-hover:opacity-100"><button type="button" aria-label="copy"><svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M12.8333 9.91667H14.0833C15.0038 9.91667 15.75 9.1705 15.75 8.25V2.41667C15.75 1.49619 15.0038 0.75 14.0833 0.75H8.25C7.3295 0.75 6.58333 1.49619 6.58333 2.41667V3.66667M2.41667 6.58333H8.25C9.1705 6.58333 9.91667 7.3295 9.91667 8.25V14.0833C9.91667 15.0038 9.1705 15.75 8.25 15.75H2.41667C1.49619 15.75 0.75 15.0038 0.75 14.0833V8.25C0.75 7.3295 1.49619 6.58333 2.41667 6.58333Z" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path></svg></button></div><pre class="refractor language-shell"><code class="language-shell">tailscale switch alice@example.com </code></pre></div> </li> <li> <p>To switch to the account that has the <a href="/kb/1225/fast-user-switching#setting-a-nickname">nickname</a> "work":</p> <div class="group relative overflow-hidden"><div class="absolute right-[5px] top-[21px] flex h-10 w-10 items-center justify-center rounded bg-grey-3 text-black opacity-0 transition-opacity duration-200 group-hover:opacity-100"><button type="button" aria-label="copy"><svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M12.8333 9.91667H14.0833C15.0038 9.91667 15.75 9.1705 15.75 8.25V2.41667C15.75 1.49619 15.0038 0.75 14.0833 0.75H8.25C7.3295 0.75 6.58333 1.49619 6.58333 2.41667V3.66667M2.41667 6.58333H8.25C9.1705 6.58333 9.91667 7.3295 9.91667 8.25V14.0833C9.91667 15.0038 9.1705 15.75 8.25 15.75H2.41667C1.49619 15.75 0.75 15.0038 0.75 14.0833V8.25C0.75 7.3295 1.49619 6.58333 2.41667 6.58333Z" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path></svg></button></div><pre class="refractor language-shell"><code class="language-shell">tailscale switch work </code></pre></div> </li> </ul> <p>Available flags:</p> <ul> <li><code>--list</code> Lists available accounts.</li> </ul> <h3 id="syspolicy"><a class="group flex items-center gap-2" href="#syspolicy"><span id="inner-text">syspolicy</span><span aria-hidden="true" class="inline-block opacity-0 transition-opacity duration-150 group-hover:opacity-100"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-link-2"><path d="M15 7h3a5 5 0 0 1 5 5 5 5 0 0 1-5 5h-3m-6 0H6a5 5 0 0 1-5-5 5 5 0 0 1 5-5h3"></path><line x1="8" y1="12" x2="16" y2="12"></line></svg></span></a></h3> <p>List system policies, reload system policies, or view errors related to the <a href="/kb/1315/mdm-keys">system policies</a> configured in your tailnet.</p> <div class="group relative overflow-hidden"><div class="absolute right-[5px] top-[21px] flex h-10 w-10 items-center justify-center rounded bg-grey-3 text-black opacity-0 transition-opacity duration-200 group-hover:opacity-100"><button type="button" aria-label="copy"><svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M12.8333 9.91667H14.0833C15.0038 9.91667 15.75 9.1705 15.75 8.25V2.41667C15.75 1.49619 15.0038 0.75 14.0833 0.75H8.25C7.3295 0.75 6.58333 1.49619 6.58333 2.41667V3.66667M2.41667 6.58333H8.25C9.1705 6.58333 9.91667 7.3295 9.91667 8.25V14.0833C9.91667 15.0038 9.1705 15.75 8.25 15.75H2.41667C1.49619 15.75 0.75 15.0038 0.75 14.0833V8.25C0.75 7.3295 1.49619 6.58333 2.41667 6.58333Z" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path></svg></button></div><pre class="refractor language-shell"><code class="language-shell">tailscale syspolicy </code></pre></div> <p>Subcommands:</p> <ul> <li><code>list</code> Shows system policies, reload system policies, or view errors related to the <a href="/kb/1315/mdm-keys">system policies</a> configured on the device.</li> <li><code>reload</code> Forces the Tailscale client to reload and reapply system policy settings on the device.</li> </ul> <p>Available flags:</p> <ul> <li><code>-json</code> Return a machine-readable JSON response.</li> </ul> <h3 id="update"><a class="group flex items-center gap-2" href="#update"><span id="inner-text">update</span><span aria-hidden="true" class="inline-block opacity-0 transition-opacity duration-150 group-hover:opacity-100"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-link-2"><path d="M15 7h3a5 5 0 0 1 5 5 5 5 0 0 1-5 5h-3m-6 0H6a5 5 0 0 1-5-5 5 5 0 0 1 5-5h3"></path><line x1="8" y1="12" x2="16" y2="12"></line></svg></span></a></h3> <div class="note border-grey-200 relative mt-4 rounded border border-solid pb-2 pl-9 pr-3 pt-3 text-base leading-normal tracking-tight md:text-sm"><span class="absolute left-3 top-3 inline-block h-[18px] w-[18px]"><svg xmlns="http://www.w3.org/2000/svg" width="18px" height="18px" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle><line x1="12" y1="16" x2="12" y2="12"></line><line x1="12" y1="8" x2="12.01" y2="8"></line></svg></span><p>The <code>update</code> command is available in Tailscale v1.36 or later for Windows and Ubuntu/Debian Linux, in v1.48.0 or later for the Mac Apple Store version and Synology, and in v1.54.0 or later for QNAP and the <a href="/kb/1065/macos-variants/">Standalone variant of the macOS application</a>. If you don't see this command and you are running one of these operating systems, consider <a href="/kb/1067/update/">updating your Tailscale client</a>.</p></div> <p>Update the Tailscale client version to the latest version, or to a different version.</p> <div class="group relative overflow-hidden"><div class="absolute right-[5px] top-[21px] flex h-10 w-10 items-center justify-center rounded bg-grey-3 text-black opacity-0 transition-opacity duration-200 group-hover:opacity-100"><button type="button" aria-label="copy"><svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M12.8333 9.91667H14.0833C15.0038 9.91667 15.75 9.1705 15.75 8.25V2.41667C15.75 1.49619 15.0038 0.75 14.0833 0.75H8.25C7.3295 0.75 6.58333 1.49619 6.58333 2.41667V3.66667M2.41667 6.58333H8.25C9.1705 6.58333 9.91667 7.3295 9.91667 8.25V14.0833C9.91667 15.0038 9.1705 15.75 8.25 15.75H2.41667C1.49619 15.75 0.75 15.0038 0.75 14.0833V8.25C0.75 7.3295 1.49619 6.58333 2.41667 6.58333Z" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path></svg></button></div><pre class="refractor language-shell"><code class="language-shell">tailscale update <span class="token punctuation">[</span>flags<span class="token punctuation">]</span> </code></pre></div> <p>Available flags:</p> <ul> <li><code>--dry-run</code> Show what update would do, without performing the update and without prompting to start the update.</li> <li><code>--track</code> The track to check for updates, either "stable" or <a href="/kb/1083/install-unstable">"unstable"</a>. If not specified, the update uses the track currently in effect for the client.</li> <li><code>--version</code> An explicit version to use for the update or downgrade. You cannot specify both <code>--track</code> and <code>--version</code>.</li> <li><code>--yes</code> Perform the update without interactive prompts. Defaults to false.</li> </ul> <p>If you downgrade to a version that does not have the <code>tailscale update</code> functionality, you won't be able to run <code>tailscale update</code> to return to the prior version. You would need to <a href="/kb/1067/update">perform an update</a> without using the Tailscale CLI.</p> <p>To determine the current version on a client, run <a href="#version"><code>tailscale version</code></a>.</p> <p>Examples:</p> <p>Update to the latest version within your current track (stable or unstable, depending on what you're running):</p> <div class="group relative overflow-hidden"><div class="absolute right-[5px] top-[21px] flex h-10 w-10 items-center justify-center rounded bg-grey-3 text-black opacity-0 transition-opacity duration-200 group-hover:opacity-100"><button type="button" aria-label="copy"><svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M12.8333 9.91667H14.0833C15.0038 9.91667 15.75 9.1705 15.75 8.25V2.41667C15.75 1.49619 15.0038 0.75 14.0833 0.75H8.25C7.3295 0.75 6.58333 1.49619 6.58333 2.41667V3.66667M2.41667 6.58333H8.25C9.1705 6.58333 9.91667 7.3295 9.91667 8.25V14.0833C9.91667 15.0038 9.1705 15.75 8.25 15.75H2.41667C1.49619 15.75 0.75 15.0038 0.75 14.0833V8.25C0.75 7.3295 1.49619 6.58333 2.41667 6.58333Z" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path></svg></button></div><pre class="refractor language-shell"><code class="language-shell">tailscale update </code></pre></div> <p>Update to the latest version within your current track without using interactive prompts:</p> <div class="group relative overflow-hidden"><div class="absolute right-[5px] top-[21px] flex h-10 w-10 items-center justify-center rounded bg-grey-3 text-black opacity-0 transition-opacity duration-200 group-hover:opacity-100"><button type="button" aria-label="copy"><svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M12.8333 9.91667H14.0833C15.0038 9.91667 15.75 9.1705 15.75 8.25V2.41667C15.75 1.49619 15.0038 0.75 14.0833 0.75H8.25C7.3295 0.75 6.58333 1.49619 6.58333 2.41667V3.66667M2.41667 6.58333H8.25C9.1705 6.58333 9.91667 7.3295 9.91667 8.25V14.0833C9.91667 15.0038 9.1705 15.75 8.25 15.75H2.41667C1.49619 15.75 0.75 15.0038 0.75 14.0833V8.25C0.75 7.3295 1.49619 6.58333 2.41667 6.58333Z" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path></svg></button></div><pre class="refractor language-shell"><code class="language-shell">tailscale update --yes </code></pre></div> <p>Update to Tailscale v1.34:</p> <div class="group relative overflow-hidden"><div class="absolute right-[5px] top-[21px] flex h-10 w-10 items-center justify-center rounded bg-grey-3 text-black opacity-0 transition-opacity duration-200 group-hover:opacity-100"><button type="button" aria-label="copy"><svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M12.8333 9.91667H14.0833C15.0038 9.91667 15.75 9.1705 15.75 8.25V2.41667C15.75 1.49619 15.0038 0.75 14.0833 0.75H8.25C7.3295 0.75 6.58333 1.49619 6.58333 2.41667V3.66667M2.41667 6.58333H8.25C9.1705 6.58333 9.91667 7.3295 9.91667 8.25V14.0833C9.91667 15.0038 9.1705 15.75 8.25 15.75H2.41667C1.49619 15.75 0.75 15.0038 0.75 14.0833V8.25C0.75 7.3295 1.49619 6.58333 2.41667 6.58333Z" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path></svg></button></div><pre class="refractor language-shell"><code class="language-shell">tailscale update --version<span class="token operator">=</span><span class="token number">1.34</span>.0 </code></pre></div> <p>Update to the latest unstable version:</p> <div class="group relative overflow-hidden"><div class="absolute right-[5px] top-[21px] flex h-10 w-10 items-center justify-center rounded bg-grey-3 text-black opacity-0 transition-opacity duration-200 group-hover:opacity-100"><button type="button" aria-label="copy"><svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M12.8333 9.91667H14.0833C15.0038 9.91667 15.75 9.1705 15.75 8.25V2.41667C15.75 1.49619 15.0038 0.75 14.0833 0.75H8.25C7.3295 0.75 6.58333 1.49619 6.58333 2.41667V3.66667M2.41667 6.58333H8.25C9.1705 6.58333 9.91667 7.3295 9.91667 8.25V14.0833C9.91667 15.0038 9.1705 15.75 8.25 15.75H2.41667C1.49619 15.75 0.75 15.0038 0.75 14.0833V8.25C0.75 7.3295 1.49619 6.58333 2.41667 6.58333Z" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path></svg></button></div><pre class="refractor language-shell"><code class="language-shell">tailscale update --track<span class="token operator">=</span>unstable </code></pre></div> <h3 id="web"><a class="group flex items-center gap-2" href="#web"><span id="inner-text">web</span><span aria-hidden="true" class="inline-block opacity-0 transition-opacity duration-150 group-hover:opacity-100"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-link-2"><path d="M15 7h3a5 5 0 0 1 5 5 5 5 0 0 1-5 5h-3m-6 0H6a5 5 0 0 1-5-5 5 5 0 0 1 5-5h3"></path><line x1="8" y1="12" x2="16" y2="12"></line></svg></span></a></h3> <p>Start a web server for controlling the <code>tailscaled</code> daemon. Starting a web server is useful when the CLI or a native app is impractical (such as on NAS devices).</p> <div class="group relative overflow-hidden"><div class="absolute right-[5px] top-[21px] flex h-10 w-10 items-center justify-center rounded bg-grey-3 text-black opacity-0 transition-opacity duration-200 group-hover:opacity-100"><button type="button" aria-label="copy"><svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M12.8333 9.91667H14.0833C15.0038 9.91667 15.75 9.1705 15.75 8.25V2.41667C15.75 1.49619 15.0038 0.75 14.0833 0.75H8.25C7.3295 0.75 6.58333 1.49619 6.58333 2.41667V3.66667M2.41667 6.58333H8.25C9.1705 6.58333 9.91667 7.3295 9.91667 8.25V14.0833C9.91667 15.0038 9.1705 15.75 8.25 15.75H2.41667C1.49619 15.75 0.75 15.0038 0.75 14.0833V8.25C0.75 7.3295 1.49619 6.58333 2.41667 6.58333Z" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path></svg></button></div><pre class="refractor language-shell"><code class="language-shell">tailscale web <span class="token punctuation">[</span>flags<span class="token punctuation">]</span> </code></pre></div> <p>Available flags:</p> <ul> <li><code>--cgi=<true|false></code> Run the web server as a CGI script. Defaults to false.</li> <li><code>--listen=<ip|name></code> Set the listen address. Use port <code>0</code> for automatic. Defaults to <code>localhost:8088</code>.</li> <li><code>--prefix=<string></code> Set the URL prefix added to requests (for CGI or reverse proxies)</li> <li><code>--read-only</code> Run the web server in read-only mode</li> </ul> <h3 id="whois"><a class="group flex items-center gap-2" href="#whois"><span id="inner-text">whois</span><span aria-hidden="true" class="inline-block opacity-0 transition-opacity duration-150 group-hover:opacity-100"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-link-2"><path d="M15 7h3a5 5 0 0 1 5 5 5 5 0 0 1-5 5h-3m-6 0H6a5 5 0 0 1-5-5 5 5 0 0 1 5-5h3"></path><line x1="8" y1="12" x2="16" y2="12"></line></svg></span></a></h3> <p>Get the machine and user associated with a Tailscale IP.</p> <div class="group relative overflow-hidden"><div class="absolute right-[5px] top-[21px] flex h-10 w-10 items-center justify-center rounded bg-grey-3 text-black opacity-0 transition-opacity duration-200 group-hover:opacity-100"><button type="button" aria-label="copy"><svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M12.8333 9.91667H14.0833C15.0038 9.91667 15.75 9.1705 15.75 8.25V2.41667C15.75 1.49619 15.0038 0.75 14.0833 0.75H8.25C7.3295 0.75 6.58333 1.49619 6.58333 2.41667V3.66667M2.41667 6.58333H8.25C9.1705 6.58333 9.91667 7.3295 9.91667 8.25V14.0833C9.91667 15.0038 9.1705 15.75 8.25 15.75H2.41667C1.49619 15.75 0.75 15.0038 0.75 14.0833V8.25C0.75 7.3295 1.49619 6.58333 2.41667 6.58333Z" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path></svg></button></div><pre class="refractor language-shell"><code class="language-shell">tailscale whois ip<span class="token punctuation">[</span>:port<span class="token punctuation">]</span> </code></pre></div> <p>For user devices, this command returns:</p> <div class="group relative overflow-hidden"><div class="absolute right-[5px] top-[21px] flex h-10 w-10 items-center justify-center rounded bg-grey-3 text-black opacity-0 transition-opacity duration-200 group-hover:opacity-100"><button type="button" aria-label="copy"><svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M12.8333 9.91667H14.0833C15.0038 9.91667 15.75 9.1705 15.75 8.25V2.41667C15.75 1.49619 15.0038 0.75 14.0833 0.75H8.25C7.3295 0.75 6.58333 1.49619 6.58333 2.41667V3.66667M2.41667 6.58333H8.25C9.1705 6.58333 9.91667 7.3295 9.91667 8.25V14.0833C9.91667 15.0038 9.1705 15.75 8.25 15.75H2.41667C1.49619 15.75 0.75 15.0038 0.75 14.0833V8.25C0.75 7.3295 1.49619 6.58333 2.41667 6.58333Z" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path></svg></button></div><pre class="refractor language-markup"><code class="language-markup">Machine: Name: ID: Addresses: AllowedIPs: User: Name: ID: Capabilities: </code></pre></div> <p>For devices that are tagged, this command returns:</p> <div class="group relative overflow-hidden"><div class="absolute right-[5px] top-[21px] flex h-10 w-10 items-center justify-center rounded bg-grey-3 text-black opacity-0 transition-opacity duration-200 group-hover:opacity-100"><button type="button" aria-label="copy"><svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M12.8333 9.91667H14.0833C15.0038 9.91667 15.75 9.1705 15.75 8.25V2.41667C15.75 1.49619 15.0038 0.75 14.0833 0.75H8.25C7.3295 0.75 6.58333 1.49619 6.58333 2.41667V3.66667M2.41667 6.58333H8.25C9.1705 6.58333 9.91667 7.3295 9.91667 8.25V14.0833C9.91667 15.0038 9.1705 15.75 8.25 15.75H2.41667C1.49619 15.75 0.75 15.0038 0.75 14.0833V8.25C0.75 7.3295 1.49619 6.58333 2.41667 6.58333Z" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path></svg></button></div><pre class="refractor language-markup"><code class="language-markup">Machine: Name: ID: Addresses: AllowedIPs: Tags: Capabilities: </code></pre></div> <p>For each of these fields:</p> <ul> <li><code>Machine</code>, <code>Name</code> is the <a href="/kb/1098/machine-names">machine name</a> of the device. If you use <a href="/kb/1081/magicdns">MagicDNS</a>, you can also use this name to connect.</li> <li><code>Machine</code>, <code>ID</code> is the <a href="/kb/1155/terminology-and-concepts#node">node id</a> of the device.</li> <li><code>Machine</code>, <code>Addresses</code> are the <a href="/kb/1015/100.x-addresses">Tailscale IP</a>, which you can use to connect to the device.</li> <li><code>Machine</code>, <code>AllowedIPs</code> are the subnet routes available to the device.</li> <li><code>Machine</code>, <code>Tags</code> are the tags to which the device belongs.</li> <li><code>User</code>, <code>Name</code> is the email address for the owner of the device.</li> <li><code>User</code>, <code>ID</code> is the unique ID of the user</li> <li><code>Capabilities</code> show the grants for the device.</li> </ul> <p>Running <code>tailscale whois</code> with the <code>--json</code> flag will return a machine-readable JSON response. (Note that the <code>--json</code> option must come before the <code>ip[:port]</code> argument.)</p> <div class="group relative overflow-hidden"><div class="absolute right-[5px] top-[21px] flex h-10 w-10 items-center justify-center rounded bg-grey-3 text-black opacity-0 transition-opacity duration-200 group-hover:opacity-100"><button type="button" aria-label="copy"><svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M12.8333 9.91667H14.0833C15.0038 9.91667 15.75 9.1705 15.75 8.25V2.41667C15.75 1.49619 15.0038 0.75 14.0833 0.75H8.25C7.3295 0.75 6.58333 1.49619 6.58333 2.41667V3.66667M2.41667 6.58333H8.25C9.1705 6.58333 9.91667 7.3295 9.91667 8.25V14.0833C9.91667 15.0038 9.1705 15.75 8.25 15.75H2.41667C1.49619 15.75 0.75 15.0038 0.75 14.0833V8.25C0.75 7.3295 1.49619 6.58333 2.41667 6.58333Z" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path></svg></button></div><pre class="refractor language-shell"><code class="language-shell">tailscale whois --json ip<span class="token punctuation">[</span>:port<span class="token punctuation">]</span> </code></pre></div><!--/$--></div></article><p class="mt-6 text-sm leading-snug text-gray-600">Last updated <!-- -->Mar 20, 2025</p></div></div><aside class="js-docHighlight col-span-10 h-full pb-8 md:col-span-8 md:col-start-4 xl:col-span-2 xl:col-start-auto"><div class="sticky top-16 flex flex-col gap-8"><div class="flex flex-col gap-2"><div class="tracking-wider text-xs font-semibold uppercase">On this page</div><ul class="flex flex-col gap-1 pt-1 leading-tight"><li><a class="text-sm !text-gray-500 transition-colors hover:!text-gray-900" href="#using-the-tailscale-cli">Using the Tailscale CLI</a><ul class="flex flex-col gap-1 pt-1 leading-tight pl-4"><li><a class="text-sm !text-gray-500 transition-colors hover:!text-gray-900" href="#tab-completion">Tab completion</a></li></ul></li><li><a class="text-sm !text-gray-500 transition-colors hover:!text-gray-900" href="#command-reference">Command Reference</a><ul class="flex flex-col gap-1 pt-1 leading-tight pl-4"><li><a class="text-sm !text-gray-500 transition-colors hover:!text-gray-900" href="#up">up</a></li><li><a class="text-sm !text-gray-500 transition-colors hover:!text-gray-900" href="#down">down</a></li><li><a class="text-sm !text-gray-500 transition-colors hover:!text-gray-900" href="#bugreport">bugreport</a></li><li><a class="text-sm !text-gray-500 transition-colors hover:!text-gray-900" href="#cert">cert</a></li><li><a class="text-sm !text-gray-500 transition-colors hover:!text-gray-900" href="#dns">dns</a></li><li><a class="text-sm !text-gray-500 transition-colors hover:!text-gray-900" href="#completion">completion</a></li><li><a class="text-sm !text-gray-500 transition-colors hover:!text-gray-900" href="#configure">configure</a></li><li><a class="text-sm !text-gray-500 transition-colors hover:!text-gray-900" href="#exit-node">exit-node</a></li><li><a class="text-sm !text-gray-500 transition-colors hover:!text-gray-900" href="#file">file</a></li><li><a class="text-sm !text-gray-500 transition-colors hover:!text-gray-900" href="#funnel">funnel</a></li><li><a class="text-sm !text-gray-500 transition-colors hover:!text-gray-900" href="#ip">ip</a></li><li><a class="text-sm !text-gray-500 transition-colors hover:!text-gray-900" href="#lock">lock</a></li><li><a class="text-sm !text-gray-500 transition-colors hover:!text-gray-900" href="#login">login</a></li><li><a class="text-sm !text-gray-500 transition-colors hover:!text-gray-900" href="#logout">logout</a></li><li><a class="text-sm !text-gray-500 transition-colors hover:!text-gray-900" href="#metrics">metrics</a></li><li><a class="text-sm !text-gray-500 transition-colors hover:!text-gray-900" href="#netcheck">netcheck</a></li><li><a class="text-sm !text-gray-500 transition-colors hover:!text-gray-900" href="#version">version</a></li><li><a class="text-sm !text-gray-500 transition-colors hover:!text-gray-900" href="#ping">ping</a></li><li><a class="text-sm !text-gray-500 transition-colors hover:!text-gray-900" href="#serve">serve</a></li><li><a class="text-sm !text-gray-500 transition-colors hover:!text-gray-900" href="#set">set</a></li><li><a class="text-sm !text-gray-500 transition-colors hover:!text-gray-900" href="#ssh">ssh</a></li><li><a class="text-sm !text-gray-500 transition-colors hover:!text-gray-900" href="#status">status</a></li><li><a class="text-sm !text-gray-500 transition-colors hover:!text-gray-900" href="#switch">switch</a></li><li><a class="text-sm !text-gray-500 transition-colors hover:!text-gray-900" href="#syspolicy">syspolicy</a></li><li><a class="text-sm !text-gray-500 transition-colors hover:!text-gray-900" href="#update">update</a></li><li><a class="text-sm !text-gray-500 transition-colors hover:!text-gray-900" href="#web">web</a></li><li><a class="text-sm !text-gray-500 transition-colors hover:!text-gray-900" href="#whois">whois</a></li></ul></li></ul></div></div></aside></div></main><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-black/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-black/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-black/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-black/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-black/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-black/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-black/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-black/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-black/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-black/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-black/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-black/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-black/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-black/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-black/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-black/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-black/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-black/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-black/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-black/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-black/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-black/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-black/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-black/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-black/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-black/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-black/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-black/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-black/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-black/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-black/100" href="/learn">All articles</a></div></div></div><div class="container"><div class="grid grid-cols-1 gap-x-5 gap-y-8 border-t border-stroke-grey 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="#242424"></ellipse><ellipse cx="9.79094" cy="10.1796" rx="2.44719" ry="2.44128" fill="#242424"></ellipse><ellipse opacity="0.2" cx="2.44719" cy="17.5077" rx="2.44719" ry="2.44128" fill="#242424"></ellipse><ellipse opacity="0.2" cx="17.1269" cy="17.5077" rx="2.44719" ry="2.44128" fill="#242424"></ellipse><ellipse cx="9.79094" cy="17.5077" rx="2.44719" ry="2.44128" fill="#242424"></ellipse><ellipse cx="17.1269" cy="10.1796" rx="2.44719" ry="2.44128" fill="#242424"></ellipse><ellipse opacity="0.2" cx="2.44719" cy="2.85924" rx="2.44719" ry="2.44128" fill="#242424"></ellipse><ellipse opacity="0.2" cx="9.79094" cy="2.85924" rx="2.44719" ry="2.44128" fill="#242424"></ellipse><ellipse opacity="0.2" cx="17.1269" cy="2.85924" rx="2.44719" ry="2.44128" fill="#242424"></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="#242424"></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="#242424"></path><path d="M49.3069 5.39173H52.4677V2.5625H49.3069V5.39173ZM49.3718 18.2421H52.4028V6.83875H49.3718V18.2421Z" fill="#242424"></path><path d="M54.6109 18.2421H57.6418V2.90805H54.6109V18.2421Z" fill="#242424"></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="#242424"></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="#242424"></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="#242424"></path><path d="M93.3263 18.2421H96.3573V2.90805H93.3263V18.2421Z" fill="#242424"></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="#242424"></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-black/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-black/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-grey-3" 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-grey-3" 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-grey-3" 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-grey-3" 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-grey-3" 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 src="/_next/static/chunks/webpack-a0d1b0095e1f0be6.js" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0]);self.__next_f.push([2,null])</script><script>self.__next_f.push([1,"1:HL[\"/_next/static/media/503dd21c3e9aa947-s.p.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n2:HL[\"/_next/static/media/59aafc96071162d7-s.p.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n3:HL[\"/_next/static/media/6190d09d67eb8e2d-s.p.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n4:HL[\"/_next/static/media/6267f766bc823bf8-s.p.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n5:HL[\"/_next/static/media/ce17880c21b59d21-s.p.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n6:HL[\"/_next/static/media/d3470cfc68a51edd-s.p.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n7:HL[\"/_next/static/css/425118351a398cbb.css\",\"style\"]\n8:HL[\"/_next/static/css/031b0c3bd76b5853.css\",\"style\"]\n"])</script><script>self.__next_f.push([1,"9:I[12846,[],\"\"]\nc:I[4707,[],\"\"]\ne:I[4911,[\"2972\",\"static/chunks/2972-04611c7b37409cb4.js\",\"9286\",\"static/chunks/app/kb/%5B%5B...params%5D%5D/error-7d929094baa370f5.js\"],\"default\"]\nf:I[36423,[],\"\"]\n12:I[13542,[\"8003\",\"static/chunks/8003-0833c71e6161cb44.js\",\"3185\",\"static/chunks/app/layout-54c1176bfefb7426.js\"],\"default\"]\n14:I[61060,[],\"\"]\nd:[\"params\",\"1080/cli\",\"oc\"]\n15:[]\n"])</script><script>self.__next_f.push([1,"0:[\"$\",\"$L9\",null,{\"buildId\":\"OrNTrMzD3-3QRJVoyTzo1\",\"assetPrefix\":\"\",\"urlParts\":[\"\",\"kb\",\"1080\",\"cli\"],\"initialTree\":[\"\",{\"children\":[\"kb\",{\"children\":[[\"params\",\"1080/cli\",\"oc\"],{\"children\":[\"__PAGE__\",{}]}]}]},\"$undefined\",\"$undefined\",true],\"initialSeedData\":[\"\",{\"children\":[\"kb\",{\"children\":[[\"params\",\"1080/cli\",\"oc\"],{\"children\":[\"__PAGE__\",{},[[\"$La\",\"$Lb\",null],null],null]},[null,[\"$\",\"$Lc\",null,{\"parallelRouterKey\":\"children\",\"segmentPath\":[\"children\",\"kb\",\"children\",\"$d\",\"children\"],\"error\":\"$e\",\"errorStyles\":[],\"errorScripts\":[],\"template\":[\"$\",\"$Lf\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$L10\",\"notFoundStyles\":[]}]],null]},[[null,\"$L11\"],null],null]},[[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/425118351a398cbb.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\"}],[\"$\",\"link\",\"1\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/031b0c3bd76b5853.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"en\",\"className\":\"__className_943d4e\",\"children\":[\"$\",\"body\",null,{\"children\":[\"$\",\"$L12\",null,{\"children\":[\"$\",\"$Lc\",null,{\"parallelRouterKey\":\"children\",\"segmentPath\":[\"children\"],\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$Lf\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"},\"children\":\"404\"}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0},\"children\":\"This page could not be found.\"}]}]]}]}]],\"notFoundStyles\":[]}]}]}]}]],null],null],\"couldBeIntercepted\":false,\"initialHead\":[null,\"$L13\"],\"globalErrorComponent\":\"$14\",\"missingSlots\":\"$W15\"}]\n"])</script><script>self.__next_f.push([1,"16:I[72972,[\"2972\",\"static/chunks/2972-04611c7b37409cb4.js\",\"4302\",\"static/chunks/4302-c45bec305c844d62.js\",\"8003\",\"static/chunks/8003-0833c71e6161cb44.js\",\"8650\",\"static/chunks/8650-0409a4c5d9e604e6.js\",\"919\",\"static/chunks/919-d3f1be5b16f843c6.js\",\"7004\",\"static/chunks/app/kb/layout-df5f9e4be68e4c7e.js\"],\"\"]\n10:[\"$\",\"div\",null,{\"className\":\"mx-auto max-w-lg py-14 md:py-16\",\"children\":[[\"$\",\"h1\",null,{\"className\":\"text-2xl font-medium md:text-4xl\",\"children\":\"Page not found\"}],[\"$\",\"h2\",null,{\"className\":\"mt-4 text-lg font-medium md:text-xl\",\"children\":\"Sorry, but the page you were looking for could not be found.\"}],[\"$\",\"p\",null,{\"className\":\"prose mt-4\",\"children\":[\"You can\",\" \",[\"$\",\"$L16\",null,{\"className\":\"link\",\"href\":\"/kb\",\"children\":\"return to our docs homepage\"}],\",\",\" \",[\"$\",\"$L16\",null,{\"className\":\"link\",\"href\":\"/\",\"children\":\"site homepage\"}],\", or\",\" \",[\"$\",\"$L16\",null,{\"className\":\"link\",\"href\":\"mailto:info@tailscale.com\",\"children\":\"get in touch\"}],\" \",\"if you can’t find what you’re looking for.\"]}]]}]\n"])</script><script>self.__next_f.push([1,"17:I[72424,[\"2972\",\"static/chunks/2972-04611c7b37409cb4.js\",\"4302\",\"static/chunks/4302-c45bec305c844d62.js\",\"8003\",\"static/chunks/8003-0833c71e6161cb44.js\",\"8650\",\"static/chunks/8650-0409a4c5d9e604e6.js\",\"919\",\"static/chunks/919-d3f1be5b16f843c6.js\",\"7004\",\"static/chunks/app/kb/layout-df5f9e4be68e4c7e.js\"],\"CurrentUserProvider\"]\n18:I[60908,[\"2972\",\"static/chunks/2972-04611c7b37409cb4.js\",\"4302\",\"static/chunks/4302-c45bec305c844d62.js\",\"8003\",\"static/chunks/8003-0833c71e6161cb44.js\",\"8650\",\"static/chunks/8650-0409a4c5d9e604e6.js\",\"919\",\"static/chunks/919-d3f1be5b16f843c6.js\",\"7004\",\"static/chunks/app/kb/layout-df5f9e4be68e4c7e.js\"],\"default\"]\n13:[[\"$\",\"meta\",\"0\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}],[\"$\",\"meta\",\"1\",{\"name\":\"theme-color\",\"content\":\"#fff\"}],[\"$\",\"meta\",\"2\",{\"charSet\":\"utf-8\"}],[\"$\",\"title\",\"3\",{\"children\":\"Tailscale CLI · Tailscale Docs\"}],[\"$\",\"meta\",\"4\",{\"name\":\"description\",\"content\":\"Manage and troubleshoot your tailnet with the Tailscale command-line interface (Tailscale CLI).\"}],[\"$\",\"link\",\"5\",{\"rel\":\"canonical\",\"href\":\"https://tailscale.com/kb/1080/cli\"}],[\"$\",\"meta\",\"6\",{\"property\":\"og:title\",\"content\":\"Tailscale CLI · Tailscale Docs\"}],[\"$\",\"meta\",\"7\",{\"property\":\"og:description\",\"content\":\"Manage and troubleshoot your tailnet with the Tailscale command-line interface (Tailscale CLI).\"}],[\"$\",\"meta\",\"8\",{\"property\":\"og:url\",\"content\":\"https://tailscale.com/kb/1080/cli\"}],[\"$\",\"meta\",\"9\",{\"property\":\"og:site_name\",\"content\":\"Tailscale\"}],[\"$\",\"meta\",\"10\",{\"property\":\"og:image\",\"content\":\"https://tailscale.com/files/images/og-image.png\"}],[\"$\",\"meta\",\"11\",{\"property\":\"og:type\",\"content\":\"article\"}],[\"$\",\"meta\",\"12\",{\"name\":\"twitter:card\",\"content\":\"summary_large_image\"}],[\"$\",\"meta\",\"13\",{\"name\":\"twitter:creator\",\"content\":\"@tailscale\"}],[\"$\",\"meta\",\"14\",{\"name\":\"twitter:title\",\"content\":\"Tailscale CLI\"}],[\"$\",\"meta\",\"15\",{\"name\":\"twitter:description\",\"content\":\"Manage and troubleshoot your tailnet with the Tailscale command-line interface (Tailscale CLI).\"}]"])</script><script>self.__next_f.push([1,",[\"$\",\"meta\",\"16\",{\"name\":\"twitter:image\",\"content\":\"https://tailscale.com/files/images/og-image.png\"}],[\"$\",\"link\",\"17\",{\"rel\":\"icon\",\"href\":\"/favicon.png\",\"type\":\"image/png\"}],[\"$\",\"link\",\"18\",{\"rel\":\"icon\",\"href\":\"/favicon.svg\",\"type\":\"image/svg+xml\"}],[\"$\",\"meta\",\"19\",{\"name\":\"next-size-adjust\"}]]\na:null\n19:T820,"])</script><script>self.__next_f.push([1,"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"])</script><script>self.__next_f.push([1,"11:[[\"$\",\"$L17\",null,{\"children\":[\"$\",\"$L18\",null,{\"menu\":[{\"submenu\":{\"product\":{\"rightCol\":{\"nav\":{\"heading\":\"Explore\",\"links\":[{\"link\":\"/integrations\",\"_key\":\"c653da519dfb\",\"title\":\"Integrations\"},{\"link\":\"/features\",\"_key\":\"a878da5fa54c\",\"title\":\"Features\"},{\"title\":\"Compare Tailscale\",\"link\":\"/compare\",\"_key\":\"adda698ed879\"},{\"_key\":\"3341bd9805df\",\"title\":\"Community Projects\",\"link\":\"/community/community-projects\"},{\"_key\":\"b57369965809\",\"title\":\"Partnerships\",\"link\":\"/partnerships\"}]}},\"leftCol\":{\"topNav\":{\"heading\":\"Meet Tailscale\",\"links\":[{\"icon\":{\"_type\":\"sanityImage\",\"alt\":\"icon\"},\"link\":\"/blog/how-tailscale-works/\",\"_key\":\"5495d201056a\",\"title\":\"How it works\"},{\"icon\":{\"_type\":\"sanityImage\",\"alt\":\"icon\"},\"link\":\"/why-tailscale\",\"_key\":\"dc9cde7ff83cb94cfc98ff29bdcd0997\",\"title\":\"Why Tailscale\"},{\"icon\":{\"_type\":\"sanityImage\",\"alt\":\"WireGuard®\"},\"link\":\"/wireguard-vpn\",\"_key\":\"5d88e3ffcc6b\",\"title\":\"WireGuard® for Enterprises\"},{\"_key\":\"435de37ddd5f\",\"title\":\"Bring Tailscale to Work\",\"icon\":{\"_type\":\"sanityImage\",\"alt\":\"Bring Tailscale to Work\"},\"link\":\"/bring-tailscale-to-work\"}]}}},\"submenuType\":\"product\"},\"hasSubmenu\":true,\"_key\":\"95381f81d527\",\"title\":\"Product\"},{\"title\":\"Solutions\",\"submenu\":{\"product\":{\"rightCol\":{\"nav\":{\"heading\":\"By role\",\"links\":[{\"link\":\"/solutions/devops\",\"_key\":\"502a00f49baf\",\"title\":\"DevOps\"},{\"link\":\"/solutions/it\",\"_key\":\"0fe4c0d6fa83\",\"title\":\"IT\"},{\"link\":\"/solutions/security\",\"_key\":\"026f30b876a7\",\"title\":\"Security\"}]}},\"leftCol\":{\"topNav\":{\"heading\":\"By use-case\",\"links\":[{\"link\":\"/use-cases/remote-access\",\"_key\":\"193eaaa0cef8\",\"title\":\"Remote Access\"},{\"title\":\"Site-to-site Networking\",\"link\":\"/use-cases/site-to-site-networking\",\"_key\":\"05cadfcf3e65b04708a9d88060f68f9e\"},{\"link\":\"/use-cases/multi-cloud-networking\",\"_key\":\"fbd28dffeac0\",\"title\":\"Multi-Cloud Networking\"},{\"title\":\"Kubernetes Networking\",\"link\":\"/use-cases/kubernetes\",\"_key\":\"da202f1d966a\"},{\"link\":\"/use-cases/iot\",\"_key\":\"8c78e633c6b1\",\"title\":\"Edge \u0026 IoT Deployments\"},{\"link\":\"/use-cases/zero-trust-networking\",\"_key\":\"6a363d694952\",\"title\":\"Zero Trust Networking\"},{\"link\":\"/use-cases/ai\",\"_key\":\"9c49b97d6b06\",\"title\":\"AI Workloads\"},{\"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\"}]}}},\"submenuType\":\"product\"},\"hasSubmenu\":true,\"_key\":\"a7062f1924df\"},{\"submenu\":{\"submenuType\":\"product\"},\"link\":\"/enterprise\",\"hasSubmenu\":false,\"_key\":\"fd055b16290df04c6012d0d33c2fad13\",\"title\":\"Enterprise\"},{\"hasSubmenu\":false,\"_key\":\"b595975539c7407a7ed4510edd549223\",\"title\":\"Customers\",\"submenu\":{\"submenuType\":\"product\",\"product\":{\"leftCol\":{\"topNav\":{\"heading\":\"Nav heading here\",\"links\":[{\"link\":\"https://tailscale.com/customers\",\"description\":\"How Cribl Enables Secure Work From Anywhere with Tailscale\",\"_key\":\"2d22491d8262\",\"title\":\"Title here\",\"icon\":{\"_type\":\"sanityImage\",\"alt\":\"Alt text \",\"asset\":{\"_ref\":\"image-a06dc612b1e3e4f4df53a72030002600639a8738-300x120-png\",\"_type\":\"reference\"}}}]}}},\"resources\":{\"topNav\":[{\"description\":\"How Cribl Enables Secure Work From Anywhere with Tailscale\",\"_key\":\"61d0f0cb130e\",\"heading\":\"Cribl\"},{\"heading\":\"Cribl\",\"description\":\"How Cribl Enables Secure Work From Anywhere with Tailscale\",\"_key\":\"712684d509a6a6ea07ab9401bdb23f8f\"},{\"heading\":\"Cribl\",\"description\":\"How Cribl Enables Secure Work From Anywhere with Tailscale\",\"_key\":\"ceac3f234a3a6923a671af91772b7e8b\"}]}},\"link\":\"/customers\"},{\"hasSubmenu\":false,\"_key\":\"f06fabeb084c\",\"title\":\"Docs\",\"submenu\":{\"submenuType\":\"product\"},\"link\":\"/kb/1017/install/\"},{\"submenu\":{\"submenuType\":\"product\"},\"link\":\"/blog\",\"hasSubmenu\":false,\"_key\":\"f2537b6fa068\",\"title\":\"Blog\"},{\"link\":\"/pricing\",\"hasSubmenu\":false,\"_key\":\"e1b7b44dc091\",\"title\":\"Pricing\",\"submenu\":{\"submenuType\":\"product\"}}],\"footerData\":\"$undefined\",\"headerStyle\":\"dark\",\"button\":{\"buttonOptions\":{\"color\":\"black\"},\"_type\":\"button\",\"link\":{\"title\":\"Get started - it's free!\",\"url\":\"https://login.tailscale.com/start\"}}}]}],[\"$\",\"main\",null,{\"className\":\"scope-kb is-wide container\",\"children\":[\"$\",\"$Lc\",null,{\"parallelRouterKey\":\"children\",\"segmentPath\":[\"children\",\"kb\",\"children\"],\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$Lf\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"notFoundStyles\":\"$undefined\"}]}],[\"$\",\"footer\",null,{\"className\":\"pb-16 pt-5 md:pb-28 md:pt-20 \",\"children\":[[\"$\",\"div\",null,{\"className\":\"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\",\"children\":[[\"$\",\"div\",null,{\"children\":[[\"$\",\"p\",null,{\"className\":\"t-16 !leading-[1.05] text-heading-black\",\"children\":\"Product\"}],[\"$\",\"div\",null,{\"className\":\"mt-4 flex flex-col gap-3 lg:mt-8 lg:gap-4\",\"children\":[[\"$\",\"$L16\",\"Product/blog/how-tailscale-works/\",{\"href\":\"/blog/how-tailscale-works/\",\"className\":\"text-[14px] !leading-[1.05] !tracking-[0.08px] transition-colors duration-300 md:text-[16px] text-heading-black/60 hover:text-black/100\",\"dangerouslySetInnerHTML\":{\"__html\":\"How it works\"}}],[\"$\",\"$L16\",\"Product/pricing\",{\"href\":\"/pricing\",\"className\":\"text-[14px] !leading-[1.05] !tracking-[0.08px] transition-colors duration-300 md:text-[16px] text-heading-black/60 hover:text-black/100\",\"dangerouslySetInnerHTML\":{\"__html\":\"Pricing\"}}],[\"$\",\"$L16\",\"Product/integrations\",{\"href\":\"/integrations\",\"className\":\"text-[14px] !leading-[1.05] !tracking-[0.08px] transition-colors duration-300 md:text-[16px] text-heading-black/60 hover:text-black/100\",\"dangerouslySetInnerHTML\":{\"__html\":\"Integrations\"}}],[\"$\",\"$L16\",\"Product/features\",{\"href\":\"/features\",\"className\":\"text-[14px] !leading-[1.05] !tracking-[0.08px] transition-colors duration-300 md:text-[16px] text-heading-black/60 hover:text-black/100\",\"dangerouslySetInnerHTML\":{\"__html\":\"Features\"}}],[\"$\",\"$L16\",\"Product/compare\",{\"href\":\"/compare\",\"className\":\"text-[14px] !leading-[1.05] !tracking-[0.08px] transition-colors duration-300 md:text-[16px] text-heading-black/60 hover:text-black/100\",\"dangerouslySetInnerHTML\":{\"__html\":\"Compare Tailscale\"}}]]}]]}],[\"$\",\"div\",null,{\"children\":[[\"$\",\"p\",null,{\"className\":\"t-16 !leading-[1.05] text-heading-black\",\"children\":\"Use Cases\"}],[\"$\",\"div\",null,{\"className\":\"mt-4 flex flex-col gap-3 lg:mt-8 lg:gap-4\",\"children\":[[\"$\",\"$L16\",\"Use Cases/use-cases/business-vpn\",{\"href\":\"/use-cases/business-vpn\",\"className\":\"text-[14px] !leading-[1.05] !tracking-[0.08px] transition-colors duration-300 md:text-[16px] text-heading-black/60 hover:text-black/100\",\"dangerouslySetInnerHTML\":{\"__html\":\"Business VPN\"}}],[\"$\",\"$L16\",\"Use Cases/use-cases/remote-access\",{\"href\":\"/use-cases/remote-access\",\"className\":\"text-[14px] !leading-[1.05] !tracking-[0.08px] transition-colors duration-300 md:text-[16px] text-heading-black/60 hover:text-black/100\",\"dangerouslySetInnerHTML\":{\"__html\":\"Remote Access\"}}],[\"$\",\"$L16\",\"Use Cases/use-cases/site-to-site-networking\",{\"href\":\"/use-cases/site-to-site-networking\",\"className\":\"text-[14px] !leading-[1.05] !tracking-[0.08px] transition-colors duration-300 md:text-[16px] text-heading-black/60 hover:text-black/100\",\"dangerouslySetInnerHTML\":{\"__html\":\"Site-to-Site Networking\"}}],[\"$\",\"$L16\",\"Use Cases/use-cases/homelab\",{\"href\":\"/use-cases/homelab\",\"className\":\"text-[14px] !leading-[1.05] !tracking-[0.08px] transition-colors duration-300 md:text-[16px] text-heading-black/60 hover:text-black/100\",\"dangerouslySetInnerHTML\":{\"__html\":\"Homelab\"}}],[\"$\",\"$L16\",\"Use Cases/enterprise\",{\"href\":\"/enterprise\",\"className\":\"text-[14px] !leading-[1.05] !tracking-[0.08px] transition-colors duration-300 md:text-[16px] text-heading-black/60 hover:text-black/100\",\"dangerouslySetInnerHTML\":{\"__html\":\"Enterprise\"}}]]}]]}],[\"$\",\"div\",null,{\"children\":[[\"$\",\"p\",null,{\"className\":\"t-16 !leading-[1.05] text-heading-black\",\"children\":\"Resources\"}],[\"$\",\"div\",null,{\"className\":\"mt-4 flex flex-col gap-3 lg:mt-8 lg:gap-4\",\"children\":[[\"$\",\"$L16\",\"Resources/blog\",{\"href\":\"/blog\",\"className\":\"text-[14px] !leading-[1.05] !tracking-[0.08px] transition-colors duration-300 md:text-[16px] text-heading-black/60 hover:text-black/100\",\"dangerouslySetInnerHTML\":{\"__html\":\"Blog\"}}],[\"$\",\"$L16\",\"Resources/events-webinars\",{\"href\":\"/events-webinars\",\"className\":\"text-[14px] !leading-[1.05] !tracking-[0.08px] transition-colors duration-300 md:text-[16px] text-heading-black/60 hover:text-black/100\",\"dangerouslySetInnerHTML\":{\"__html\":\"Events \u0026 Webinars\"}}],[\"$\",\"$L16\",\"Resources/partnerships\",{\"href\":\"/partnerships\",\"className\":\"text-[14px] !leading-[1.05] !tracking-[0.08px] transition-colors duration-300 md:text-[16px] text-heading-black/60 hover:text-black/100\",\"dangerouslySetInnerHTML\":{\"__html\":\"Partnerships\"}}]]}]]}],[\"$\",\"div\",null,{\"children\":[[\"$\",\"p\",null,{\"className\":\"t-16 !leading-[1.05] text-heading-black\",\"children\":\"Company\"}],[\"$\",\"div\",null,{\"className\":\"mt-4 flex flex-col gap-3 lg:mt-8 lg:gap-4\",\"children\":[[\"$\",\"$L16\",\"Company/company\",{\"href\":\"/company\",\"className\":\"text-[14px] !leading-[1.05] !tracking-[0.08px] transition-colors duration-300 md:text-[16px] text-heading-black/60 hover:text-black/100\",\"dangerouslySetInnerHTML\":{\"__html\":\"Company\"}}],[\"$\",\"$L16\",\"Company/careers\",{\"href\":\"/careers\",\"className\":\"text-[14px] !leading-[1.05] !tracking-[0.08px] transition-colors duration-300 md:text-[16px] text-heading-black/60 hover:text-black/100\",\"dangerouslySetInnerHTML\":{\"__html\":\"Careers\"}}],[\"$\",\"$L16\",\"Company/press\",{\"href\":\"/press\",\"className\":\"text-[14px] !leading-[1.05] !tracking-[0.08px] transition-colors duration-300 md:text-[16px] text-heading-black/60 hover:text-black/100\",\"dangerouslySetInnerHTML\":{\"__html\":\"Press\"}}]]}]]}],[\"$\",\"div\",null,{\"children\":[[\"$\",\"p\",null,{\"className\":\"t-16 !leading-[1.05] text-heading-black\",\"children\":\"Help \u0026 Support\"}],[\"$\",\"div\",null,{\"className\":\"mt-4 flex flex-col gap-3 lg:mt-8 lg:gap-4\",\"children\":[[\"$\",\"$L16\",\"Help \u0026 Support/contact/support\",{\"href\":\"/contact/support\",\"className\":\"text-[14px] !leading-[1.05] !tracking-[0.08px] transition-colors duration-300 md:text-[16px] text-heading-black/60 hover:text-black/100\",\"dangerouslySetInnerHTML\":{\"__html\":\"Support\"}}],[\"$\",\"$L16\",\"Help \u0026 Support/contact/sales\",{\"href\":\"/contact/sales\",\"className\":\"text-[14px] !leading-[1.05] !tracking-[0.08px] transition-colors duration-300 md:text-[16px] text-heading-black/60 hover:text-black/100\",\"dangerouslySetInnerHTML\":{\"__html\":\"Sales\"}}],[\"$\",\"$L16\",\"Help \u0026 Support/security\",{\"href\":\"/security\",\"className\":\"text-[14px] !leading-[1.05] !tracking-[0.08px] transition-colors duration-300 md:text-[16px] text-heading-black/60 hover:text-black/100\",\"dangerouslySetInnerHTML\":{\"__html\":\"Security\"}}],[\"$\",\"$L16\",\"Help \u0026 Support/legal\",{\"href\":\"/legal\",\"className\":\"text-[14px] !leading-[1.05] !tracking-[0.08px] transition-colors duration-300 md:text-[16px] text-heading-black/60 hover:text-black/100\",\"dangerouslySetInnerHTML\":{\"__html\":\"Legal\"}}],[\"$\",\"$L16\",\"Help \u0026 Support/opensource\",{\"href\":\"/opensource\",\"className\":\"text-[14px] !leading-[1.05] !tracking-[0.08px] transition-colors duration-300 md:text-[16px] text-heading-black/60 hover:text-black/100\",\"dangerouslySetInnerHTML\":{\"__html\":\"Open Source\"}}],[\"$\",\"$L16\",\"Help \u0026 Support/changelog\",{\"href\":\"/changelog\",\"className\":\"text-[14px] !leading-[1.05] !tracking-[0.08px] transition-colors duration-300 md:text-[16px] text-heading-black/60 hover:text-black/100\",\"dangerouslySetInnerHTML\":{\"__html\":\"Changelog\"}}]]}]]}],[\"$\",\"div\",null,{\"children\":[[\"$\",\"p\",null,{\"className\":\"t-16 !leading-[1.05] text-heading-black\",\"children\":\"Learn\"}],[\"$\",\"div\",null,{\"className\":\"mt-4 flex flex-col gap-3 lg:mt-8 lg:gap-4\",\"children\":[[\"$\",\"$L16\",\"Learn/learn/generate-ssh-keys/\",{\"href\":\"/learn/generate-ssh-keys/\",\"className\":\"text-[14px] !leading-[1.05] !tracking-[0.08px] transition-colors duration-300 md:text-[16px] text-heading-black/60 hover:text-black/100\",\"dangerouslySetInnerHTML\":{\"__html\":\"SSH keys\"}}],[\"$\",\"$L16\",\"Learn/learn/ssh-into-docker-container/\",{\"href\":\"/learn/ssh-into-docker-container/\",\"className\":\"text-[14px] !leading-[1.05] !tracking-[0.08px] transition-colors duration-300 md:text-[16px] text-heading-black/60 hover:text-black/100\",\"dangerouslySetInnerHTML\":{\"__html\":\"Docker SSH\"}}],[\"$\",\"$L16\",\"Learn/learn/devsecops/\",{\"href\":\"/learn/devsecops/\",\"className\":\"text-[14px] !leading-[1.05] !tracking-[0.08px] transition-colors duration-300 md:text-[16px] text-heading-black/60 hover:text-black/100\",\"dangerouslySetInnerHTML\":{\"__html\":\"DevSecOps\"}}],[\"$\",\"$L16\",\"Learn/learn/multicloud/\",{\"href\":\"/learn/multicloud/\",\"className\":\"text-[14px] !leading-[1.05] !tracking-[0.08px] transition-colors duration-300 md:text-[16px] text-heading-black/60 hover:text-black/100\",\"dangerouslySetInnerHTML\":{\"__html\":\"Multicloud\"}}],[\"$\",\"$L16\",\"Learn/blog/how-nat-traversal-works/\",{\"href\":\"/blog/how-nat-traversal-works/\",\"className\":\"text-[14px] !leading-[1.05] !tracking-[0.08px] transition-colors duration-300 md:text-[16px] text-heading-black/60 hover:text-black/100\",\"dangerouslySetInnerHTML\":{\"__html\":\"NAT Traversal\"}}],[\"$\",\"$L16\",\"Learn/blog/2021-09-private-dns-with-magicdns/\",{\"href\":\"/blog/2021-09-private-dns-with-magicdns/\",\"className\":\"text-[14px] !leading-[1.05] !tracking-[0.08px] transition-colors duration-300 md:text-[16px] text-heading-black/60 hover:text-black/100\",\"dangerouslySetInnerHTML\":{\"__html\":\"MagicDNS\"}}],[\"$\",\"$L16\",\"Learn/learn/privileged-access-management/\",{\"href\":\"/learn/privileged-access-management/\",\"className\":\"text-[14px] !leading-[1.05] !tracking-[0.08px] transition-colors duration-300 md:text-[16px] text-heading-black/60 hover:text-black/100\",\"dangerouslySetInnerHTML\":{\"__html\":\"PAM\"}}],[\"$\",\"$L16\",\"Learn/learn/principle-of-least-privilege/\",{\"href\":\"/learn/principle-of-least-privilege/\",\"className\":\"text-[14px] !leading-[1.05] !tracking-[0.08px] transition-colors duration-300 md:text-[16px] text-heading-black/60 hover:text-black/100\",\"dangerouslySetInnerHTML\":{\"__html\":\"PoLP\"}}],[\"$\",\"$L16\",\"Learn/learn\",{\"href\":\"/learn\",\"className\":\"text-[14px] !leading-[1.05] !tracking-[0.08px] transition-colors duration-300 md:text-[16px] text-heading-black/60 hover:text-black/100\",\"dangerouslySetInnerHTML\":{\"__html\":\"All articles\"}}]]}]]}]]}],[\"$\",\"div\",null,{\"className\":\"container\",\"children\":[\"$\",\"div\",null,{\"className\":\"grid grid-cols-1 gap-x-5 gap-y-8 border-t border-stroke-grey pt-8 xxs:grid-cols-2 md:grid-cols-12 md:pt-[70px] lg:gap-y-[60px]\",\"children\":[[\"$\",\"div\",null,{\"className\":\"xxs:col-span-2 md:col-span-4\",\"children\":[\"$\",\"$L16\",null,{\"href\":\"/\",\"className\":\"block w-[160px]\",\"title\":\"Homepage\",\"data-track\":\"Link Clicked\",\"data-track-properties\":\"{\\\"label\\\": \\\"Footer logo\\\"}\",\"children\":[\"$\",\"svg\",null,{\"className\":\"transition-colors duration-200 \",\"width\":\"100%\",\"height\":\"100%\",\"viewBox\":\"0 0 110 20\",\"fill\":\"none\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"children\":[[\"$\",\"ellipse\",null,{\"cx\":\"2.44719\",\"cy\":\"10.1796\",\"rx\":\"2.44719\",\"ry\":\"2.44128\",\"fill\":\"#242424\"}],[\"$\",\"ellipse\",null,{\"cx\":\"9.79094\",\"cy\":\"10.1796\",\"rx\":\"2.44719\",\"ry\":\"2.44128\",\"fill\":\"#242424\"}],[\"$\",\"ellipse\",null,{\"opacity\":\"0.2\",\"cx\":\"2.44719\",\"cy\":\"17.5077\",\"rx\":\"2.44719\",\"ry\":\"2.44128\",\"fill\":\"#242424\"}],[\"$\",\"ellipse\",null,{\"opacity\":\"0.2\",\"cx\":\"17.1269\",\"cy\":\"17.5077\",\"rx\":\"2.44719\",\"ry\":\"2.44128\",\"fill\":\"#242424\"}],[\"$\",\"ellipse\",null,{\"cx\":\"9.79094\",\"cy\":\"17.5077\",\"rx\":\"2.44719\",\"ry\":\"2.44128\",\"fill\":\"#242424\"}],[\"$\",\"ellipse\",null,{\"cx\":\"17.1269\",\"cy\":\"10.1796\",\"rx\":\"2.44719\",\"ry\":\"2.44128\",\"fill\":\"#242424\"}],[\"$\",\"ellipse\",null,{\"opacity\":\"0.2\",\"cx\":\"2.44719\",\"cy\":\"2.85924\",\"rx\":\"2.44719\",\"ry\":\"2.44128\",\"fill\":\"#242424\"}],[\"$\",\"ellipse\",null,{\"opacity\":\"0.2\",\"cx\":\"9.79094\",\"cy\":\"2.85924\",\"rx\":\"2.44719\",\"ry\":\"2.44128\",\"fill\":\"#242424\"}],[\"$\",\"ellipse\",null,{\"opacity\":\"0.2\",\"cx\":\"17.1269\",\"cy\":\"2.85924\",\"rx\":\"2.44719\",\"ry\":\"2.44128\",\"fill\":\"#242424\"}],[\"$\",\"path\",null,{\"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\":\"#242424\"}],[\"$\",\"path\",null,{\"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\":\"#242424\"}],[\"$\",\"path\",null,{\"d\":\"M49.3069 5.39173H52.4677V2.5625H49.3069V5.39173ZM49.3718 18.2421H52.4028V6.83875H49.3718V18.2421Z\",\"fill\":\"#242424\"}],[\"$\",\"path\",null,{\"d\":\"M54.6109 18.2421H57.6418V2.90805H54.6109V18.2421Z\",\"fill\":\"#242424\"}],[\"$\",\"path\",null,{\"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\":\"#242424\"}],[\"$\",\"path\",null,{\"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\":\"#242424\"}],[\"$\",\"path\",null,{\"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\":\"#242424\"}],[\"$\",\"path\",null,{\"d\":\"M93.3263 18.2421H96.3573V2.90805H93.3263V18.2421Z\",\"fill\":\"#242424\"}],[\"$\",\"path\",null,{\"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\":\"#242424\"}]]}]}]}],[\"$\",\"div\",null,{\"className\":\"flex flex-col gap-[14px] md:col-span-2\",\"children\":[[\"$\",\"$L16\",\"/terms\",{\"href\":\"/terms\",\"className\":\"t-14 !leading-[1.05] underline transition-colors duration-300 text-heading-black/60 hover:text-black/100\",\"dangerouslySetInnerHTML\":{\"__html\":\"Terms of Service\"}}],[\"$\",\"$L16\",\"/privacy-policy\",{\"href\":\"/privacy-policy\",\"className\":\"t-14 !leading-[1.05] underline transition-colors duration-300 text-heading-black/60 hover:text-black/100\",\"dangerouslySetInnerHTML\":{\"__html\":\"Privacy Policy\"}}]]}],[\"$\",\"div\",null,{\"className\":\"md:col-span-3\",\"children\":[\"$\",\"div\",null,{\"className\":\"t-14 max-w-[250px] !leading-[1.35] text-heading-black/60 \",\"dangerouslySetInnerHTML\":{\"__html\":\"WireGuard is a registered trademark of Jason A. Donenfeld.\"}}]}],[\"$\",\"div\",null,{\"className\":\"flex gap-[6px] xxs:col-span-2 md:col-span-3 md:flex md:justify-end\",\"children\":[[\"$\",\"$L16\",null,{\"target\":\"_blank\",\"href\":\"https://twitter.com/tailscale\",\"className\":\"group transition-colors duration-300 text-heading-black hover:text-grey-3\",\"data-track\":\"Link Clicked\",\"data-track-properties\":\"{\\\"label\\\": \\\"Footer Twitter logo\\\"}\",\"children\":[\"$\",\"svg\",null,{\"width\":\"28\",\"height\":\"29\",\"viewBox\":\"0 0 28 29\",\"fill\":\"none\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"children\":[[\"$\",\"rect\",null,{\"y\":\"0.988281\",\"width\":\"28\",\"height\":\"28\",\"rx\":\"14\",\"fill\":\"currentColor\"}],[\"$\",\"path\",null,{\"className\":\" 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\"}]]}]}],[\"$\",\"$L16\",null,{\"target\":\"_blank\",\"href\":\"https://www.facebook.com/tailscale/\",\"className\":\"group transition-colors duration-300 text-heading-black hover:text-grey-3\",\"data-track\":\"Link Clicked\",\"data-track-properties\":\"{\\\"label\\\": \\\"Footer Facebook logo\\\"}\",\"children\":[\"$\",\"svg\",null,{\"width\":\"28\",\"height\":\"28\",\"viewBox\":\"0 0 28 28\",\"fill\":\"none\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"children\":[[\"$\",\"rect\",null,{\"x\":\"0.21875\",\"width\":\"27.2195\",\"height\":\"27.2195\",\"rx\":\"13.6098\",\"fill\":\"currentColor\"}],[\"$\",\"path\",null,{\"className\":\" 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\"}]]}]}],[\"$\",\"$L16\",null,{\"target\":\"_blank\",\"href\":\"https://www.linkedin.com/company/tailscale\",\"className\":\"group transition-colors duration-300 text-heading-black hover:text-grey-3\",\"data-track\":\"Link Clicked\",\"data-track-properties\":\"{\\\"label\\\": \\\"Footer LinkedIn logo\\\"}\",\"children\":[\"$\",\"svg\",null,{\"width\":\"28\",\"height\":\"28\",\"viewBox\":\"0 0 28 28\",\"fill\":\"none\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"children\":[[\"$\",\"rect\",null,{\"x\":\"0.439453\",\"width\":\"27.2195\",\"height\":\"27.2195\",\"rx\":\"13.6098\",\"fill\":\"currentColor\"}],[\"$\",\"path\",null,{\"className\":\" transition-colors duration-300 group-hover:fill-heading-black\",\"d\":\"M8.68685 18.6518H10.8825V11.5871H8.68685V18.6518Z\",\"fill\":\"white\"}],[\"$\",\"path\",null,{\"className\":\" 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\",null,{\"className\":\" 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\"}]]}]}],[\"$\",\"$L16\",null,{\"target\":\"_blank\",\"href\":\"https://hachyderm.io/@tailscale\",\"rel\":\"me\",\"className\":\"group transition-colors duration-300 text-heading-black hover:text-grey-3\",\"data-track\":\"Link Clicked\",\"data-track-properties\":\"{\\\"label\\\": \\\"Footer Mastodon logo\\\"}\",\"children\":[\"$\",\"svg\",null,{\"width\":\"28\",\"height\":\"29\",\"viewBox\":\"0 0 28 29\",\"fill\":\"none\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"children\":[[\"$\",\"rect\",null,{\"y\":\"0.988281\",\"width\":\"28\",\"height\":\"28\",\"rx\":\"14\",\"fill\":\"currentColor\"}],[\"$\",\"path\",null,{\"className\":\"transition-colors duration-300 group-hover:fill-heading-black\",\"fill\":\"white\",\"d\":\"$19\"}]]}]}],[\"$\",\"$L16\",null,{\"target\":\"_blank\",\"href\":\"https://www.youtube.com/@Tailscale\",\"className\":\"group transition-colors duration-300 text-heading-black hover:text-grey-3\",\"data-track\":\"Link Clicked\",\"data-track-properties\":\"{\\\"label\\\": \\\"Footer Youtube logo\\\"}\",\"children\":[\"$\",\"svg\",null,{\"width\":\"28\",\"height\":\"28\",\"viewBox\":\"0 0 28 28\",\"fill\":\"none\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"children\":[[\"$\",\"rect\",null,{\"x\":\"0.658203\",\"width\":\"27.2195\",\"height\":\"27.2195\",\"rx\":\"13.6098\",\"fill\":\"currentColor\"}],[\"$\",\"path\",null,{\"className\":\" 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\"}]]}]}]]}],[\"$\",\"div\",null,{\"className\":\"t-14 flex flex-wrap tracking-[0.07px] xxs:col-span-2 md:col-span-12 text-heading-black/60 \",\"children\":[\"© \",2025,\" \",\"Tailscale Inc. All rights reserved. Tailscale is a registered trademark of Tailscale Inc.\"]}]]}]}]]}]]\n"])</script><script>self.__next_f.push([1,"1a:I[43046,[\"2972\",\"static/chunks/2972-04611c7b37409cb4.js\",\"4302\",\"static/chunks/4302-c45bec305c844d62.js\",\"9919\",\"static/chunks/9919-c01a1ac3548cb18e.js\",\"7163\",\"static/chunks/app/kb/%5B%5B...params%5D%5D/page-a4e571fc2bfbc86f.js\"],\"Menu\"]\n141:I[17392,[\"2972\",\"static/chunks/2972-04611c7b37409cb4.js\",\"4302\",\"static/chunks/4302-c45bec305c844d62.js\",\"9919\",\"static/chunks/9919-c01a1ac3548cb18e.js\",\"7163\",\"static/chunks/app/kb/%5B%5B...params%5D%5D/page-a4e571fc2bfbc86f.js\"],\"Drawer\"]\n2ef:\"$Sreact.suspense\"\n2f0:I[82663,[\"2972\",\"static/chunks/2972-04611c7b37409cb4.js\",\"4302\",\"static/chunks/4302-c45bec305c844d62.js\",\"9919\",\"static/chunks/9919-c01a1ac3548cb18e.js\",\"7163\",\"static/chunks/app/kb/%5B%5B...params%5D%5D/page-a4e571fc2bfbc86f.js\"],\"Search\"]\n2f1:\"$Sreact.fragment\"\n2f2:I[93285,[\"2972\",\"static/chunks/2972-04611c7b37409cb4.js\",\"4302\",\"static/chunks/4302-c45bec305c844d62.js\",\"9919\",\"static/chunks/9919-c01a1ac3548cb18e.js\",\"7163\",\"static/chunks/app/kb/%5B%5B...params%5D%5D/page-a4e571fc2bfbc86f.js\"],\"default\"]\n2f3:I[97263,[\"2972\",\"static/chunks/2972-04611c7b37409cb4.js\",\"4302\",\"static/chunks/4302-c45bec305c844d62.js\",\"9919\",\"static/chunks/9919-c01a1ac3548cb18e.js\",\"7163\",\"static/chunks/app/kb/%5B%5B...params%5D%5D/page-a4e571fc2bfbc86f.js\"],\"HeaderLink\"]\n2f4:I[46859,[\"2972\",\"static/chunks/2972-04611c7b37409cb4.js\",\"4302\",\"static/chunks/4302-c45bec305c844d62.js\",\"9919\",\"static/chunks/9919-c01a1ac3548cb18e.js\",\"7163\",\"static/chunks/app/kb/%5B%5B...params%5D%5D/page-a4e571fc2bfbc86f.js\"],\"default\"]\n2f5:I[15293,[\"2972\",\"static/chunks/2972-04611c7b37409cb4.js\",\"4302\",\"static/chunks/4302-c45bec305c844d62.js\",\"9919\",\"static/chunks/9919-c01a1ac3548cb18e.js\",\"7163\",\"static/chunks/app/kb/%5B%5B...params%5D%5D/page-a4e571fc2bfbc86f.js\"],\"default\"]\n2f6:I[95940,[\"2972\",\"static/chunks/2972-04611c7b37409cb4.js\",\"4302\",\"static/chunks/4302-c45bec305c844d62.js\",\"9919\",\"static/chunks/9919-c01a1ac3548cb18e.js\",\"7163\",\"static/chunks/app/kb/%5B%5B...params%5D%5D/page-a4e571fc2bfbc86f.js\"],\"OnThisPage\"]\n1c:{\"label\":\"Download ↗\",\"href\":"])</script><script>self.__next_f.push([1,"\"/downloads\"}\n1d:{\"label\":\"Update Tailscale\",\"numericId\":1067,\"slug\":\"update\"}\n1e:{\"label\":\"Uninstall Tailscale\",\"numericId\":1069,\"slug\":\"uninstall\"}\n23:{\"label\":\"Deploy on Android\",\"numericId\":1384,\"slug\":\"android-mdm\"}\n24:{\"label\":\"Deploy on iOS/tvOS\",\"numericId\":1380,\"slug\":\"ios-mdm\"}\n25:{\"label\":\"Deploy on macOS\",\"numericId\":1286,\"slug\":\"macos-mdm\"}\n26:{\"label\":\"Deploy on Windows\",\"numericId\":1318,\"slug\":\"windows-mdm\"}\n22:[\"$23\",\"$24\",\"$25\",\"$26\"]\n21:{\"label\":\"Customize Tailscale using system policies\",\"numericId\":1315,\"slug\":\"mdm-keys\",\"items\":\"$22\"}\n29:{\"label\":\"Google Workspace\",\"numericId\":1386,\"slug\":\"mdm-google-workspace\"}\n2a:{\"label\":\"Jamf\",\"numericId\":1328,\"slug\":\"mdm-jamf\"}\n2b:{\"label\":\"JumpCloud\",\"numericId\":1485,\"slug\":\"mdm-jumpcloud\"}\n2c:{\"label\":\"Kandji\",\"numericId\":1329,\"slug\":\"mdm-kandji\"}\n2d:{\"label\":\"Microsoft Intune\",\"numericId\":1327,\"slug\":\"mdm-microsoft-intune\"}\n2e:{\"label\":\"SimpleMDM\",\"numericId\":1330,\"slug\":\"mdm-simplemdm\"}\n2f:{\"label\":\"TinyMDM\",\"numericId\":1385,\"slug\":\"mdm-tinymdm\"}\n28:[\"$29\",\"$2a\",\"$2b\",\"$2c\",\"$2d\",\"$2e\",\"$2f\"]\n27:{\"label\":\"MDM integration partners\",\"numericId\":1448,\"slug\":\"mdm-integration-partners\",\"items\":\"$28\"}\n20:[\"$21\",\"$27\"]\n1f:{\"label\":\"Deploy with MDM\",\"numericId\":1362,\"slug\":\"mdm\",\"items\":\"$20\"}\n1b:[\"$1c\",\"$1d\",\"$1e\",\"$1f\"]\n31:{\"label\":\"Use exit nodes\",\"numericId\":1408,\"slug\":\"quick-guide-exit-node\"}\n32:{\"label\":\"Configure a subnet router\",\"numericId\":1406,\"slug\":\"quick-guide-subnets\"}\n33:{\"label\":\"Host a website\",\"numericId\":1310,\"slug\":\"quick-guide-host-websites\"}\n34:{\"label\":\"Install on AWS\",\"numericId\":1449,\"slug\":\"quick-guide-aws\"}\n35:{\"label\":\"SSH into a Linux virtual machine\",\"numericId\":1308,\"slug\":\"quick-guide-ssh-linux-vm\"}\n36:{\"label\":\"Access a virtual private cloud (VPC)\",\"numericId\":1309,\"slug\":\"quick-guide-access-vpc\"}\n37:{\"label\":\"Add a Docker container\",\"numericId\":1453,\"slug\":\"quick-guide-docker\"}\n30:[\"$31\",\"$32\",\"$33\",\"$34\",\"$35\",\"$36\",\"$37\"]\n39:{\"label\":\"Google\",\"numericId\":1199,\"slug\":\"sso-google\"}\n3a:{\"label\":\"Microsoft Entra ID\",\"numericI"])</script><script>self.__next_f.push([1,"d\":1285,\"slug\":\"sso-microsoft\"}\n3b:{\"label\":\"Okta\",\"numericId\":1066,\"slug\":\"sso-okta\"}\n3c:{\"label\":\"GitHub\",\"numericId\":1284,\"slug\":\"sso-github\"}\n3d:{\"label\":\"Apple\",\"numericId\":1283,\"slug\":\"sso-apple\"}\n3e:{\"label\":\"OneLogin\",\"numericId\":1070,\"slug\":\"sso-onelogin\"}\n41:{\"label\":\"Google Workspace\",\"numericId\":1317,\"slug\":\"sso-google-sync\"}\n42:{\"label\":\"Microsoft Entra ID\",\"numericId\":1249,\"slug\":\"sso-entra-id-scim\"}\n43:{\"label\":\"Okta\",\"numericId\":1180,\"slug\":\"sso-okta-scim\"}\n40:[\"$41\",\"$42\",\"$43\"]\n3f:{\"label\":\"User \u0026 group provisioning\",\"numericId\":1290,\"slug\":\"user-group-provisioning\",\"items\":\"$40\"}\n44:{\"label\":\"Custom OIDC providers\",\"numericId\":1240,\"slug\":\"sso-custom-oidc\"}\n45:{\"label\":\"Enable 2FA and MFA\",\"numericId\":1075,\"slug\":\"multifactor-auth\"}\n38:[\"$39\",\"$3a\",\"$3b\",\"$3c\",\"$3d\",\"$3e\",\"$3f\",\"$44\",\"$45\"]\n4b:{\"label\":\"ACL syntax\",\"numericId\":1337,\"slug\":\"acl-syntax\"}\n4a:[\"$4b\"]\n49:{\"label\":\"Manage ACLs\",\"numericId\":1018,\"slug\":\"acls\",\"items\":\"$4a\"}\n4c:{\"label\":\"Manage grants\",\"numericId\":1324,\"slug\":\"acl-grants\"}\n4d:{\"label\":\"Edit the tailnet policy file\",\"numericId\":1338,\"slug\":\"acl-edit\"}\n50:{\"label\":\"Manage ACLs with Bitbucket\",\"numericId\":1302,\"slug\":\"gitops-acls-bitbucket\"}\n51:{\"label\":\"Manage ACLs with GitHub\",\"numericId\":1306,\"slug\":\"gitops-acls-github\"}\n52:{\"label\":\"Manage ACLs with GitLab\",\"numericId\":1254,\"slug\":\"gitops-acls-gitlab\"}\n4f:[\"$50\",\"$51\",\"$52\"]\n4e:{\"label\":\"Manage ACLs with GitOps\",\"numericId\":1204,\"slug\":\"gitopcs-acls\",\"items\":\"$4f\"}\n48:[\"$49\",\"$4c\",\"$4d\",\"$4e\"]\n47:{\"label\":\"Manage access control\",\"numericId\":1393,\"slug\":\"access-control\",\"items\":\"$48\"}\n55:{\"label\":\"Device posture for JIT access\",\"numericId\":1383,\"slug\":\"device-posture-for-jit\"}\n58:{\"label\":\"ConductorOne\",\"numericId\":1208,\"slug\":\"jit-access-conductorone\"}\n59:{\"label\":\"Opal\",\"numericId\":1209,\"slug\":\"jit-access-opal\"}\n5a:{\"label\":\"Sym\",\"numericId\":1206,\"slug\":\"jit-access-sym\"}\n57:[\"$58\",\"$59\",\"$5a\"]\n56:{\"label\":\"3rd party JIT access integrations\",\"numericId\":1374,\"slug\":\"jit-access-integrations\",\"items\":\"$57\"}\n54:[\"$55\",\"$"])</script><script>self.__next_f.push([1,"56\"]\n53:{\"label\":\"Manage just-in-time access\",\"numericId\":1443,\"slug\":\"just-in-time-access\",\"items\":\"$54\"}\n5d:{\"label\":\"Add a device\",\"numericId\":1316,\"slug\":\"device-add\"}\n5e:{\"label\":\"Device approval\",\"numericId\":1099,\"slug\":\"device-approval\"}\n5f:{\"label\":\"Rename a device\",\"numericId\":1098,\"slug\":\"machine-names\"}\n60:{\"label\":\"Remove a device\",\"numericId\":1260,\"slug\":\"device-remove\"}\n63:{\"label\":\"Use Device Identity Collection\",\"numericId\":1326,\"slug\":\"device-identity\"}\n64:{\"label\":\"CrowdStrike Falcon\",\"numericId\":1289,\"slug\":\"crowdstrike-zta\"}\n65:{\"label\":\"SentinelOne\",\"numericId\":1390,\"slug\":\"sentinelone\"}\n66:{\"label\":\"1Password XAM\",\"numericId\":1407,\"slug\":\"kolide\"}\n67:{\"label\":\"Jamf Pro\",\"numericId\":1409,\"slug\":\"jamf-pro\"}\n68:{\"label\":\"Microsoft Intune\",\"numericId\":1410,\"slug\":\"intune\"}\n69:{\"label\":\"Kandji\",\"numericId\":1405,\"slug\":\"kandji\"}\n62:[\"$63\",\"$64\",\"$65\",\"$66\",\"$67\",\"$68\",\"$69\"]\n61:{\"label\":\"Device posture management\",\"numericId\":1288,\"slug\":\"device-posture\",\"items\":\"$62\"}\n6a:{\"label\":\"Filter devices\",\"numericId\":1176,\"slug\":\"filter-devices\"}\n6b:{\"label\":\"Export list of devices\",\"numericId\":1228,\"slug\":\"export-device-list\"}\n6c:{\"label\":\"Use the web interface\",\"numericId\":1325,\"slug\":\"device-web-interface\"}\n6d:{\"label\":\"Add a device using a QR code\",\"numericId\":1336,\"slug\":\"device-add-qr-code\"}\n5c:[\"$5d\",\"$5e\",\"$5f\",\"$60\",\"$61\",\"$6a\",\"$6b\",\"$6c\",\"$6d\"]\n5b:{\"label\":\"Manage devices\",\"numericId\":1372,\"slug\":\"manage-devices\",\"items\":\"$5c\"}\n72:{\"label\":\"Invite team members\",\"numericId\":1064,\"slug\":\"invite-team-members\"}\n73:{\"label\":\"Invite any user\",\"numericId\":1271,\"slug\":\"invite-any-user\"}\n74:{\"label\":\"Use passkeys\",\"numericId\":1269,\"slug\":\"passkeys\"}\n71:[\"$72\",\"$73\",\"$74\"]\n70:{\"label\":\"Invite users\",\"items\":\"$71\",\"numericId\":1371,\"slug\":\"invite-users\"}\n75:{\"label\":\"User approval\",\"numericId\":1239,\"slug\":\"user-approval\"}\n76:{\"label\":\"User roles\",\"numericId\":1138,\"slug\":\"user-roles\"}\n77:{\"label\":\"Change user roles\",\"numericId\":1171,\"slug\":\"changing-user-roles\"}\n78:{\"label\":\"Remove users\",\"numericId\":1145,\""])</script><script>self.__next_f.push([1,"slug\":\"remove-team-members\"}\n79:{\"label\":\"Fast user switching\",\"numericId\":1225,\"slug\":\"fast-user-switching\"}\n7a:{\"label\":\"Export list of users\",\"numericId\":1229,\"slug\":\"export-user-list\"}\n7b:{\"label\":\"Offboard users\",\"numericId\":1248,\"slug\":\"offboarding-users\"}\n7c:{\"label\":\"Admin console session timeout\",\"numericId\":1461,\"slug\":\"admin-console-session-timeout\"}\n6f:[\"$70\",\"$75\",\"$76\",\"$77\",\"$78\",\"$79\",\"$7a\",\"$7b\",\"$7c\"]\n6e:{\"label\":\"Manage users\",\"numericId\":1373,\"slug\":\"manage-users\",\"items\":\"$6f\"}\n7d:{\"label\":\"Tailnet lock\",\"numericId\":1226,\"slug\":\"tailnet-lock\"}\n46:[\"$47\",\"$53\",\"$5b\",\"$6e\",\"$7d\"]\n81:{\"label\":\"Subnet router BGP advertisement\",\"numericId\":1298,\"slug\":\"subnet-bgp\"}\n82:{\"label\":\"4via6 subnet routers\",\"numericId\":1201,\"slug\":\"4via6-subnets\"}\n83:{\"label\":\"Site-to-site networking\",\"numericId\":1214,\"slug\":\"site-to-site\"}\n80:[\"$81\",\"$82\",\"$83\"]\n7f:{\"label\":\"Set up a subnet router\",\"numericId\":1019,\"slug\":\"subnets\",\"items\":\"$80\"}\n86:{\"label\":\"Use a Mullvad exit node\",\"numericId\":1258,\"slug\":\"mullvad-exit-nodes\"}\n87:{\"label\":\"Recommended exit nodes\",\"numericId\":1392,\"slug\":\"auto-exit-nodes\"}\n88:{\"label\":\"Mandatory exit nodes\",\"numericId\":1413,\"slug\":\"mandatory-exit-nodes\"}\n85:[\"$86\",\"$87\",\"$88\"]\n84:{\"label\":\"Set up an exit node\",\"numericId\":1103,\"slug\":\"exit-nodes\",\"items\":\"$85\"}\n8b:{\"label\":\"How app connectors work\",\"numericId\":1342,\"slug\":\"how-app-connectors-work\"}\n8c:{\"label\":\"Best practices for SaaS apps\",\"numericId\":1332,\"slug\":\"apps-best-practices\"}\n8d:{\"label\":\"Use preset apps\",\"numericId\":1339,\"slug\":\"preset-apps\"}\n8a:[\"$8b\",\"$8c\",\"$8d\"]\n89:{\"label\":\"Set up an app connector\",\"numericId\":1281,\"slug\":\"app-connectors\",\"items\":\"$8a\"}\n90:{\"label\":\"Configure Linux DNS\",\"numericId\":1188,\"slug\":\"linux-dns\"}\n91:{\"label\":\"Why is resolv.conf being overwritten?\",\"numericId\":1235,\"slug\":\"resolv-conf\"}\n92:{\"label\":\"Use NextDNS\",\"numericId\":1218,\"slug\":\"nextdns\"}\n93:{\"label\":\"Use Control D\",\"numericId\":1403,\"slug\":\"control-d\"}\n94:{\"label\":\"Use Unbound DNS in OPNsense\",\"numericId\":1299,\"slug\":\"opnsense-unbound\"}\n"])</script><script>self.__next_f.push([1,"8f:[\"$90\",\"$91\",\"$92\",\"$93\",\"$94\"]\n8e:{\"label\":\"Use DNS\",\"numericId\":1054,\"slug\":\"dns\",\"items\":\"$8f\"}\n95:{\"label\":\"Set up MagicDNS\",\"numericId\":1081,\"slug\":\"magicdns\"}\n96:{\"label\":\"Set up high availability\",\"numericId\":1115,\"slug\":\"high-availability\"}\n7e:[\"$7f\",\"$84\",\"$89\",\"$8e\",\"$95\",\"$96\"]\n98:{\"label\":\"Set up a server\",\"numericId\":1245,\"slug\":\"set-up-servers\"}\n99:{\"label\":\"Use tags\",\"numericId\":1068,\"slug\":\"tags\"}\n9a:{\"label\":\"Install Tailscale with cloud-init\",\"numericId\":1293,\"slug\":\"cloud-init\"}\n9d:{\"label\":\"Automate key expiry\",\"numericId\":1028,\"slug\":\"key-expiry\"}\n9c:[\"$9d\"]\n9b:{\"label\":\"Use auth keys\",\"numericId\":1085,\"slug\":\"auth-keys\",\"items\":\"$9c\"}\na0:{\"label\":\"Use Tailscale SSH Console\",\"numericId\":1216,\"slug\":\"tailscale-ssh-console\"}\n9f:[\"$a0\"]\n9e:{\"label\":\"Use Tailscale SSH\",\"numericId\":1193,\"slug\":\"tailscale-ssh\",\"items\":\"$9f\"}\na1:{\"label\":\"Set up HTTPS certificates\",\"numericId\":1153,\"slug\":\"enabling-https\"}\na2:{\"label\":\"Run an ephemeral node\",\"numericId\":1111,\"slug\":\"ephemeral-nodes\"}\na3:{\"label\":\"Run unattended\",\"numericId\":1088,\"slug\":\"run-unattended\"}\n97:[\"$98\",\"$99\",\"$9a\",\"$9b\",\"$9e\",\"$a1\",\"$a2\",\"$a3\"]\na5:{\"label\":\"View services\",\"numericId\":1100,\"slug\":\"services\"}\na6:{\"label\":\"Share nodes\",\"numericId\":1084,\"slug\":\"sharing\"}\na9:{\"label\":\"Taildrop with NAS\",\"numericId\":1418,\"slug\":\"taildrop-nas\"}\na8:[\"$a9\"]\na7:{\"label\":\"Use Taildrop\",\"numericId\":1106,\"slug\":\"taildrop\",\"items\":\"$a8\"}\na4:[\"$a5\",\"$a6\",\"$a7\"]\nad:{\"label\":\"Examples\",\"numericId\":1247,\"slug\":\"funnel-examples\"}\nae:{\"label\":\"Funnel vs. sharing\",\"numericId\":1464,\"slug\":\"funnel-vs-sharing\"}\nac:[\"$ad\",\"$ae\"]\nab:{\"label\":\"Tailscale Funnel\",\"numericId\":1223,\"slug\":\"funnel\",\"items\":\"$ac\"}\nb1:{\"label\":\"Examples\",\"numericId\":1313,\"slug\":\"serve-examples\"}\nb0:[\"$b1\"]\naf:{\"label\":\"Tailscale Serve\",\"numericId\":1312,\"slug\":\"serve\",\"items\":\"$b0\"}\naa:[\"$ab\",\"$af\"]\nb3:{\"label\":\"Code from your iPad\",\"numericId\":1166,\"slug\":\"vscode-ipad\"}\nb4:{\"label\":\"Lock down a server\",\"numericId\":1077,\"slug\":\"secure-server-ubuntu\"}\nb5:{\"label\":\"Access a PiKVM\",\"numeri"])</script><script>self.__next_f.push([1,"cId\":1292,\"slug\":\"pikvm\"}\nb6:{\"label\":\"Run a Pi-hole\",\"numericId\":1114,\"slug\":\"pi-hole\"}\nb7:{\"label\":\"Secure external services\",\"numericId\":1059,\"slug\":\"ip-blocklist-relays\"}\nba:{\"label\":\"Device posture for JIT access\",\"numericId\":1383,\"slug\":\"device-posture-for-jit\"}\nbd:{\"label\":\"ConductorOne\",\"numericId\":1208,\"slug\":\"jit-access-conductorone\"}\nbe:{\"label\":\"Opal\",\"numericId\":1209,\"slug\":\"jit-access-opal\"}\nbf:{\"label\":\"Sym\",\"numericId\":1206,\"slug\":\"jit-access-sym\"}\nbc:[\"$bd\",\"$be\",\"$bf\"]\nbb:{\"label\":\"3rd party JIT access integrations\",\"numericId\":1374,\"slug\":\"jit-access-integrations\",\"items\":\"$bc\"}\nb9:[\"$ba\",\"$bb\"]\nb8:{\"label\":\"Just-in-time access\",\"numericId\":1443,\"slug\":\"just-in-time-access\",\"items\":\"$b9\"}\nc4:{\"label\":\"Terraform\",\"numericId\":1210,\"slug\":\"terraform-provider\"}\nc5:{\"label\":\"Pulumi\",\"numericId\":1211,\"slug\":\"pulumi-provider\"}\nc3:[\"$c4\",\"$c5\"]\nc2:{\"label\":\"Infrastructure as code\",\"numericId\":1370,\"slug\":\"infrastructure-as-code\",\"items\":\"$c3\"}\nc6:{\"label\":\"macOS and iOS shortcuts\",\"numericId\":1233,\"slug\":\"mac-ios-shortcuts\"}\nc1:[\"$c2\",\"$c6\"]\nc0:{\"label\":\"Automation\",\"numericId\":1430,\"slug\":\"automations\",\"items\":\"$c1\"}\nb2:[\"$b3\",\"$b4\",\"$b5\",\"$b6\",\"$b7\",\"$b8\",\"$c0\"]\nc8:{\"label\":\"AWS Lightsail\",\"numericId\":1128,\"slug\":\"aws-lightsail\"}\nc9:{\"label\":\"AWS VPC\",\"numericId\":1021,\"slug\":\"install-aws\"}\nca:{\"label\":\"Azure App Service\",\"numericId\":1126,\"slug\":\"azure-app-service\"}\ncb:{\"label\":\"Azure Linux VMs\",\"numericId\":1142,\"slug\":\"cloud-azure-linux\"}\ncc:{\"label\":\"Azure Windows VMs\",\"numericId\":1143,\"slug\":\"cloud-azure-windows\"}\ncd:{\"label\":\"Google Compute Engine VMs\",\"numericId\":1147,\"slug\":\"cloud-gce\"}\nce:{\"label\":\"Hetzner VMs\",\"numericId\":1150,\"slug\":\"cloud-hetzner\"}\ncf:{\"label\":\"Oracle Cloud VMs\",\"numericId\":1149,\"slug\":\"cloud-oracle\"}\nc7:[\"$c8\",\"$c9\",\"$ca\",\"$cb\",\"$cc\",\"$cd\",\"$ce\",\"$cf\"]\nd1:{\"label\":\"Docker\",\"numericId\":1282,\"slug\":\"docker\"}\nd6:{\"label\":\"API server proxy\",\"numericId\":1437,\"slug\":\"kubernetes-operator-api-server-proxy\"}\nd7:{\"label\":\"Egress\",\"numericId\":1438,\"slug\":\"kubernetes-operator-cluster-e"])</script><script>self.__next_f.push([1,"gress\"}\nd8:{\"label\":\"Ingress\",\"numericId\":1439,\"slug\":\"kubernetes-operator-cluster-ingress\"}\nd9:{\"label\":\"Cross cluster\",\"numericId\":1442,\"slug\":\"kubernetes-operator-cross-cluster\"}\nda:{\"label\":\"Cloud services\",\"numericId\":1440,\"slug\":\"kubernetes-operator-cloud-services\"}\ndb:{\"label\":\"Subnet routers and exit nodes\",\"numericId\":1441,\"slug\":\"kubernetes-operator-connector\"}\ndc:{\"label\":\"App connector\",\"numericId\":1517,\"slug\":\"kubernetes-operator-app-connector\"}\ndd:{\"label\":\"Recorder nodes\",\"numericId\":1484,\"slug\":\"kubernetes-operator-deploying-tsrecorder\"}\nde:{\"label\":\"Session recording\",\"numericId\":1454,\"slug\":\"kubernetes-operator-session-recording\"}\ndf:{\"label\":\"Operator resource customization\",\"numericId\":1445,\"slug\":\"kubernetes-operator-customization\"}\ne0:{\"label\":\"Troubleshooting\",\"numericId\":1446,\"slug\":\"kubernetes-operator-troubleshooting\"}\nd5:[\"$d6\",\"$d7\",\"$d8\",\"$d9\",\"$da\",\"$db\",\"$dc\",\"$dd\",\"$de\",\"$df\",\"$e0\"]\nd4:{\"label\":\"Kubernetes Operator\",\"numericId\":1236,\"slug\":\"kubernetes-operator\",\"items\":\"$d5\"}\nd3:[\"$d4\"]\nd2:{\"label\":\"Kubernetes\",\"items\":\"$d3\",\"numericId\":1185,\"slug\":\"kubernetes\"}\ne1:{\"label\":\"LXC containers\",\"numericId\":1130,\"slug\":\"lxc-unprivileged\"}\ne2:{\"label\":\"Proxmox\",\"numericId\":1133,\"slug\":\"proxmox\"}\nd0:[\"$d1\",\"$d2\",\"$e1\",\"$e2\"]\ne4:{\"label\":\"AWS App Runner\",\"numericId\":1127,\"slug\":\"aws-app-runner\"}\ne5:{\"label\":\"AWS Lambda\",\"numericId\":1113,\"slug\":\"aws-lambda\"}\ne6:{\"label\":\"Fly.io\",\"numericId\":1132,\"slug\":\"flydotio\"}\ne7:{\"label\":\"Google Cloud Run\",\"numericId\":1108,\"slug\":\"cloudrun\"}\ne8:{\"label\":\"Heroku\",\"numericId\":1107,\"slug\":\"heroku\"}\ne3:[\"$e4\",\"$e5\",\"$e6\",\"$e7\",\"$e8\"]\nea:{\"label\":\"AWS RDS\",\"numericId\":1141,\"slug\":\"aws-rds\"}\neb:{\"label\":\"Crunchy Bridge\",\"numericId\":1231,\"slug\":\"crunchy-bridge\"}\ne9:[\"$ea\",\"$eb\"]\ned:{\"label\":\"code-server\",\"numericId\":1164,\"slug\":\"codeserver\"}\nee:{\"label\":\"Coder\",\"numericId\":1163,\"slug\":\"coder\"}\nef:{\"label\":\"CodeSandbox\",\"numericId\":1221,\"slug\":\"codesandbox\"}\nf0:{\"label\":\"GitHub Codespaces\",\"numericId\":1160,\"slug\":\"github-codespaces\"}\nf1:{\"label\":\"Gitpod\",\"nume"])</script><script>self.__next_f.push([1,"ricId\":1161,\"slug\":\"gitpod\"}\nf2:{\"label\":\"OpenVSCode\",\"numericId\":1162,\"slug\":\"openvscode\"}\nec:[\"$ed\",\"$ee\",\"$ef\",\"$f0\",\"$f1\",\"$f2\"]\nf4:{\"label\":\"Visual Studio Code Extension\",\"numericId\":1265,\"slug\":\"vscode-extension\"}\nf5:{\"label\":\"Tailscale GitHub Action\",\"numericId\":1276,\"slug\":\"tailscale-github-action\"}\nf6:{\"label\":\"Tailscale with GitLab CI/CD\",\"numericId\":1287,\"slug\":\"tailscale-gitlab-runner\"}\nf7:{\"label\":\"Docker Desktop\",\"numericId\":1184,\"slug\":\"docker-desktop\"}\nf8:{\"label\":\"Grafana\",\"numericId\":1523,\"slug\":\"grafana\"}\nf3:[\"$f4\",\"$f5\",\"$f6\",\"$f7\",\"$f8\"]\nfa:{\"label\":\"Overview\",\"numericId\":1181,\"slug\":\"firewalls\"}\nfb:{\"label\":\"OPNsense\",\"numericId\":1097,\"slug\":\"install-opnsense\"}\nfc:{\"label\":\"Palo Alto Networks\",\"numericId\":1333,\"slug\":\"firewall-palo-alto-networks\"}\nfd:{\"label\":\"pfSense\",\"numericId\":1146,\"slug\":\"pfsense\"}\nfe:{\"label\":\"Firewall mode\",\"numericId\":1294,\"slug\":\"firewall-mode\"}\nf9:[\"$fa\",\"$fb\",\"$fc\",\"$fd\",\"$fe\"]\n100:{\"label\":\"Caddy Server\",\"numericId\":1190,\"slug\":\"caddy-certificates\"}\n101:{\"label\":\"Traefik Proxy\",\"numericId\":1234,\"slug\":\"traefik-certificates\"}\nff:[\"$100\",\"$101\"]\n103:{\"label\":\"Synology\",\"numericId\":1131,\"slug\":\"synology\"}\n104:{\"label\":\"QNAP\",\"numericId\":1273,\"slug\":\"qnap\"}\n105:{\"label\":\"TrueNAS SCALE\",\"numericId\":1483,\"slug\":\"truenas-scale\"}\n106:{\"label\":\"Unraid\",\"numericId\":1478,\"slug\":\"unraid\"}\n102:[\"$103\",\"$104\",\"$105\",\"$106\"]\n108:{\"label\":\"Send recordings to S3\",\"numericId\":1263,\"slug\":\"session-recording-s3\"}\n109:{\"label\":\"Deploy multiple recorder nodes\",\"numericId\":1262,\"slug\":\"multiple-recorder-nodes\"}\n107:[\"$108\",\"$109\"]\n10b:{\"label\":\"Pricing ↗\",\"href\":\"/pricing\"}\n10c:{\"label\":\"Pricing \u0026 Plans FAQ\",\"numericId\":1251,\"slug\":\"pricing-faq\"}\n10d:{\"label\":\"Free plans and discounts\",\"numericId\":1154,\"slug\":\"free-plans-discounts\"}\n10e:{\"label\":\"Modify billing\",\"numericId\":1182,\"slug\":\"billing-information\"}\n10f:{\"label\":\"Tailscale on Azure Marketplace\",\"numericId\":1220,\"slug\":\"azure-marketplace\"}\n10a:[\"$10b\",\"$10c\",\"$10d\",\"$10e\",\"$10f\"]\n111:{\"label\":\"Grants\",\"numericId\":1324,\"slug\":"])</script><script>self.__next_f.push([1,"\"acl-grants\"}\n112:{\"label\":\"IP sets\",\"numericId\":1387,\"slug\":\"ipsets\"}\n113:{\"label\":\"Via in grants\",\"numericId\":1378,\"slug\":\"via\"}\n110:[\"$111\",\"$112\",\"$113\"]\n115:{\"label\":\"tailscale funnel\",\"numericId\":1311,\"slug\":\"tailscale-funnel\"}\n116:{\"label\":\"tailscale lock\",\"numericId\":1243,\"slug\":\"tailscale-lock\"}\n117:{\"label\":\"tailscale serve\",\"numericId\":1242,\"slug\":\"tailscale-serve\"}\n118:{\"label\":\"tailscale up\",\"numericId\":1241,\"slug\":\"tailscale-up\"}\n119:{\"label\":\"tailscaled\",\"numericId\":1278,\"slug\":\"tailscaled\"}\n114:[\"$115\",\"$116\",\"$117\",\"$118\",\"$119\"]\n11b:{\"label\":\"OAuth clients\",\"numericId\":1215,\"slug\":\"oauth-clients\"}\n11e:{\"label\":\"Hello tsnet\",\"numericId\":1521,\"slug\":\"hello-tsnet\"}\n11f:{\"label\":\"tsnet.Server\",\"numericId\":1522,\"slug\":\"tsnet-server\"}\n11d:[\"$11e\",\"$11f\"]\n11c:{\"label\":\"tsnet for Go programs\",\"numericId\":1244,\"slug\":\"tsnet\",\"items\":\"$11d\"}\n11a:[\"$11b\",\"$11c\"]\n121:{\"label\":\"Deployment checklist\",\"numericId\":1344,\"slug\":\"deployment-checklist\"}\n124:{\"label\":\"Key and secret management\",\"numericId\":1252,\"slug\":\"key-secret-management\"}\n125:{\"label\":\"Secret scanning\",\"numericId\":1301,\"slug\":\"secret-scanning\"}\n126:{\"label\":\"Admin with passkey\",\"numericId\":1341,\"slug\":\"tailnet-passkey-admin\"}\n123:[\"$124\",\"$125\",\"$126\"]\n122:{\"label\":\"Security best practices\",\"items\":\"$123\",\"numericId\":1196,\"slug\":\"security-hardening\"}\n127:{\"label\":\"Performance best practices\",\"numericId\":1320,\"slug\":\"performance-best-practices\"}\n128:{\"label\":\"AWS reference architecture\",\"numericId\":1296,\"slug\":\"aws-reference-architecture\"}\n129:{\"label\":\"Azure reference architecture\",\"numericId\":1314,\"slug\":\"azure-reference-architecture\"}\n12a:{\"label\":\"GCP reference architecture\",\"numericId\":1510,\"slug\":\"gcp-reference-architecture\"}\n120:[\"$121\",\"$122\",\"$127\",\"$128\",\"$129\",\"$12a\"]\n12c:{\"label\":\"About WireGuard\",\"numericId\":1035,\"slug\":\"wireguard\"}\n12d:{\"label\":\"Tailscale encryption\",\"numericId\":1504,\"slug\":\"encryption\"}\n12e:{\"label\":\"Control and data planes\",\"numericId\":1508,\"slug\":\"control-data-planes\"}\n12f:{\"label\":\"Direct vs relayed connections\""])</script><script>self.__next_f.push([1,",\"numericId\":1257,\"slug\":\"connection-types\"}\n130:{\"label\":\"Device connectivity\",\"numericId\":1411,\"slug\":\"device-connectivity\"}\n131:{\"label\":\"How Tailscale assigns IP addresses\",\"numericId\":1033,\"slug\":\"ip-and-dns-addresses\"}\n132:{\"label\":\"Tailscale and the OSI model\",\"numericId\":1456,\"slug\":\"osi\"}\n133:{\"label\":\"Smaller binaries for embedded devices\",\"numericId\":1207,\"slug\":\"small-tailscale\"}\n134:{\"label\":\"Kernel vs. netstack subnet routing \u0026 exit nodes\",\"numericId\":1177,\"slug\":\"kernel-vs-userspace-routers\"}\n135:{\"label\":\"Userspace networking mode\",\"numericId\":1112,\"slug\":\"userspace-networking\"}\n136:{\"label\":\"Node keys\",\"numericId\":1010,\"slug\":\"node-keys\"}\n137:{\"label\":\"Protect SSH Servers\",\"numericId\":1009,\"slug\":\"protect-ssh-servers\"}\n138:{\"label\":\"Tailnet lock white paper\",\"numericId\":1230,\"slug\":\"tailnet-lock-whitepaper\"}\n139:{\"label\":\"DERP servers\",\"numericId\":1232,\"slug\":\"derp-servers\"}\n13a:{\"label\":\"Zero Trust Networking (ZTN)\",\"numericId\":1123,\"slug\":\"zero-trust\"}\n13b:{\"label\":\"IPv4 vs. IPv6 FAQ\",\"numericId\":1134,\"slug\":\"ipv6-faq\"}\n13c:{\"label\":\"Tailscale ping types\",\"numericId\":1465,\"slug\":\"ping-types\"}\n12b:[\"$12c\",\"$12d\",\"$12e\",\"$12f\",\"$130\",\"$131\",\"$132\",\"$133\",\"$134\",\"$135\",\"$136\",\"$137\",\"$138\",\"$139\",\"$13a\",\"$13b\",\"$13c\"]\n13e:{\"label\":\"Troubleshoot device connectivity\",\"numericId\":1463,\"slug\":\"troubleshoot-connectivity\"}\n13d:[\"$13e\"]\n140:{\"label\":\"Unstable builds\",\"numericId\":1083,\"slug\":\"install-unstable\"}\n13f:[\"$140\"]\n142:[\"1080\",\"cli\"]\n146:{\"label\":\"Quickstart\",\"numericId\":1017,\"slug\":\"install\"}\n147:{\"label\":\"Install Tailscale\",\"numericId\":1347,\"slug\":\"installation\",\"items\":\"$1b\"}\n148:{\"label\":\"Quick guides\",\"numericId\":1415,\"slug\":\"quick-guides\",\"items\":\"$30\"}\n149:{\"label\":\"Set up an identity provider\",\"numericId\":1013,\"slug\":\"sso-providers\",\"items\":\"$38\"}\n14a:{\"label\":\"What is Tailscale?\",\"numericId\":1151,\"slug\":\"what-is-tailscale\"}\n145:[\"$146\",\"$147\",\"$148\",\"$149\",\"$14a\"]\n14c:{\"label\":\"Quickstart\",\"numericId\":1017,\"slug\":\"install\",\"nodes\":\"$undefined\"}\n14f:{\"label\":\"Download ↗\",\"href\":\"/downlo"])</script><script>self.__next_f.push([1,"ads\",\"nodes\":\"$undefined\"}\n150:{\"label\":\"Update Tailscale\",\"numericId\":1067,\"slug\":\"update\",\"nodes\":\"$undefined\"}\n151:{\"label\":\"Uninstall Tailscale\",\"numericId\":1069,\"slug\":\"uninstall\",\"nodes\":\"$undefined\"}\n156:{\"label\":\"Deploy on Android\",\"numericId\":1384,\"slug\":\"android-mdm\",\"nodes\":\"$undefined\"}\n157:{\"label\":\"Deploy on iOS/tvOS\",\"numericId\":1380,\"slug\":\"ios-mdm\",\"nodes\":\"$undefined\"}\n158:{\"label\":\"Deploy on macOS\",\"numericId\":1286,\"slug\":\"macos-mdm\",\"nodes\":\"$undefined\"}\n159:{\"label\":\"Deploy on Windows\",\"numericId\":1318,\"slug\":\"windows-mdm\",\"nodes\":\"$undefined\"}\n155:[\"$156\",\"$157\",\"$158\",\"$159\"]\n154:{\"label\":\"Customize Tailscale using system policies\",\"numericId\":1315,\"slug\":\"mdm-keys\",\"items\":\"$22\",\"nodes\":\"$155\"}\n15c:{\"label\":\"Google Workspace\",\"numericId\":1386,\"slug\":\"mdm-google-workspace\",\"nodes\":\"$undefined\"}\n15d:{\"label\":\"Jamf\",\"numericId\":1328,\"slug\":\"mdm-jamf\",\"nodes\":\"$undefined\"}\n15e:{\"label\":\"JumpCloud\",\"numericId\":1485,\"slug\":\"mdm-jumpcloud\",\"nodes\":\"$undefined\"}\n15f:{\"label\":\"Kandji\",\"numericId\":1329,\"slug\":\"mdm-kandji\",\"nodes\":\"$undefined\"}\n160:{\"label\":\"Microsoft Intune\",\"numericId\":1327,\"slug\":\"mdm-microsoft-intune\",\"nodes\":\"$undefined\"}\n161:{\"label\":\"SimpleMDM\",\"numericId\":1330,\"slug\":\"mdm-simplemdm\",\"nodes\":\"$undefined\"}\n162:{\"label\":\"TinyMDM\",\"numericId\":1385,\"slug\":\"mdm-tinymdm\",\"nodes\":\"$undefined\"}\n15b:[\"$15c\",\"$15d\",\"$15e\",\"$15f\",\"$160\",\"$161\",\"$162\"]\n15a:{\"label\":\"MDM integration partners\",\"numericId\":1448,\"slug\":\"mdm-integration-partners\",\"items\":\"$28\",\"nodes\":\"$15b\"}\n153:[\"$154\",\"$15a\"]\n152:{\"label\":\"Deploy with MDM\",\"numericId\":1362,\"slug\":\"mdm\",\"items\":\"$20\",\"nodes\":\"$153\"}\n14e:[\"$14f\",\"$150\",\"$151\",\"$152\"]\n14d:{\"label\":\"Install Tailscale\",\"numericId\":1347,\"slug\":\"installation\",\"items\":\"$1b\",\"nodes\":\"$14e\"}\n165:{\"label\":\"Use exit nodes\",\"numericId\":1408,\"slug\":\"quick-guide-exit-node\",\"nodes\":\"$undefined\"}\n166:{\"label\":\"Configure a subnet router\",\"numericId\":1406,\"slug\":\"quick-guide-subnets\",\"nodes\":\"$undefined\"}\n167:{\"label\":\"Host a website\",\"numericId\":1310,\"slug\":\"quick-guide-host"])</script><script>self.__next_f.push([1,"-websites\",\"nodes\":\"$undefined\"}\n168:{\"label\":\"Install on AWS\",\"numericId\":1449,\"slug\":\"quick-guide-aws\",\"nodes\":\"$undefined\"}\n169:{\"label\":\"SSH into a Linux virtual machine\",\"numericId\":1308,\"slug\":\"quick-guide-ssh-linux-vm\",\"nodes\":\"$undefined\"}\n16a:{\"label\":\"Access a virtual private cloud (VPC)\",\"numericId\":1309,\"slug\":\"quick-guide-access-vpc\",\"nodes\":\"$undefined\"}\n16b:{\"label\":\"Add a Docker container\",\"numericId\":1453,\"slug\":\"quick-guide-docker\",\"nodes\":\"$undefined\"}\n164:[\"$165\",\"$166\",\"$167\",\"$168\",\"$169\",\"$16a\",\"$16b\"]\n163:{\"label\":\"Quick guides\",\"numericId\":1415,\"slug\":\"quick-guides\",\"items\":\"$30\",\"nodes\":\"$164\"}\n16e:{\"label\":\"Google\",\"numericId\":1199,\"slug\":\"sso-google\",\"nodes\":\"$undefined\"}\n16f:{\"label\":\"Microsoft Entra ID\",\"numericId\":1285,\"slug\":\"sso-microsoft\",\"nodes\":\"$undefined\"}\n170:{\"label\":\"Okta\",\"numericId\":1066,\"slug\":\"sso-okta\",\"nodes\":\"$undefined\"}\n171:{\"label\":\"GitHub\",\"numericId\":1284,\"slug\":\"sso-github\",\"nodes\":\"$undefined\"}\n172:{\"label\":\"Apple\",\"numericId\":1283,\"slug\":\"sso-apple\",\"nodes\":\"$undefined\"}\n173:{\"label\":\"OneLogin\",\"numericId\":1070,\"slug\":\"sso-onelogin\",\"nodes\":\"$undefined\"}\n176:{\"label\":\"Google Workspace\",\"numericId\":1317,\"slug\":\"sso-google-sync\",\"nodes\":\"$undefined\"}\n177:{\"label\":\"Microsoft Entra ID\",\"numericId\":1249,\"slug\":\"sso-entra-id-scim\",\"nodes\":\"$undefined\"}\n178:{\"label\":\"Okta\",\"numericId\":1180,\"slug\":\"sso-okta-scim\",\"nodes\":\"$undefined\"}\n175:[\"$176\",\"$177\",\"$178\"]\n174:{\"label\":\"User \u0026 group provisioning\",\"numericId\":1290,\"slug\":\"user-group-provisioning\",\"items\":\"$40\",\"nodes\":\"$175\"}\n179:{\"label\":\"Custom OIDC providers\",\"numericId\":1240,\"slug\":\"sso-custom-oidc\",\"nodes\":\"$undefined\"}\n17a:{\"label\":\"Enable 2FA and MFA\",\"numericId\":1075,\"slug\":\"multifactor-auth\",\"nodes\":\"$undefined\"}\n16d:[\"$16e\",\"$16f\",\"$170\",\"$171\",\"$172\",\"$173\",\"$174\",\"$179\",\"$17a\"]\n16c:{\"label\":\"Set up an identity provider\",\"numericId\":1013,\"slug\":\"sso-providers\",\"items\":\"$38\",\"nodes\":\"$16d\"}\n17b:{\"label\":\"What is Tailscale?\",\"numericId\":1151,\"slug\":\"what-is-tailscale\",\"nodes\":\"$undefined\"}\n14b:[\"$14c\",\""])</script><script>self.__next_f.push([1,"$14d\",\"$163\",\"$16c\",\"$17b\"]\n144:{\"label\":\"Start\",\"slug\":\"start\",\"numericId\":1346,\"items\":\"$145\",\"nodes\":\"$14b\"}\n17e:{\"label\":\"Manage Access\",\"group\":true,\"numericId\":1350,\"slug\":\"manage\",\"items\":\"$46\"}\n17f:{\"label\":\"Route Traffic\",\"group\":true,\"numericId\":1351,\"slug\":\"route\",\"items\":\"$7e\"}\n180:{\"label\":\"Set Up Servers\",\"group\":true,\"numericId\":1352,\"slug\":\"servers\",\"items\":\"$97\"}\n181:{\"label\":\"Access \u0026 Share Services\",\"group\":true,\"numericId\":1354,\"slug\":\"share\",\"items\":\"$a4\"}\n182:{\"label\":\"Share a web server\",\"group\":true,\"numericId\":1353,\"slug\":\"share-web-server\",\"items\":\"$aa\"}\n183:{\"label\":\"Solutions\",\"group\":true,\"numericId\":1355,\"slug\":\"solutions\",\"items\":\"$b2\"}\n17d:[\"$17e\",\"$17f\",\"$180\",\"$181\",\"$182\",\"$183\"]\n18b:{\"label\":\"ACL syntax\",\"numericId\":1337,\"slug\":\"acl-syntax\",\"nodes\":\"$undefined\"}\n18a:[\"$18b\"]\n189:{\"label\":\"Manage ACLs\",\"numericId\":1018,\"slug\":\"acls\",\"items\":\"$4a\",\"nodes\":\"$18a\"}\n18c:{\"label\":\"Manage grants\",\"numericId\":1324,\"slug\":\"acl-grants\",\"nodes\":\"$undefined\"}\n18d:{\"label\":\"Edit the tailnet policy file\",\"numericId\":1338,\"slug\":\"acl-edit\",\"nodes\":\"$undefined\"}\n190:{\"label\":\"Manage ACLs with Bitbucket\",\"numericId\":1302,\"slug\":\"gitops-acls-bitbucket\",\"nodes\":\"$undefined\"}\n191:{\"label\":\"Manage ACLs with GitHub\",\"numericId\":1306,\"slug\":\"gitops-acls-github\",\"nodes\":\"$undefined\"}\n192:{\"label\":\"Manage ACLs with GitLab\",\"numericId\":1254,\"slug\":\"gitops-acls-gitlab\",\"nodes\":\"$undefined\"}\n18f:[\"$190\",\"$191\",\"$192\"]\n18e:{\"label\":\"Manage ACLs with GitOps\",\"numericId\":1204,\"slug\":\"gitopcs-acls\",\"items\":\"$4f\",\"nodes\":\"$18f\"}\n188:[\"$189\",\"$18c\",\"$18d\",\"$18e\"]\n187:{\"label\":\"Manage access control\",\"numericId\":1393,\"slug\":\"access-control\",\"items\":\"$48\",\"nodes\":\"$188\"}\n195:{\"label\":\"Device posture for JIT access\",\"numericId\":1383,\"slug\":\"device-posture-for-jit\",\"nodes\":\"$undefined\"}\n198:{\"label\":\"ConductorOne\",\"numericId\":1208,\"slug\":\"jit-access-conductorone\",\"nodes\":\"$undefined\"}\n199:{\"label\":\"Opal\",\"numericId\":1209,\"slug\":\"jit-access-opal\",\"nodes\":\"$undefined\"}\n19a:{\"label\":\"Sym\",\"numericId\":1206,\"slug\":\"jit-"])</script><script>self.__next_f.push([1,"access-sym\",\"nodes\":\"$undefined\"}\n197:[\"$198\",\"$199\",\"$19a\"]\n196:{\"label\":\"3rd party JIT access integrations\",\"numericId\":1374,\"slug\":\"jit-access-integrations\",\"items\":\"$57\",\"nodes\":\"$197\"}\n194:[\"$195\",\"$196\"]\n193:{\"label\":\"Manage just-in-time access\",\"numericId\":1443,\"slug\":\"just-in-time-access\",\"items\":\"$54\",\"nodes\":\"$194\"}\n19d:{\"label\":\"Add a device\",\"numericId\":1316,\"slug\":\"device-add\",\"nodes\":\"$undefined\"}\n19e:{\"label\":\"Device approval\",\"numericId\":1099,\"slug\":\"device-approval\",\"nodes\":\"$undefined\"}\n19f:{\"label\":\"Rename a device\",\"numericId\":1098,\"slug\":\"machine-names\",\"nodes\":\"$undefined\"}\n1a0:{\"label\":\"Remove a device\",\"numericId\":1260,\"slug\":\"device-remove\",\"nodes\":\"$undefined\"}\n1a3:{\"label\":\"Use Device Identity Collection\",\"numericId\":1326,\"slug\":\"device-identity\",\"nodes\":\"$undefined\"}\n1a4:{\"label\":\"CrowdStrike Falcon\",\"numericId\":1289,\"slug\":\"crowdstrike-zta\",\"nodes\":\"$undefined\"}\n1a5:{\"label\":\"SentinelOne\",\"numericId\":1390,\"slug\":\"sentinelone\",\"nodes\":\"$undefined\"}\n1a6:{\"label\":\"1Password XAM\",\"numericId\":1407,\"slug\":\"kolide\",\"nodes\":\"$undefined\"}\n1a7:{\"label\":\"Jamf Pro\",\"numericId\":1409,\"slug\":\"jamf-pro\",\"nodes\":\"$undefined\"}\n1a8:{\"label\":\"Microsoft Intune\",\"numericId\":1410,\"slug\":\"intune\",\"nodes\":\"$undefined\"}\n1a9:{\"label\":\"Kandji\",\"numericId\":1405,\"slug\":\"kandji\",\"nodes\":\"$undefined\"}\n1a2:[\"$1a3\",\"$1a4\",\"$1a5\",\"$1a6\",\"$1a7\",\"$1a8\",\"$1a9\"]\n1a1:{\"label\":\"Device posture management\",\"numericId\":1288,\"slug\":\"device-posture\",\"items\":\"$62\",\"nodes\":\"$1a2\"}\n1aa:{\"label\":\"Filter devices\",\"numericId\":1176,\"slug\":\"filter-devices\",\"nodes\":\"$undefined\"}\n1ab:{\"label\":\"Export list of devices\",\"numericId\":1228,\"slug\":\"export-device-list\",\"nodes\":\"$undefined\"}\n1ac:{\"label\":\"Use the web interface\",\"numericId\":1325,\"slug\":\"device-web-interface\",\"nodes\":\"$undefined\"}\n1ad:{\"label\":\"Add a device using a QR code\",\"numericId\":1336,\"slug\":\"device-add-qr-code\",\"nodes\":\"$undefined\"}\n19c:[\"$19d\",\"$19e\",\"$19f\",\"$1a0\",\"$1a1\",\"$1aa\",\"$1ab\",\"$1ac\",\"$1ad\"]\n19b:{\"label\":\"Manage devices\",\"numericId\":1372,\"slug\":\"manage-devices\",\"items"])</script><script>self.__next_f.push([1,"\":\"$5c\",\"nodes\":\"$19c\"}\n1b2:{\"label\":\"Invite team members\",\"numericId\":1064,\"slug\":\"invite-team-members\",\"nodes\":\"$undefined\"}\n1b3:{\"label\":\"Invite any user\",\"numericId\":1271,\"slug\":\"invite-any-user\",\"nodes\":\"$undefined\"}\n1b4:{\"label\":\"Use passkeys\",\"numericId\":1269,\"slug\":\"passkeys\",\"nodes\":\"$undefined\"}\n1b1:[\"$1b2\",\"$1b3\",\"$1b4\"]\n1b0:{\"label\":\"Invite users\",\"items\":\"$71\",\"numericId\":1371,\"slug\":\"invite-users\",\"nodes\":\"$1b1\"}\n1b5:{\"label\":\"User approval\",\"numericId\":1239,\"slug\":\"user-approval\",\"nodes\":\"$undefined\"}\n1b6:{\"label\":\"User roles\",\"numericId\":1138,\"slug\":\"user-roles\",\"nodes\":\"$undefined\"}\n1b7:{\"label\":\"Change user roles\",\"numericId\":1171,\"slug\":\"changing-user-roles\",\"nodes\":\"$undefined\"}\n1b8:{\"label\":\"Remove users\",\"numericId\":1145,\"slug\":\"remove-team-members\",\"nodes\":\"$undefined\"}\n1b9:{\"label\":\"Fast user switching\",\"numericId\":1225,\"slug\":\"fast-user-switching\",\"nodes\":\"$undefined\"}\n1ba:{\"label\":\"Export list of users\",\"numericId\":1229,\"slug\":\"export-user-list\",\"nodes\":\"$undefined\"}\n1bb:{\"label\":\"Offboard users\",\"numericId\":1248,\"slug\":\"offboarding-users\",\"nodes\":\"$undefined\"}\n1bc:{\"label\":\"Admin console session timeout\",\"numericId\":1461,\"slug\":\"admin-console-session-timeout\",\"nodes\":\"$undefined\"}\n1af:[\"$1b0\",\"$1b5\",\"$1b6\",\"$1b7\",\"$1b8\",\"$1b9\",\"$1ba\",\"$1bb\",\"$1bc\"]\n1ae:{\"label\":\"Manage users\",\"numericId\":1373,\"slug\":\"manage-users\",\"items\":\"$6f\",\"nodes\":\"$1af\"}\n1bd:{\"label\":\"Tailnet lock\",\"numericId\":1226,\"slug\":\"tailnet-lock\",\"nodes\":\"$undefined\"}\n186:[\"$187\",\"$193\",\"$19b\",\"$1ae\",\"$1bd\"]\n185:{\"label\":\"Manage Access\",\"group\":true,\"numericId\":1350,\"slug\":\"manage\",\"items\":\"$46\",\"nodes\":\"$186\"}\n1c2:{\"label\":\"Subnet router BGP advertisement\",\"numericId\":1298,\"slug\":\"subnet-bgp\",\"nodes\":\"$undefined\"}\n1c3:{\"label\":\"4via6 subnet routers\",\"numericId\":1201,\"slug\":\"4via6-subnets\",\"nodes\":\"$undefined\"}\n1c4:{\"label\":\"Site-to-site networking\",\"numericId\":1214,\"slug\":\"site-to-site\",\"nodes\":\"$undefined\"}\n1c1:[\"$1c2\",\"$1c3\",\"$1c4\"]\n1c0:{\"label\":\"Set up a subnet router\",\"numericId\":1019,\"slug\":\"subnets\",\"items\":\"$80\",\"no"])</script><script>self.__next_f.push([1,"des\":\"$1c1\"}\n1c7:{\"label\":\"Use a Mullvad exit node\",\"numericId\":1258,\"slug\":\"mullvad-exit-nodes\",\"nodes\":\"$undefined\"}\n1c8:{\"label\":\"Recommended exit nodes\",\"numericId\":1392,\"slug\":\"auto-exit-nodes\",\"nodes\":\"$undefined\"}\n1c9:{\"label\":\"Mandatory exit nodes\",\"numericId\":1413,\"slug\":\"mandatory-exit-nodes\",\"nodes\":\"$undefined\"}\n1c6:[\"$1c7\",\"$1c8\",\"$1c9\"]\n1c5:{\"label\":\"Set up an exit node\",\"numericId\":1103,\"slug\":\"exit-nodes\",\"items\":\"$85\",\"nodes\":\"$1c6\"}\n1cc:{\"label\":\"How app connectors work\",\"numericId\":1342,\"slug\":\"how-app-connectors-work\",\"nodes\":\"$undefined\"}\n1cd:{\"label\":\"Best practices for SaaS apps\",\"numericId\":1332,\"slug\":\"apps-best-practices\",\"nodes\":\"$undefined\"}\n1ce:{\"label\":\"Use preset apps\",\"numericId\":1339,\"slug\":\"preset-apps\",\"nodes\":\"$undefined\"}\n1cb:[\"$1cc\",\"$1cd\",\"$1ce\"]\n1ca:{\"label\":\"Set up an app connector\",\"numericId\":1281,\"slug\":\"app-connectors\",\"items\":\"$8a\",\"nodes\":\"$1cb\"}\n1d1:{\"label\":\"Configure Linux DNS\",\"numericId\":1188,\"slug\":\"linux-dns\",\"nodes\":\"$undefined\"}\n1d2:{\"label\":\"Why is resolv.conf being overwritten?\",\"numericId\":1235,\"slug\":\"resolv-conf\",\"nodes\":\"$undefined\"}\n1d3:{\"label\":\"Use NextDNS\",\"numericId\":1218,\"slug\":\"nextdns\",\"nodes\":\"$undefined\"}\n1d4:{\"label\":\"Use Control D\",\"numericId\":1403,\"slug\":\"control-d\",\"nodes\":\"$undefined\"}\n1d5:{\"label\":\"Use Unbound DNS in OPNsense\",\"numericId\":1299,\"slug\":\"opnsense-unbound\",\"nodes\":\"$undefined\"}\n1d0:[\"$1d1\",\"$1d2\",\"$1d3\",\"$1d4\",\"$1d5\"]\n1cf:{\"label\":\"Use DNS\",\"numericId\":1054,\"slug\":\"dns\",\"items\":\"$8f\",\"nodes\":\"$1d0\"}\n1d6:{\"label\":\"Set up MagicDNS\",\"numericId\":1081,\"slug\":\"magicdns\",\"nodes\":\"$undefined\"}\n1d7:{\"label\":\"Set up high availability\",\"numericId\":1115,\"slug\":\"high-availability\",\"nodes\":\"$undefined\"}\n1bf:[\"$1c0\",\"$1c5\",\"$1ca\",\"$1cf\",\"$1d6\",\"$1d7\"]\n1be:{\"label\":\"Route Traffic\",\"group\":true,\"numericId\":1351,\"slug\":\"route\",\"items\":\"$7e\",\"nodes\":\"$1bf\"}\n1da:{\"label\":\"Set up a server\",\"numericId\":1245,\"slug\":\"set-up-servers\",\"nodes\":\"$undefined\"}\n1db:{\"label\":\"Use tags\",\"numericId\":1068,\"slug\":\"tags\",\"nodes\":\"$undefined\"}\n1dc:{\"label\":\"Ins"])</script><script>self.__next_f.push([1,"tall Tailscale with cloud-init\",\"numericId\":1293,\"slug\":\"cloud-init\",\"nodes\":\"$undefined\"}\n1df:{\"label\":\"Automate key expiry\",\"numericId\":1028,\"slug\":\"key-expiry\",\"nodes\":\"$undefined\"}\n1de:[\"$1df\"]\n1dd:{\"label\":\"Use auth keys\",\"numericId\":1085,\"slug\":\"auth-keys\",\"items\":\"$9c\",\"nodes\":\"$1de\"}\n1e2:{\"label\":\"Use Tailscale SSH Console\",\"numericId\":1216,\"slug\":\"tailscale-ssh-console\",\"nodes\":\"$undefined\"}\n1e1:[\"$1e2\"]\n1e0:{\"label\":\"Use Tailscale SSH\",\"numericId\":1193,\"slug\":\"tailscale-ssh\",\"items\":\"$9f\",\"nodes\":\"$1e1\"}\n1e3:{\"label\":\"Set up HTTPS certificates\",\"numericId\":1153,\"slug\":\"enabling-https\",\"nodes\":\"$undefined\"}\n1e4:{\"label\":\"Run an ephemeral node\",\"numericId\":1111,\"slug\":\"ephemeral-nodes\",\"nodes\":\"$undefined\"}\n1e5:{\"label\":\"Run unattended\",\"numericId\":1088,\"slug\":\"run-unattended\",\"nodes\":\"$undefined\"}\n1d9:[\"$1da\",\"$1db\",\"$1dc\",\"$1dd\",\"$1e0\",\"$1e3\",\"$1e4\",\"$1e5\"]\n1d8:{\"label\":\"Set Up Servers\",\"group\":true,\"numericId\":1352,\"slug\":\"servers\",\"items\":\"$97\",\"nodes\":\"$1d9\"}\n1e8:{\"label\":\"View services\",\"numericId\":1100,\"slug\":\"services\",\"nodes\":\"$undefined\"}\n1e9:{\"label\":\"Share nodes\",\"numericId\":1084,\"slug\":\"sharing\",\"nodes\":\"$undefined\"}\n1ec:{\"label\":\"Taildrop with NAS\",\"numericId\":1418,\"slug\":\"taildrop-nas\",\"nodes\":\"$undefined\"}\n1eb:[\"$1ec\"]\n1ea:{\"label\":\"Use Taildrop\",\"numericId\":1106,\"slug\":\"taildrop\",\"items\":\"$a8\",\"nodes\":\"$1eb\"}\n1e7:[\"$1e8\",\"$1e9\",\"$1ea\"]\n1e6:{\"label\":\"Access \u0026 Share Services\",\"group\":true,\"numericId\":1354,\"slug\":\"share\",\"items\":\"$a4\",\"nodes\":\"$1e7\"}\n1f1:{\"label\":\"Examples\",\"numericId\":1247,\"slug\":\"funnel-examples\",\"nodes\":\"$undefined\"}\n1f2:{\"label\":\"Funnel vs. sharing\",\"numericId\":1464,\"slug\":\"funnel-vs-sharing\",\"nodes\":\"$undefined\"}\n1f0:[\"$1f1\",\"$1f2\"]\n1ef:{\"label\":\"Tailscale Funnel\",\"numericId\":1223,\"slug\":\"funnel\",\"items\":\"$ac\",\"nodes\":\"$1f0\"}\n1f5:{\"label\":\"Examples\",\"numericId\":1313,\"slug\":\"serve-examples\",\"nodes\":\"$undefined\"}\n1f4:[\"$1f5\"]\n1f3:{\"label\":\"Tailscale Serve\",\"numericId\":1312,\"slug\":\"serve\",\"items\":\"$b0\",\"nodes\":\"$1f4\"}\n1ee:[\"$1ef\",\"$1f3\"]\n1ed:{\"label\":\"Share a web server\",\""])</script><script>self.__next_f.push([1,"group\":true,\"numericId\":1353,\"slug\":\"share-web-server\",\"items\":\"$aa\",\"nodes\":\"$1ee\"}\n1f8:{\"label\":\"Code from your iPad\",\"numericId\":1166,\"slug\":\"vscode-ipad\",\"nodes\":\"$undefined\"}\n1f9:{\"label\":\"Lock down a server\",\"numericId\":1077,\"slug\":\"secure-server-ubuntu\",\"nodes\":\"$undefined\"}\n1fa:{\"label\":\"Access a PiKVM\",\"numericId\":1292,\"slug\":\"pikvm\",\"nodes\":\"$undefined\"}\n1fb:{\"label\":\"Run a Pi-hole\",\"numericId\":1114,\"slug\":\"pi-hole\",\"nodes\":\"$undefined\"}\n1fc:{\"label\":\"Secure external services\",\"numericId\":1059,\"slug\":\"ip-blocklist-relays\",\"nodes\":\"$undefined\"}\n1ff:{\"label\":\"Device posture for JIT access\",\"numericId\":1383,\"slug\":\"device-posture-for-jit\",\"nodes\":\"$undefined\"}\n202:{\"label\":\"ConductorOne\",\"numericId\":1208,\"slug\":\"jit-access-conductorone\",\"nodes\":\"$undefined\"}\n203:{\"label\":\"Opal\",\"numericId\":1209,\"slug\":\"jit-access-opal\",\"nodes\":\"$undefined\"}\n204:{\"label\":\"Sym\",\"numericId\":1206,\"slug\":\"jit-access-sym\",\"nodes\":\"$undefined\"}\n201:[\"$202\",\"$203\",\"$204\"]\n200:{\"label\":\"3rd party JIT access integrations\",\"numericId\":1374,\"slug\":\"jit-access-integrations\",\"items\":\"$bc\",\"nodes\":\"$201\"}\n1fe:[\"$1ff\",\"$200\"]\n1fd:{\"label\":\"Just-in-time access\",\"numericId\":1443,\"slug\":\"just-in-time-access\",\"items\":\"$b9\",\"nodes\":\"$1fe\"}\n209:{\"label\":\"Terraform\",\"numericId\":1210,\"slug\":\"terraform-provider\",\"nodes\":\"$undefined\"}\n20a:{\"label\":\"Pulumi\",\"numericId\":1211,\"slug\":\"pulumi-provider\",\"nodes\":\"$undefined\"}\n208:[\"$209\",\"$20a\"]\n207:{\"label\":\"Infrastructure as code\",\"numericId\":1370,\"slug\":\"infrastructure-as-code\",\"items\":\"$c3\",\"nodes\":\"$208\"}\n20b:{\"label\":\"macOS and iOS shortcuts\",\"numericId\":1233,\"slug\":\"mac-ios-shortcuts\",\"nodes\":\"$undefined\"}\n206:[\"$207\",\"$20b\"]\n205:{\"label\":\"Automation\",\"numericId\":1430,\"slug\":\"automations\",\"items\":\"$c1\",\"nodes\":\"$206\"}\n1f7:[\"$1f8\",\"$1f9\",\"$1fa\",\"$1fb\",\"$1fc\",\"$1fd\",\"$205\"]\n1f6:{\"label\":\"Solutions\",\"group\":true,\"numericId\":1355,\"slug\":\"solutions\",\"items\":\"$b2\",\"nodes\":\"$1f7\"}\n184:[\"$185\",\"$1be\",\"$1d8\",\"$1e6\",\"$1ed\",\"$1f6\"]\n17c:{\"label\":\"How-to Guides\",\"numericId\":1348,\"slug\":\"guides\",\"items\":\"$17d\",\""])</script><script>self.__next_f.push([1,"nodes\":\"$184\"}\n20e:{\"label\":\"Cloud servers\",\"numericId\":\"integrations\",\"slug\":\"cloud-server\",\"items\":\"$c7\"}\n20f:{\"label\":\"Containers and virtualization\",\"numericId\":1358,\"slug\":\"containers-and-virtualization\",\"items\":\"$d0\"}\n210:{\"label\":\"Serverless apps\",\"numericId\":1364,\"slug\":\"serverless\",\"items\":\"$e3\"}\n211:{\"label\":\"Databases\",\"numericId\":1359,\"slug\":\"database\",\"items\":\"$e9\"}\n212:{\"label\":\"Remote environments\",\"items\":\"$ec\",\"numericId\":1363,\"slug\":\"remote-code\"}\n213:{\"label\":\"Developer tools\",\"numericId\":1360,\"slug\":\"developer-tools\",\"items\":\"$f3\"}\n214:{\"label\":\"Firewalls\",\"numericId\":1361,\"slug\":\"firewall\",\"items\":\"$f9\"}\n215:{\"label\":\"Web servers\",\"numericId\":1365,\"slug\":\"webserver\",\"items\":\"$ff\"}\n216:{\"label\":\"NAS\",\"numericId\":1307,\"slug\":\"nas\",\"items\":\"$102\"}\n20d:[\"$20e\",\"$20f\",\"$210\",\"$211\",\"$212\",\"$213\",\"$214\",\"$215\",\"$216\"]\n21a:{\"label\":\"AWS Lightsail\",\"numericId\":1128,\"slug\":\"aws-lightsail\",\"nodes\":\"$undefined\"}\n21b:{\"label\":\"AWS VPC\",\"numericId\":1021,\"slug\":\"install-aws\",\"nodes\":\"$undefined\"}\n21c:{\"label\":\"Azure App Service\",\"numericId\":1126,\"slug\":\"azure-app-service\",\"nodes\":\"$undefined\"}\n21d:{\"label\":\"Azure Linux VMs\",\"numericId\":1142,\"slug\":\"cloud-azure-linux\",\"nodes\":\"$undefined\"}\n21e:{\"label\":\"Azure Windows VMs\",\"numericId\":1143,\"slug\":\"cloud-azure-windows\",\"nodes\":\"$undefined\"}\n21f:{\"label\":\"Google Compute Engine VMs\",\"numericId\":1147,\"slug\":\"cloud-gce\",\"nodes\":\"$undefined\"}\n220:{\"label\":\"Hetzner VMs\",\"numericId\":1150,\"slug\":\"cloud-hetzner\",\"nodes\":\"$undefined\"}\n221:{\"label\":\"Oracle Cloud VMs\",\"numericId\":1149,\"slug\":\"cloud-oracle\",\"nodes\":\"$undefined\"}\n219:[\"$21a\",\"$21b\",\"$21c\",\"$21d\",\"$21e\",\"$21f\",\"$220\",\"$221\"]\n218:{\"label\":\"Cloud servers\",\"numericId\":\"integrations\",\"slug\":\"cloud-server\",\"items\":\"$c7\",\"nodes\":\"$219\"}\n224:{\"label\":\"Docker\",\"numericId\":1282,\"slug\":\"docker\",\"nodes\":\"$undefined\"}\n229:{\"label\":\"API server proxy\",\"numericId\":1437,\"slug\":\"kubernetes-operator-api-server-proxy\",\"nodes\":\"$undefined\"}\n22a:{\"label\":\"Egress\",\"numericId\":1438,\"slug\":\"kubernetes-operator-cluster-egress\",\"nod"])</script><script>self.__next_f.push([1,"es\":\"$undefined\"}\n22b:{\"label\":\"Ingress\",\"numericId\":1439,\"slug\":\"kubernetes-operator-cluster-ingress\",\"nodes\":\"$undefined\"}\n22c:{\"label\":\"Cross cluster\",\"numericId\":1442,\"slug\":\"kubernetes-operator-cross-cluster\",\"nodes\":\"$undefined\"}\n22d:{\"label\":\"Cloud services\",\"numericId\":1440,\"slug\":\"kubernetes-operator-cloud-services\",\"nodes\":\"$undefined\"}\n22e:{\"label\":\"Subnet routers and exit nodes\",\"numericId\":1441,\"slug\":\"kubernetes-operator-connector\",\"nodes\":\"$undefined\"}\n22f:{\"label\":\"App connector\",\"numericId\":1517,\"slug\":\"kubernetes-operator-app-connector\",\"nodes\":\"$undefined\"}\n230:{\"label\":\"Recorder nodes\",\"numericId\":1484,\"slug\":\"kubernetes-operator-deploying-tsrecorder\",\"nodes\":\"$undefined\"}\n231:{\"label\":\"Session recording\",\"numericId\":1454,\"slug\":\"kubernetes-operator-session-recording\",\"nodes\":\"$undefined\"}\n232:{\"label\":\"Operator resource customization\",\"numericId\":1445,\"slug\":\"kubernetes-operator-customization\",\"nodes\":\"$undefined\"}\n233:{\"label\":\"Troubleshooting\",\"numericId\":1446,\"slug\":\"kubernetes-operator-troubleshooting\",\"nodes\":\"$undefined\"}\n228:[\"$229\",\"$22a\",\"$22b\",\"$22c\",\"$22d\",\"$22e\",\"$22f\",\"$230\",\"$231\",\"$232\",\"$233\"]\n227:{\"label\":\"Kubernetes Operator\",\"numericId\":1236,\"slug\":\"kubernetes-operator\",\"items\":\"$d5\",\"nodes\":\"$228\"}\n226:[\"$227\"]\n225:{\"label\":\"Kubernetes\",\"items\":\"$d3\",\"numericId\":1185,\"slug\":\"kubernetes\",\"nodes\":\"$226\"}\n234:{\"label\":\"LXC containers\",\"numericId\":1130,\"slug\":\"lxc-unprivileged\",\"nodes\":\"$undefined\"}\n235:{\"label\":\"Proxmox\",\"numericId\":1133,\"slug\":\"proxmox\",\"nodes\":\"$undefined\"}\n223:[\"$224\",\"$225\",\"$234\",\"$235\"]\n222:{\"label\":\"Containers and virtualization\",\"numericId\":1358,\"slug\":\"containers-and-virtualization\",\"items\":\"$d0\",\"nodes\":\"$223\"}\n238:{\"label\":\"AWS App Runner\",\"numericId\":1127,\"slug\":\"aws-app-runner\",\"nodes\":\"$undefined\"}\n239:{\"label\":\"AWS Lambda\",\"numericId\":1113,\"slug\":\"aws-lambda\",\"nodes\":\"$undefined\"}\n23a:{\"label\":\"Fly.io\",\"numericId\":1132,\"slug\":\"flydotio\",\"nodes\":\"$undefined\"}\n23b:{\"label\":\"Google Cloud Run\",\"numericId\":1108,\"slug\":\"cloudrun\",\"nodes\":\"$undefined\""])</script><script>self.__next_f.push([1,"}\n23c:{\"label\":\"Heroku\",\"numericId\":1107,\"slug\":\"heroku\",\"nodes\":\"$undefined\"}\n237:[\"$238\",\"$239\",\"$23a\",\"$23b\",\"$23c\"]\n236:{\"label\":\"Serverless apps\",\"numericId\":1364,\"slug\":\"serverless\",\"items\":\"$e3\",\"nodes\":\"$237\"}\n23f:{\"label\":\"AWS RDS\",\"numericId\":1141,\"slug\":\"aws-rds\",\"nodes\":\"$undefined\"}\n240:{\"label\":\"Crunchy Bridge\",\"numericId\":1231,\"slug\":\"crunchy-bridge\",\"nodes\":\"$undefined\"}\n23e:[\"$23f\",\"$240\"]\n23d:{\"label\":\"Databases\",\"numericId\":1359,\"slug\":\"database\",\"items\":\"$e9\",\"nodes\":\"$23e\"}\n243:{\"label\":\"code-server\",\"numericId\":1164,\"slug\":\"codeserver\",\"nodes\":\"$undefined\"}\n244:{\"label\":\"Coder\",\"numericId\":1163,\"slug\":\"coder\",\"nodes\":\"$undefined\"}\n245:{\"label\":\"CodeSandbox\",\"numericId\":1221,\"slug\":\"codesandbox\",\"nodes\":\"$undefined\"}\n246:{\"label\":\"GitHub Codespaces\",\"numericId\":1160,\"slug\":\"github-codespaces\",\"nodes\":\"$undefined\"}\n247:{\"label\":\"Gitpod\",\"numericId\":1161,\"slug\":\"gitpod\",\"nodes\":\"$undefined\"}\n248:{\"label\":\"OpenVSCode\",\"numericId\":1162,\"slug\":\"openvscode\",\"nodes\":\"$undefined\"}\n242:[\"$243\",\"$244\",\"$245\",\"$246\",\"$247\",\"$248\"]\n241:{\"label\":\"Remote environments\",\"items\":\"$ec\",\"numericId\":1363,\"slug\":\"remote-code\",\"nodes\":\"$242\"}\n24b:{\"label\":\"Visual Studio Code Extension\",\"numericId\":1265,\"slug\":\"vscode-extension\",\"nodes\":\"$undefined\"}\n24c:{\"label\":\"Tailscale GitHub Action\",\"numericId\":1276,\"slug\":\"tailscale-github-action\",\"nodes\":\"$undefined\"}\n24d:{\"label\":\"Tailscale with GitLab CI/CD\",\"numericId\":1287,\"slug\":\"tailscale-gitlab-runner\",\"nodes\":\"$undefined\"}\n24e:{\"label\":\"Docker Desktop\",\"numericId\":1184,\"slug\":\"docker-desktop\",\"nodes\":\"$undefined\"}\n24f:{\"label\":\"Grafana\",\"numericId\":1523,\"slug\":\"grafana\",\"nodes\":\"$undefined\"}\n24a:[\"$24b\",\"$24c\",\"$24d\",\"$24e\",\"$24f\"]\n249:{\"label\":\"Developer tools\",\"numericId\":1360,\"slug\":\"developer-tools\",\"items\":\"$f3\",\"nodes\":\"$24a\"}\n252:{\"label\":\"Overview\",\"numericId\":1181,\"slug\":\"firewalls\",\"nodes\":\"$undefined\"}\n253:{\"label\":\"OPNsense\",\"numericId\":1097,\"slug\":\"install-opnsense\",\"nodes\":\"$undefined\"}\n254:{\"label\":\"Palo Alto Networks\",\"numericId\":1333,\"slug\":\"firewal"])</script><script>self.__next_f.push([1,"l-palo-alto-networks\",\"nodes\":\"$undefined\"}\n255:{\"label\":\"pfSense\",\"numericId\":1146,\"slug\":\"pfsense\",\"nodes\":\"$undefined\"}\n256:{\"label\":\"Firewall mode\",\"numericId\":1294,\"slug\":\"firewall-mode\",\"nodes\":\"$undefined\"}\n251:[\"$252\",\"$253\",\"$254\",\"$255\",\"$256\"]\n250:{\"label\":\"Firewalls\",\"numericId\":1361,\"slug\":\"firewall\",\"items\":\"$f9\",\"nodes\":\"$251\"}\n259:{\"label\":\"Caddy Server\",\"numericId\":1190,\"slug\":\"caddy-certificates\",\"nodes\":\"$undefined\"}\n25a:{\"label\":\"Traefik Proxy\",\"numericId\":1234,\"slug\":\"traefik-certificates\",\"nodes\":\"$undefined\"}\n258:[\"$259\",\"$25a\"]\n257:{\"label\":\"Web servers\",\"numericId\":1365,\"slug\":\"webserver\",\"items\":\"$ff\",\"nodes\":\"$258\"}\n25d:{\"label\":\"Synology\",\"numericId\":1131,\"slug\":\"synology\",\"nodes\":\"$undefined\"}\n25e:{\"label\":\"QNAP\",\"numericId\":1273,\"slug\":\"qnap\",\"nodes\":\"$undefined\"}\n25f:{\"label\":\"TrueNAS SCALE\",\"numericId\":1483,\"slug\":\"truenas-scale\",\"nodes\":\"$undefined\"}\n260:{\"label\":\"Unraid\",\"numericId\":1478,\"slug\":\"unraid\",\"nodes\":\"$undefined\"}\n25c:[\"$25d\",\"$25e\",\"$25f\",\"$260\"]\n25b:{\"label\":\"NAS\",\"numericId\":1307,\"slug\":\"nas\",\"items\":\"$102\",\"nodes\":\"$25c\"}\n217:[\"$218\",\"$222\",\"$236\",\"$23d\",\"$241\",\"$249\",\"$250\",\"$257\",\"$25b\"]\n20c:{\"label\":\"Integrations\",\"numericId\":1356,\"items\":\"$20d\",\"slug\":\"integrations\",\"nodes\":\"$217\"}\n261:{\"label\":\"FAQ\",\"numericId\":1366,\"slug\":\"faq\",\"nodes\":\"$undefined\"}\n264:{\"label\":\"Logging overview\",\"numericId\":1011,\"slug\":\"log-mesh-traffic\"}\n265:{\"label\":\"Configuration audit logging\",\"numericId\":1203,\"slug\":\"audit-logging\"}\n266:{\"label\":\"Network flow logs\",\"numericId\":1219,\"slug\":\"network-flow-logs\"}\n267:{\"label\":\"Log streaming\",\"numericId\":1255,\"slug\":\"log-streaming\"}\n268:{\"label\":\"SSH session recording\",\"numericId\":1246,\"slug\":\"tailscale-ssh-session-recording\",\"items\":\"$107\"}\n269:{\"label\":\"Client metrics\",\"numericId\":1482,\"slug\":\"client-metrics\"}\n26a:{\"label\":\"Webhooks\",\"numericId\":1213,\"slug\":\"webhooks\"}\n263:[\"$264\",\"$265\",\"$266\",\"$267\",\"$268\",\"$269\",\"$26a\"]\n26c:{\"label\":\"Logging overview\",\"numericId\":1011,\"slug\":\"log-mesh-traffic\",\"nodes\":\"$undefined\"}\n26d:{\"label\":\"Config"])</script><script>self.__next_f.push([1,"uration audit logging\",\"numericId\":1203,\"slug\":\"audit-logging\",\"nodes\":\"$undefined\"}\n26e:{\"label\":\"Network flow logs\",\"numericId\":1219,\"slug\":\"network-flow-logs\",\"nodes\":\"$undefined\"}\n26f:{\"label\":\"Log streaming\",\"numericId\":1255,\"slug\":\"log-streaming\",\"nodes\":\"$undefined\"}\n272:{\"label\":\"Send recordings to S3\",\"numericId\":1263,\"slug\":\"session-recording-s3\",\"nodes\":\"$undefined\"}\n273:{\"label\":\"Deploy multiple recorder nodes\",\"numericId\":1262,\"slug\":\"multiple-recorder-nodes\",\"nodes\":\"$undefined\"}\n271:[\"$272\",\"$273\"]\n270:{\"label\":\"SSH session recording\",\"numericId\":1246,\"slug\":\"tailscale-ssh-session-recording\",\"items\":\"$107\",\"nodes\":\"$271\"}\n274:{\"label\":\"Client metrics\",\"numericId\":1482,\"slug\":\"client-metrics\",\"nodes\":\"$undefined\"}\n275:{\"label\":\"Webhooks\",\"numericId\":1213,\"slug\":\"webhooks\",\"nodes\":\"$undefined\"}\n26b:[\"$26c\",\"$26d\",\"$26e\",\"$26f\",\"$270\",\"$274\",\"$275\"]\n262:{\"label\":\"Logging, Streaming, and Events\",\"numericId\":1349,\"slug\":\"log-events\",\"items\":\"$263\",\"nodes\":\"$26b\"}\n278:{\"label\":\"Contact preferences\",\"numericId\":1224,\"slug\":\"contract-preferences\"}\n279:{\"label\":\"Pricing and billing\",\"numericId\":1375,\"slug\":\"pb-lp\",\"items\":\"$10a\"}\n27a:{\"label\":\"Tailnet name\",\"numericId\":1217,\"slug\":\"tailnet-name\"}\n27b:{\"label\":\"Domain ownership\",\"numericId\":1259,\"slug\":\"domain-ownership\"}\n277:[\"$278\",\"$279\",\"$27a\",\"$27b\"]\n27d:{\"label\":\"Contact preferences\",\"numericId\":1224,\"slug\":\"contract-preferences\",\"nodes\":\"$undefined\"}\n280:{\"label\":\"Pricing ↗\",\"href\":\"/pricing\",\"nodes\":\"$undefined\"}\n281:{\"label\":\"Pricing \u0026 Plans FAQ\",\"numericId\":1251,\"slug\":\"pricing-faq\",\"nodes\":\"$undefined\"}\n282:{\"label\":\"Free plans and discounts\",\"numericId\":1154,\"slug\":\"free-plans-discounts\",\"nodes\":\"$undefined\"}\n283:{\"label\":\"Modify billing\",\"numericId\":1182,\"slug\":\"billing-information\",\"nodes\":\"$undefined\"}\n284:{\"label\":\"Tailscale on Azure Marketplace\",\"numericId\":1220,\"slug\":\"azure-marketplace\",\"nodes\":\"$undefined\"}\n27f:[\"$280\",\"$281\",\"$282\",\"$283\",\"$284\"]\n27e:{\"label\":\"Pricing and billing\",\"numericId\":1375,\"slug\":\"pb-lp\",\"items\":\"$10a\",\"nodes\":"])</script><script>self.__next_f.push([1,"\"$27f\"}\n285:{\"label\":\"Tailnet name\",\"numericId\":1217,\"slug\":\"tailnet-name\",\"nodes\":\"$undefined\"}\n286:{\"label\":\"Domain ownership\",\"numericId\":1259,\"slug\":\"domain-ownership\",\"nodes\":\"$undefined\"}\n27c:[\"$27d\",\"$27e\",\"$285\",\"$286\"]\n276:{\"label\":\"Manage Your Organization\",\"numericId\":1431,\"slug\":\"manage-account\",\"items\":\"$277\",\"nodes\":\"$27c\"}\n289:{\"label\":\"ACL syntax\",\"numericId\":1337,\"slug\":\"acl-syntax\",\"items\":\"$110\"}\n28a:{\"label\":\"ACL samples\",\"numericId\":1192,\"slug\":\"acl-samples\"}\n28b:{\"label\":\"Grant samples\",\"numericId\":1458,\"slug\":\"grant-samples\"}\n28c:{\"label\":\"CLI\",\"numericId\":1080,\"slug\":\"cli\",\"items\":\"$114\"}\n28d:{\"label\":\"API\",\"numericId\":1101,\"slug\":\"api\",\"items\":\"$11a\"}\n28e:{\"label\":\"Key prefixes\",\"numericId\":1277,\"slug\":\"key-prefixes\"}\n28f:{\"label\":\"Production best practices\",\"numericId\":1300,\"slug\":\"production-best-practices\",\"items\":\"$120\"}\n290:{\"label\":\"Shared responsibility\",\"numericId\":1212,\"slug\":\"shared-responsibility\"}\n291:{\"label\":\"Technical overviews\",\"numericId\":1376,\"slug\":\"tech-overviews\",\"items\":\"$12b\"}\n292:{\"label\":\"Terminology and concepts\",\"numericId\":1155,\"slug\":\"terminology-and-concepts\"}\n293:{\"label\":\"GitHub ↗\",\"href\":\"https://github.com/tailscale/tailscale\"}\n288:[\"$289\",\"$28a\",\"$28b\",\"$28c\",\"$28d\",\"$28e\",\"$28f\",\"$290\",\"$291\",\"$292\",\"$293\"]\n297:{\"label\":\"Grants\",\"numericId\":1324,\"slug\":\"acl-grants\",\"nodes\":\"$undefined\"}\n298:{\"label\":\"IP sets\",\"numericId\":1387,\"slug\":\"ipsets\",\"nodes\":\"$undefined\"}\n299:{\"label\":\"Via in grants\",\"numericId\":1378,\"slug\":\"via\",\"nodes\":\"$undefined\"}\n296:[\"$297\",\"$298\",\"$299\"]\n295:{\"label\":\"ACL syntax\",\"numericId\":1337,\"slug\":\"acl-syntax\",\"items\":\"$110\",\"nodes\":\"$296\"}\n29a:{\"label\":\"ACL samples\",\"numericId\":1192,\"slug\":\"acl-samples\",\"nodes\":\"$undefined\"}\n29b:{\"label\":\"Grant samples\",\"numericId\":1458,\"slug\":\"grant-samples\",\"nodes\":\"$undefined\"}\n29e:{\"label\":\"tailscale funnel\",\"numericId\":1311,\"slug\":\"tailscale-funnel\",\"nodes\":\"$undefined\"}\n29f:{\"label\":\"tailscale lock\",\"numericId\":1243,\"slug\":\"tailscale-lock\",\"nodes\":\"$undefined\"}\n2a0:{\"label\":\"tailscale serve"])</script><script>self.__next_f.push([1,"\",\"numericId\":1242,\"slug\":\"tailscale-serve\",\"nodes\":\"$undefined\"}\n2a1:{\"label\":\"tailscale up\",\"numericId\":1241,\"slug\":\"tailscale-up\",\"nodes\":\"$undefined\"}\n2a2:{\"label\":\"tailscaled\",\"numericId\":1278,\"slug\":\"tailscaled\",\"nodes\":\"$undefined\"}\n29d:[\"$29e\",\"$29f\",\"$2a0\",\"$2a1\",\"$2a2\"]\n29c:{\"label\":\"CLI\",\"numericId\":1080,\"slug\":\"cli\",\"items\":\"$114\",\"nodes\":\"$29d\"}\n2a5:{\"label\":\"OAuth clients\",\"numericId\":1215,\"slug\":\"oauth-clients\",\"nodes\":\"$undefined\"}\n2a8:{\"label\":\"Hello tsnet\",\"numericId\":1521,\"slug\":\"hello-tsnet\",\"nodes\":\"$undefined\"}\n2a9:{\"label\":\"tsnet.Server\",\"numericId\":1522,\"slug\":\"tsnet-server\",\"nodes\":\"$undefined\"}\n2a7:[\"$2a8\",\"$2a9\"]\n2a6:{\"label\":\"tsnet for Go programs\",\"numericId\":1244,\"slug\":\"tsnet\",\"items\":\"$11d\",\"nodes\":\"$2a7\"}\n2a4:[\"$2a5\",\"$2a6\"]\n2a3:{\"label\":\"API\",\"numericId\":1101,\"slug\":\"api\",\"items\":\"$11a\",\"nodes\":\"$2a4\"}\n2aa:{\"label\":\"Key prefixes\",\"numericId\":1277,\"slug\":\"key-prefixes\",\"nodes\":\"$undefined\"}\n2ad:{\"label\":\"Deployment checklist\",\"numericId\":1344,\"slug\":\"deployment-checklist\",\"nodes\":\"$undefined\"}\n2b0:{\"label\":\"Key and secret management\",\"numericId\":1252,\"slug\":\"key-secret-management\",\"nodes\":\"$undefined\"}\n2b1:{\"label\":\"Secret scanning\",\"numericId\":1301,\"slug\":\"secret-scanning\",\"nodes\":\"$undefined\"}\n2b2:{\"label\":\"Admin with passkey\",\"numericId\":1341,\"slug\":\"tailnet-passkey-admin\",\"nodes\":\"$undefined\"}\n2af:[\"$2b0\",\"$2b1\",\"$2b2\"]\n2ae:{\"label\":\"Security best practices\",\"items\":\"$123\",\"numericId\":1196,\"slug\":\"security-hardening\",\"nodes\":\"$2af\"}\n2b3:{\"label\":\"Performance best practices\",\"numericId\":1320,\"slug\":\"performance-best-practices\",\"nodes\":\"$undefined\"}\n2b4:{\"label\":\"AWS reference architecture\",\"numericId\":1296,\"slug\":\"aws-reference-architecture\",\"nodes\":\"$undefined\"}\n2b5:{\"label\":\"Azure reference architecture\",\"numericId\":1314,\"slug\":\"azure-reference-architecture\",\"nodes\":\"$undefined\"}\n2b6:{\"label\":\"GCP reference architecture\",\"numericId\":1510,\"slug\":\"gcp-reference-architecture\",\"nodes\":\"$undefined\"}\n2ac:[\"$2ad\",\"$2ae\",\"$2b3\",\"$2b4\",\"$2b5\",\"$2b6\"]\n2ab:{\"label\":\"Production best prac"])</script><script>self.__next_f.push([1,"tices\",\"numericId\":1300,\"slug\":\"production-best-practices\",\"items\":\"$120\",\"nodes\":\"$2ac\"}\n2b7:{\"label\":\"Shared responsibility\",\"numericId\":1212,\"slug\":\"shared-responsibility\",\"nodes\":\"$undefined\"}\n2ba:{\"label\":\"About WireGuard\",\"numericId\":1035,\"slug\":\"wireguard\",\"nodes\":\"$undefined\"}\n2bb:{\"label\":\"Tailscale encryption\",\"numericId\":1504,\"slug\":\"encryption\",\"nodes\":\"$undefined\"}\n2bc:{\"label\":\"Control and data planes\",\"numericId\":1508,\"slug\":\"control-data-planes\",\"nodes\":\"$undefined\"}\n2bd:{\"label\":\"Direct vs relayed connections\",\"numericId\":1257,\"slug\":\"connection-types\",\"nodes\":\"$undefined\"}\n2be:{\"label\":\"Device connectivity\",\"numericId\":1411,\"slug\":\"device-connectivity\",\"nodes\":\"$undefined\"}\n2bf:{\"label\":\"How Tailscale assigns IP addresses\",\"numericId\":1033,\"slug\":\"ip-and-dns-addresses\",\"nodes\":\"$undefined\"}\n2c0:{\"label\":\"Tailscale and the OSI model\",\"numericId\":1456,\"slug\":\"osi\",\"nodes\":\"$undefined\"}\n2c1:{\"label\":\"Smaller binaries for embedded devices\",\"numericId\":1207,\"slug\":\"small-tailscale\",\"nodes\":\"$undefined\"}\n2c2:{\"label\":\"Kernel vs. netstack subnet routing \u0026 exit nodes\",\"numericId\":1177,\"slug\":\"kernel-vs-userspace-routers\",\"nodes\":\"$undefined\"}\n2c3:{\"label\":\"Userspace networking mode\",\"numericId\":1112,\"slug\":\"userspace-networking\",\"nodes\":\"$undefined\"}\n2c4:{\"label\":\"Node keys\",\"numericId\":1010,\"slug\":\"node-keys\",\"nodes\":\"$undefined\"}\n2c5:{\"label\":\"Protect SSH Servers\",\"numericId\":1009,\"slug\":\"protect-ssh-servers\",\"nodes\":\"$undefined\"}\n2c6:{\"label\":\"Tailnet lock white paper\",\"numericId\":1230,\"slug\":\"tailnet-lock-whitepaper\",\"nodes\":\"$undefined\"}\n2c7:{\"label\":\"DERP servers\",\"numericId\":1232,\"slug\":\"derp-servers\",\"nodes\":\"$undefined\"}\n2c8:{\"label\":\"Zero Trust Networking (ZTN)\",\"numericId\":1123,\"slug\":\"zero-trust\",\"nodes\":\"$undefined\"}\n2c9:{\"label\":\"IPv4 vs. IPv6 FAQ\",\"numericId\":1134,\"slug\":\"ipv6-faq\",\"nodes\":\"$undefined\"}\n2ca:{\"label\":\"Tailscale ping types\",\"numericId\":1465,\"slug\":\"ping-types\",\"nodes\":\"$undefined\"}\n2b9:[\"$2ba\",\"$2bb\",\"$2bc\",\"$2bd\",\"$2be\",\"$2bf\",\"$2c0\",\"$2c1\",\"$2c2\",\"$2c3\",\"$2c4\",\"$2c5\",\"$2c"])</script><script>self.__next_f.push([1,"6\",\"$2c7\",\"$2c8\",\"$2c9\",\"$2ca\"]\n2b8:{\"label\":\"Technical overviews\",\"numericId\":1376,\"slug\":\"tech-overviews\",\"items\":\"$12b\",\"nodes\":\"$2b9\"}\n2cb:{\"label\":\"Terminology and concepts\",\"numericId\":1155,\"slug\":\"terminology-and-concepts\",\"nodes\":\"$undefined\"}\n2cc:{\"label\":\"GitHub ↗\",\"href\":\"https://github.com/tailscale/tailscale\",\"nodes\":\"$undefined\"}\n294:[\"$295\",\"$29a\",\"$29b\",\"$29c\",\"$2a3\",\"$2aa\",\"$2ab\",\"$2b7\",\"$2b8\",\"$2cb\",\"$2cc\"]\n287:{\"label\":\"Reference\",\"numericId\":1367,\"slug\":\"reference\",\"items\":\"$288\",\"nodes\":\"$294\"}\n2cf:{\"label\":\"Troubleshooting\",\"numericId\":1023,\"slug\":\"troubleshooting\",\"items\":\"$13d\"}\n2d0:{\"label\":\"Support options\",\"numericId\":1250,\"slug\":\"support-options\"}\n2d1:{\"label\":\"Contact support ↗\",\"href\":\"/contact/support\"}\n2d2:{\"label\":\"Generate a bug report\",\"numericId\":1227,\"slug\":\"bug-report\"}\n2ce:[\"$2cf\",\"$2d0\",\"$2d1\",\"$2d2\"]\n2d6:{\"label\":\"Troubleshoot device connectivity\",\"numericId\":1463,\"slug\":\"troubleshoot-connectivity\",\"nodes\":\"$undefined\"}\n2d5:[\"$2d6\"]\n2d4:{\"label\":\"Troubleshooting\",\"numericId\":1023,\"slug\":\"troubleshooting\",\"items\":\"$13d\",\"nodes\":\"$2d5\"}\n2d7:{\"label\":\"Support options\",\"numericId\":1250,\"slug\":\"support-options\",\"nodes\":\"$undefined\"}\n2d8:{\"label\":\"Contact support ↗\",\"href\":\"/contact/support\",\"nodes\":\"$undefined\"}\n2d9:{\"label\":\"Generate a bug report\",\"numericId\":1227,\"slug\":\"bug-report\",\"nodes\":\"$undefined\"}\n2d3:[\"$2d4\",\"$2d7\",\"$2d8\",\"$2d9\"]\n2cd:{\"label\":\"Get Support\",\"numericId\":1432,\"slug\":\"get-support\",\"items\":\"$2ce\",\"nodes\":\"$2d3\"}\n2dc:{\"label\":\"Changelog ↗\",\"href\":\"/changelog\"}\n2dd:{\"label\":\"Comparisons ↗\",\"href\":\"/compare\"}\n2de:{\"label\":\"Release stages\",\"numericId\":1167,\"slug\":\"release-stages\"}\n2df:{\"label\":\"Security ↗\",\"href\":\"/security\"}\n2e0:{\"label\":\"Tailscale Community Projects\",\"numericId\":1531,\"slug\":\"community-projects\"}\n2e1:{\"label\":\"Versions\",\"numericId\":1168,\"slug\":\"versions\",\"items\":\"$13f\"}\n2e2:{\"label\":\"Use cases\",\"numericId\":1377,\"slug\":\"use-cases\"}\n2e3:{\"label\":\"Invite only features\",\"numericId\":1222,\"slug\":\"invite-only-feature\"}\n2db:[\"$2dc\",\"$2dd\""])</script><script>self.__next_f.push([1,",\"$2de\",\"$2df\",\"$2e0\",\"$2e1\",\"$2e2\",\"$2e3\"]\n2e5:{\"label\":\"Changelog ↗\",\"href\":\"/changelog\",\"nodes\":\"$undefined\"}\n2e6:{\"label\":\"Comparisons ↗\",\"href\":\"/compare\",\"nodes\":\"$undefined\"}\n2e7:{\"label\":\"Release stages\",\"numericId\":1167,\"slug\":\"release-stages\",\"nodes\":\"$undefined\"}\n2e8:{\"label\":\"Security ↗\",\"href\":\"/security\",\"nodes\":\"$undefined\"}\n2e9:{\"label\":\"Tailscale Community Projects\",\"numericId\":1531,\"slug\":\"community-projects\",\"nodes\":\"$undefined\"}\n2ec:{\"label\":\"Unstable builds\",\"numericId\":1083,\"slug\":\"install-unstable\",\"nodes\":\"$undefined\"}\n2eb:[\"$2ec\"]\n2ea:{\"label\":\"Versions\",\"numericId\":1168,\"slug\":\"versions\",\"items\":\"$13f\",\"nodes\":\"$2eb\"}\n2ed:{\"label\":\"Use cases\",\"numericId\":1377,\"slug\":\"use-cases\",\"nodes\":\"$undefined\"}\n2ee:{\"label\":\"Invite only features\",\"numericId\":1222,\"slug\":\"invite-only-feature\",\"nodes\":\"$undefined\"}\n2e4:[\"$2e5\",\"$2e6\",\"$2e7\",\"$2e8\",\"$2e9\",\"$2ea\",\"$2ed\",\"$2ee\"]\n2da:{\"label\":\"Resources\",\"numericId\":1368,\"slug\":\"resources\",\"items\":\"$2db\",\"nodes\":\"$2e4\"}\n143:[\"$144\",\"$17c\",\"$20c\",\"$261\",\"$262\",\"$276\",\"$287\",\"$2cd\",\"$2da\"]\n"])</script><script>self.__next_f.push([1,"b:[\"$\",\"div\",null,{\"className\":\"grid grid-cols-10 gap-x-8 pt-4 md:pt-8\",\"children\":[[\"$\",\"aside\",null,{\"className\":\"js-docHighlight col-span-10 md:col-span-3 md:row-span-2 xl:col-span-2\",\"children\":[[\"$\",\"div\",null,{\"className\":\"relative hidden h-full md:block\",\"children\":[\"$\",\"$L1a\",null,{\"routeParams\":[\"1080\",\"cli\"],\"config\":[{\"label\":\"Start\",\"slug\":\"start\",\"numericId\":1346,\"items\":[{\"label\":\"Quickstart\",\"numericId\":1017,\"slug\":\"install\"},{\"label\":\"Install Tailscale\",\"numericId\":1347,\"slug\":\"installation\",\"items\":[{\"label\":\"Download ↗\",\"href\":\"/downloads\"},{\"label\":\"Update Tailscale\",\"numericId\":1067,\"slug\":\"update\"},{\"label\":\"Uninstall Tailscale\",\"numericId\":1069,\"slug\":\"uninstall\"},{\"label\":\"Deploy with MDM\",\"numericId\":1362,\"slug\":\"mdm\",\"items\":[{\"label\":\"Customize Tailscale using system policies\",\"numericId\":1315,\"slug\":\"mdm-keys\",\"items\":[{\"label\":\"Deploy on Android\",\"numericId\":1384,\"slug\":\"android-mdm\"},{\"label\":\"Deploy on iOS/tvOS\",\"numericId\":1380,\"slug\":\"ios-mdm\"},{\"label\":\"Deploy on macOS\",\"numericId\":1286,\"slug\":\"macos-mdm\"},{\"label\":\"Deploy on Windows\",\"numericId\":1318,\"slug\":\"windows-mdm\"}]},{\"label\":\"MDM integration partners\",\"numericId\":1448,\"slug\":\"mdm-integration-partners\",\"items\":[{\"label\":\"Google Workspace\",\"numericId\":1386,\"slug\":\"mdm-google-workspace\"},{\"label\":\"Jamf\",\"numericId\":1328,\"slug\":\"mdm-jamf\"},{\"label\":\"JumpCloud\",\"numericId\":1485,\"slug\":\"mdm-jumpcloud\"},{\"label\":\"Kandji\",\"numericId\":1329,\"slug\":\"mdm-kandji\"},{\"label\":\"Microsoft Intune\",\"numericId\":1327,\"slug\":\"mdm-microsoft-intune\"},{\"label\":\"SimpleMDM\",\"numericId\":1330,\"slug\":\"mdm-simplemdm\"},{\"label\":\"TinyMDM\",\"numericId\":1385,\"slug\":\"mdm-tinymdm\"}]}]}]},{\"label\":\"Quick guides\",\"numericId\":1415,\"slug\":\"quick-guides\",\"items\":[{\"label\":\"Use exit nodes\",\"numericId\":1408,\"slug\":\"quick-guide-exit-node\"},{\"label\":\"Configure a subnet router\",\"numericId\":1406,\"slug\":\"quick-guide-subnets\"},{\"label\":\"Host a website\",\"numericId\":1310,\"slug\":\"quick-guide-host-websites\"},{\"label\":\"Install on AWS\",\"numericId\":1449,\"slug\":\"quick-guide-aws\"},{\"label\":\"SSH into a Linux virtual machine\",\"numericId\":1308,\"slug\":\"quick-guide-ssh-linux-vm\"},{\"label\":\"Access a virtual private cloud (VPC)\",\"numericId\":1309,\"slug\":\"quick-guide-access-vpc\"},{\"label\":\"Add a Docker container\",\"numericId\":1453,\"slug\":\"quick-guide-docker\"}]},{\"label\":\"Set up an identity provider\",\"numericId\":1013,\"slug\":\"sso-providers\",\"items\":[{\"label\":\"Google\",\"numericId\":1199,\"slug\":\"sso-google\"},{\"label\":\"Microsoft Entra ID\",\"numericId\":1285,\"slug\":\"sso-microsoft\"},{\"label\":\"Okta\",\"numericId\":1066,\"slug\":\"sso-okta\"},{\"label\":\"GitHub\",\"numericId\":1284,\"slug\":\"sso-github\"},{\"label\":\"Apple\",\"numericId\":1283,\"slug\":\"sso-apple\"},{\"label\":\"OneLogin\",\"numericId\":1070,\"slug\":\"sso-onelogin\"},{\"label\":\"User \u0026 group provisioning\",\"numericId\":1290,\"slug\":\"user-group-provisioning\",\"items\":[{\"label\":\"Google Workspace\",\"numericId\":1317,\"slug\":\"sso-google-sync\"},{\"label\":\"Microsoft Entra ID\",\"numericId\":1249,\"slug\":\"sso-entra-id-scim\"},{\"label\":\"Okta\",\"numericId\":1180,\"slug\":\"sso-okta-scim\"}]},{\"label\":\"Custom OIDC providers\",\"numericId\":1240,\"slug\":\"sso-custom-oidc\"},{\"label\":\"Enable 2FA and MFA\",\"numericId\":1075,\"slug\":\"multifactor-auth\"}]},{\"label\":\"What is Tailscale?\",\"numericId\":1151,\"slug\":\"what-is-tailscale\"}],\"nodes\":[{\"label\":\"Quickstart\",\"numericId\":1017,\"slug\":\"install\",\"nodes\":\"$undefined\"},{\"label\":\"Install Tailscale\",\"numericId\":1347,\"slug\":\"installation\",\"items\":\"$1b\",\"nodes\":[{\"label\":\"Download ↗\",\"href\":\"/downloads\",\"nodes\":\"$undefined\"},{\"label\":\"Update Tailscale\",\"numericId\":1067,\"slug\":\"update\",\"nodes\":\"$undefined\"},{\"label\":\"Uninstall Tailscale\",\"numericId\":1069,\"slug\":\"uninstall\",\"nodes\":\"$undefined\"},{\"label\":\"Deploy with MDM\",\"numericId\":1362,\"slug\":\"mdm\",\"items\":\"$20\",\"nodes\":[{\"label\":\"Customize Tailscale using system policies\",\"numericId\":1315,\"slug\":\"mdm-keys\",\"items\":\"$22\",\"nodes\":[{\"label\":\"Deploy on Android\",\"numericId\":1384,\"slug\":\"android-mdm\",\"nodes\":\"$undefined\"},{\"label\":\"Deploy on iOS/tvOS\",\"numericId\":1380,\"slug\":\"ios-mdm\",\"nodes\":\"$undefined\"},{\"label\":\"Deploy on macOS\",\"numericId\":1286,\"slug\":\"macos-mdm\",\"nodes\":\"$undefined\"},{\"label\":\"Deploy on Windows\",\"numericId\":1318,\"slug\":\"windows-mdm\",\"nodes\":\"$undefined\"}]},{\"label\":\"MDM integration partners\",\"numericId\":1448,\"slug\":\"mdm-integration-partners\",\"items\":\"$28\",\"nodes\":[{\"label\":\"Google Workspace\",\"numericId\":1386,\"slug\":\"mdm-google-workspace\",\"nodes\":\"$undefined\"},{\"label\":\"Jamf\",\"numericId\":1328,\"slug\":\"mdm-jamf\",\"nodes\":\"$undefined\"},{\"label\":\"JumpCloud\",\"numericId\":1485,\"slug\":\"mdm-jumpcloud\",\"nodes\":\"$undefined\"},{\"label\":\"Kandji\",\"numericId\":1329,\"slug\":\"mdm-kandji\",\"nodes\":\"$undefined\"},{\"label\":\"Microsoft Intune\",\"numericId\":1327,\"slug\":\"mdm-microsoft-intune\",\"nodes\":\"$undefined\"},{\"label\":\"SimpleMDM\",\"numericId\":1330,\"slug\":\"mdm-simplemdm\",\"nodes\":\"$undefined\"},{\"label\":\"TinyMDM\",\"numericId\":1385,\"slug\":\"mdm-tinymdm\",\"nodes\":\"$undefined\"}]}]}]},{\"label\":\"Quick guides\",\"numericId\":1415,\"slug\":\"quick-guides\",\"items\":\"$30\",\"nodes\":[{\"label\":\"Use exit nodes\",\"numericId\":1408,\"slug\":\"quick-guide-exit-node\",\"nodes\":\"$undefined\"},{\"label\":\"Configure a subnet router\",\"numericId\":1406,\"slug\":\"quick-guide-subnets\",\"nodes\":\"$undefined\"},{\"label\":\"Host a website\",\"numericId\":1310,\"slug\":\"quick-guide-host-websites\",\"nodes\":\"$undefined\"},{\"label\":\"Install on AWS\",\"numericId\":1449,\"slug\":\"quick-guide-aws\",\"nodes\":\"$undefined\"},{\"label\":\"SSH into a Linux virtual machine\",\"numericId\":1308,\"slug\":\"quick-guide-ssh-linux-vm\",\"nodes\":\"$undefined\"},{\"label\":\"Access a virtual private cloud (VPC)\",\"numericId\":1309,\"slug\":\"quick-guide-access-vpc\",\"nodes\":\"$undefined\"},{\"label\":\"Add a Docker container\",\"numericId\":1453,\"slug\":\"quick-guide-docker\",\"nodes\":\"$undefined\"}]},{\"label\":\"Set up an identity provider\",\"numericId\":1013,\"slug\":\"sso-providers\",\"items\":\"$38\",\"nodes\":[{\"label\":\"Google\",\"numericId\":1199,\"slug\":\"sso-google\",\"nodes\":\"$undefined\"},{\"label\":\"Microsoft Entra ID\",\"numericId\":1285,\"slug\":\"sso-microsoft\",\"nodes\":\"$undefined\"},{\"label\":\"Okta\",\"numericId\":1066,\"slug\":\"sso-okta\",\"nodes\":\"$undefined\"},{\"label\":\"GitHub\",\"numericId\":1284,\"slug\":\"sso-github\",\"nodes\":\"$undefined\"},{\"label\":\"Apple\",\"numericId\":1283,\"slug\":\"sso-apple\",\"nodes\":\"$undefined\"},{\"label\":\"OneLogin\",\"numericId\":1070,\"slug\":\"sso-onelogin\",\"nodes\":\"$undefined\"},{\"label\":\"User \u0026 group provisioning\",\"numericId\":1290,\"slug\":\"user-group-provisioning\",\"items\":\"$40\",\"nodes\":[{\"label\":\"Google Workspace\",\"numericId\":1317,\"slug\":\"sso-google-sync\",\"nodes\":\"$undefined\"},{\"label\":\"Microsoft Entra ID\",\"numericId\":1249,\"slug\":\"sso-entra-id-scim\",\"nodes\":\"$undefined\"},{\"label\":\"Okta\",\"numericId\":1180,\"slug\":\"sso-okta-scim\",\"nodes\":\"$undefined\"}]},{\"label\":\"Custom OIDC providers\",\"numericId\":1240,\"slug\":\"sso-custom-oidc\",\"nodes\":\"$undefined\"},{\"label\":\"Enable 2FA and MFA\",\"numericId\":1075,\"slug\":\"multifactor-auth\",\"nodes\":\"$undefined\"}]},{\"label\":\"What is Tailscale?\",\"numericId\":1151,\"slug\":\"what-is-tailscale\",\"nodes\":\"$undefined\"}]},{\"label\":\"How-to Guides\",\"numericId\":1348,\"slug\":\"guides\",\"items\":[{\"label\":\"Manage Access\",\"group\":true,\"numericId\":1350,\"slug\":\"manage\",\"items\":[{\"label\":\"Manage access control\",\"numericId\":1393,\"slug\":\"access-control\",\"items\":[{\"label\":\"Manage ACLs\",\"numericId\":1018,\"slug\":\"acls\",\"items\":[{\"label\":\"ACL syntax\",\"numericId\":1337,\"slug\":\"acl-syntax\"}]},{\"label\":\"Manage grants\",\"numericId\":1324,\"slug\":\"acl-grants\"},{\"label\":\"Edit the tailnet policy file\",\"numericId\":1338,\"slug\":\"acl-edit\"},{\"label\":\"Manage ACLs with GitOps\",\"numericId\":1204,\"slug\":\"gitopcs-acls\",\"items\":[{\"label\":\"Manage ACLs with Bitbucket\",\"numericId\":1302,\"slug\":\"gitops-acls-bitbucket\"},{\"label\":\"Manage ACLs with GitHub\",\"numericId\":1306,\"slug\":\"gitops-acls-github\"},{\"label\":\"Manage ACLs with GitLab\",\"numericId\":1254,\"slug\":\"gitops-acls-gitlab\"}]}]},{\"label\":\"Manage just-in-time access\",\"numericId\":1443,\"slug\":\"just-in-time-access\",\"items\":[{\"label\":\"Device posture for JIT access\",\"numericId\":1383,\"slug\":\"device-posture-for-jit\"},{\"label\":\"3rd party JIT access integrations\",\"numericId\":1374,\"slug\":\"jit-access-integrations\",\"items\":[{\"label\":\"ConductorOne\",\"numericId\":1208,\"slug\":\"jit-access-conductorone\"},{\"label\":\"Opal\",\"numericId\":1209,\"slug\":\"jit-access-opal\"},{\"label\":\"Sym\",\"numericId\":1206,\"slug\":\"jit-access-sym\"}]}]},{\"label\":\"Manage devices\",\"numericId\":1372,\"slug\":\"manage-devices\",\"items\":[{\"label\":\"Add a device\",\"numericId\":1316,\"slug\":\"device-add\"},{\"label\":\"Device approval\",\"numericId\":1099,\"slug\":\"device-approval\"},{\"label\":\"Rename a device\",\"numericId\":1098,\"slug\":\"machine-names\"},{\"label\":\"Remove a device\",\"numericId\":1260,\"slug\":\"device-remove\"},{\"label\":\"Device posture management\",\"numericId\":1288,\"slug\":\"device-posture\",\"items\":[{\"label\":\"Use Device Identity Collection\",\"numericId\":1326,\"slug\":\"device-identity\"},{\"label\":\"CrowdStrike Falcon\",\"numericId\":1289,\"slug\":\"crowdstrike-zta\"},{\"label\":\"SentinelOne\",\"numericId\":1390,\"slug\":\"sentinelone\"},{\"label\":\"1Password XAM\",\"numericId\":1407,\"slug\":\"kolide\"},{\"label\":\"Jamf Pro\",\"numericId\":1409,\"slug\":\"jamf-pro\"},{\"label\":\"Microsoft Intune\",\"numericId\":1410,\"slug\":\"intune\"},{\"label\":\"Kandji\",\"numericId\":1405,\"slug\":\"kandji\"}]},{\"label\":\"Filter devices\",\"numericId\":1176,\"slug\":\"filter-devices\"},{\"label\":\"Export list of devices\",\"numericId\":1228,\"slug\":\"export-device-list\"},{\"label\":\"Use the web interface\",\"numericId\":1325,\"slug\":\"device-web-interface\"},{\"label\":\"Add a device using a QR code\",\"numericId\":1336,\"slug\":\"device-add-qr-code\"}]},{\"label\":\"Manage users\",\"numericId\":1373,\"slug\":\"manage-users\",\"items\":[{\"label\":\"Invite users\",\"items\":[{\"label\":\"Invite team members\",\"numericId\":1064,\"slug\":\"invite-team-members\"},{\"label\":\"Invite any user\",\"numericId\":1271,\"slug\":\"invite-any-user\"},{\"label\":\"Use passkeys\",\"numericId\":1269,\"slug\":\"passkeys\"}],\"numericId\":1371,\"slug\":\"invite-users\"},{\"label\":\"User approval\",\"numericId\":1239,\"slug\":\"user-approval\"},{\"label\":\"User roles\",\"numericId\":1138,\"slug\":\"user-roles\"},{\"label\":\"Change user roles\",\"numericId\":1171,\"slug\":\"changing-user-roles\"},{\"label\":\"Remove users\",\"numericId\":1145,\"slug\":\"remove-team-members\"},{\"label\":\"Fast user switching\",\"numericId\":1225,\"slug\":\"fast-user-switching\"},{\"label\":\"Export list of users\",\"numericId\":1229,\"slug\":\"export-user-list\"},{\"label\":\"Offboard users\",\"numericId\":1248,\"slug\":\"offboarding-users\"},{\"label\":\"Admin console session timeout\",\"numericId\":1461,\"slug\":\"admin-console-session-timeout\"}]},{\"label\":\"Tailnet lock\",\"numericId\":1226,\"slug\":\"tailnet-lock\"}]},{\"label\":\"Route Traffic\",\"group\":true,\"numericId\":1351,\"slug\":\"route\",\"items\":[{\"label\":\"Set up a subnet router\",\"numericId\":1019,\"slug\":\"subnets\",\"items\":[{\"label\":\"Subnet router BGP advertisement\",\"numericId\":1298,\"slug\":\"subnet-bgp\"},{\"label\":\"4via6 subnet routers\",\"numericId\":1201,\"slug\":\"4via6-subnets\"},{\"label\":\"Site-to-site networking\",\"numericId\":1214,\"slug\":\"site-to-site\"}]},{\"label\":\"Set up an exit node\",\"numericId\":1103,\"slug\":\"exit-nodes\",\"items\":[{\"label\":\"Use a Mullvad exit node\",\"numericId\":1258,\"slug\":\"mullvad-exit-nodes\"},{\"label\":\"Recommended exit nodes\",\"numericId\":1392,\"slug\":\"auto-exit-nodes\"},{\"label\":\"Mandatory exit nodes\",\"numericId\":1413,\"slug\":\"mandatory-exit-nodes\"}]},{\"label\":\"Set up an app connector\",\"numericId\":1281,\"slug\":\"app-connectors\",\"items\":[{\"label\":\"How app connectors work\",\"numericId\":1342,\"slug\":\"how-app-connectors-work\"},{\"label\":\"Best practices for SaaS apps\",\"numericId\":1332,\"slug\":\"apps-best-practices\"},{\"label\":\"Use preset apps\",\"numericId\":1339,\"slug\":\"preset-apps\"}]},{\"label\":\"Use DNS\",\"numericId\":1054,\"slug\":\"dns\",\"items\":[{\"label\":\"Configure Linux DNS\",\"numericId\":1188,\"slug\":\"linux-dns\"},{\"label\":\"Why is resolv.conf being overwritten?\",\"numericId\":1235,\"slug\":\"resolv-conf\"},{\"label\":\"Use NextDNS\",\"numericId\":1218,\"slug\":\"nextdns\"},{\"label\":\"Use Control D\",\"numericId\":1403,\"slug\":\"control-d\"},{\"label\":\"Use Unbound DNS in OPNsense\",\"numericId\":1299,\"slug\":\"opnsense-unbound\"}]},{\"label\":\"Set up MagicDNS\",\"numericId\":1081,\"slug\":\"magicdns\"},{\"label\":\"Set up high availability\",\"numericId\":1115,\"slug\":\"high-availability\"}]},{\"label\":\"Set Up Servers\",\"group\":true,\"numericId\":1352,\"slug\":\"servers\",\"items\":[{\"label\":\"Set up a server\",\"numericId\":1245,\"slug\":\"set-up-servers\"},{\"label\":\"Use tags\",\"numericId\":1068,\"slug\":\"tags\"},{\"label\":\"Install Tailscale with cloud-init\",\"numericId\":1293,\"slug\":\"cloud-init\"},{\"label\":\"Use auth keys\",\"numericId\":1085,\"slug\":\"auth-keys\",\"items\":[{\"label\":\"Automate key expiry\",\"numericId\":1028,\"slug\":\"key-expiry\"}]},{\"label\":\"Use Tailscale SSH\",\"numericId\":1193,\"slug\":\"tailscale-ssh\",\"items\":[{\"label\":\"Use Tailscale SSH Console\",\"numericId\":1216,\"slug\":\"tailscale-ssh-console\"}]},{\"label\":\"Set up HTTPS certificates\",\"numericId\":1153,\"slug\":\"enabling-https\"},{\"label\":\"Run an ephemeral node\",\"numericId\":1111,\"slug\":\"ephemeral-nodes\"},{\"label\":\"Run unattended\",\"numericId\":1088,\"slug\":\"run-unattended\"}]},{\"label\":\"Access \u0026 Share Services\",\"group\":true,\"numericId\":1354,\"slug\":\"share\",\"items\":[{\"label\":\"View services\",\"numericId\":1100,\"slug\":\"services\"},{\"label\":\"Share nodes\",\"numericId\":1084,\"slug\":\"sharing\"},{\"label\":\"Use Taildrop\",\"numericId\":1106,\"slug\":\"taildrop\",\"items\":[{\"label\":\"Taildrop with NAS\",\"numericId\":1418,\"slug\":\"taildrop-nas\"}]}]},{\"label\":\"Share a web server\",\"group\":true,\"numericId\":1353,\"slug\":\"share-web-server\",\"items\":[{\"label\":\"Tailscale Funnel\",\"numericId\":1223,\"slug\":\"funnel\",\"items\":[{\"label\":\"Examples\",\"numericId\":1247,\"slug\":\"funnel-examples\"},{\"label\":\"Funnel vs. sharing\",\"numericId\":1464,\"slug\":\"funnel-vs-sharing\"}]},{\"label\":\"Tailscale Serve\",\"numericId\":1312,\"slug\":\"serve\",\"items\":[{\"label\":\"Examples\",\"numericId\":1313,\"slug\":\"serve-examples\"}]}]},{\"label\":\"Solutions\",\"group\":true,\"numericId\":1355,\"slug\":\"solutions\",\"items\":[{\"label\":\"Code from your iPad\",\"numericId\":1166,\"slug\":\"vscode-ipad\"},{\"label\":\"Lock down a server\",\"numericId\":1077,\"slug\":\"secure-server-ubuntu\"},{\"label\":\"Access a PiKVM\",\"numericId\":1292,\"slug\":\"pikvm\"},{\"label\":\"Run a Pi-hole\",\"numericId\":1114,\"slug\":\"pi-hole\"},{\"label\":\"Secure external services\",\"numericId\":1059,\"slug\":\"ip-blocklist-relays\"},{\"label\":\"Just-in-time access\",\"numericId\":1443,\"slug\":\"just-in-time-access\",\"items\":[{\"label\":\"Device posture for JIT access\",\"numericId\":1383,\"slug\":\"device-posture-for-jit\"},{\"label\":\"3rd party JIT access integrations\",\"numericId\":1374,\"slug\":\"jit-access-integrations\",\"items\":[{\"label\":\"ConductorOne\",\"numericId\":1208,\"slug\":\"jit-access-conductorone\"},{\"label\":\"Opal\",\"numericId\":1209,\"slug\":\"jit-access-opal\"},{\"label\":\"Sym\",\"numericId\":1206,\"slug\":\"jit-access-sym\"}]}]},{\"label\":\"Automation\",\"numericId\":1430,\"slug\":\"automations\",\"items\":[{\"label\":\"Infrastructure as code\",\"numericId\":1370,\"slug\":\"infrastructure-as-code\",\"items\":[{\"label\":\"Terraform\",\"numericId\":1210,\"slug\":\"terraform-provider\"},{\"label\":\"Pulumi\",\"numericId\":1211,\"slug\":\"pulumi-provider\"}]},{\"label\":\"macOS and iOS shortcuts\",\"numericId\":1233,\"slug\":\"mac-ios-shortcuts\"}]}]}],\"nodes\":[{\"label\":\"Manage Access\",\"group\":true,\"numericId\":1350,\"slug\":\"manage\",\"items\":\"$46\",\"nodes\":[{\"label\":\"Manage access control\",\"numericId\":1393,\"slug\":\"access-control\",\"items\":\"$48\",\"nodes\":[{\"label\":\"Manage ACLs\",\"numericId\":1018,\"slug\":\"acls\",\"items\":\"$4a\",\"nodes\":[{\"label\":\"ACL syntax\",\"numericId\":1337,\"slug\":\"acl-syntax\",\"nodes\":\"$undefined\"}]},{\"label\":\"Manage grants\",\"numericId\":1324,\"slug\":\"acl-grants\",\"nodes\":\"$undefined\"},{\"label\":\"Edit the tailnet policy file\",\"numericId\":1338,\"slug\":\"acl-edit\",\"nodes\":\"$undefined\"},{\"label\":\"Manage ACLs with GitOps\",\"numericId\":1204,\"slug\":\"gitopcs-acls\",\"items\":\"$4f\",\"nodes\":[{\"label\":\"Manage ACLs with Bitbucket\",\"numericId\":1302,\"slug\":\"gitops-acls-bitbucket\",\"nodes\":\"$undefined\"},{\"label\":\"Manage ACLs with GitHub\",\"numericId\":1306,\"slug\":\"gitops-acls-github\",\"nodes\":\"$undefined\"},{\"label\":\"Manage ACLs with GitLab\",\"numericId\":1254,\"slug\":\"gitops-acls-gitlab\",\"nodes\":\"$undefined\"}]}]},{\"label\":\"Manage just-in-time access\",\"numericId\":1443,\"slug\":\"just-in-time-access\",\"items\":\"$54\",\"nodes\":[{\"label\":\"Device posture for JIT access\",\"numericId\":1383,\"slug\":\"device-posture-for-jit\",\"nodes\":\"$undefined\"},{\"label\":\"3rd party JIT access integrations\",\"numericId\":1374,\"slug\":\"jit-access-integrations\",\"items\":\"$57\",\"nodes\":[{\"label\":\"ConductorOne\",\"numericId\":1208,\"slug\":\"jit-access-conductorone\",\"nodes\":\"$undefined\"},{\"label\":\"Opal\",\"numericId\":1209,\"slug\":\"jit-access-opal\",\"nodes\":\"$undefined\"},{\"label\":\"Sym\",\"numericId\":1206,\"slug\":\"jit-access-sym\",\"nodes\":\"$undefined\"}]}]},{\"label\":\"Manage devices\",\"numericId\":1372,\"slug\":\"manage-devices\",\"items\":\"$5c\",\"nodes\":[{\"label\":\"Add a device\",\"numericId\":1316,\"slug\":\"device-add\",\"nodes\":\"$undefined\"},{\"label\":\"Device approval\",\"numericId\":1099,\"slug\":\"device-approval\",\"nodes\":\"$undefined\"},{\"label\":\"Rename a device\",\"numericId\":1098,\"slug\":\"machine-names\",\"nodes\":\"$undefined\"},{\"label\":\"Remove a device\",\"numericId\":1260,\"slug\":\"device-remove\",\"nodes\":\"$undefined\"},{\"label\":\"Device posture management\",\"numericId\":1288,\"slug\":\"device-posture\",\"items\":\"$62\",\"nodes\":[{\"label\":\"Use Device Identity Collection\",\"numericId\":1326,\"slug\":\"device-identity\",\"nodes\":\"$undefined\"},{\"label\":\"CrowdStrike Falcon\",\"numericId\":1289,\"slug\":\"crowdstrike-zta\",\"nodes\":\"$undefined\"},{\"label\":\"SentinelOne\",\"numericId\":1390,\"slug\":\"sentinelone\",\"nodes\":\"$undefined\"},{\"label\":\"1Password XAM\",\"numericId\":1407,\"slug\":\"kolide\",\"nodes\":\"$undefined\"},{\"label\":\"Jamf Pro\",\"numericId\":1409,\"slug\":\"jamf-pro\",\"nodes\":\"$undefined\"},{\"label\":\"Microsoft Intune\",\"numericId\":1410,\"slug\":\"intune\",\"nodes\":\"$undefined\"},{\"label\":\"Kandji\",\"numericId\":1405,\"slug\":\"kandji\",\"nodes\":\"$undefined\"}]},{\"label\":\"Filter devices\",\"numericId\":1176,\"slug\":\"filter-devices\",\"nodes\":\"$undefined\"},{\"label\":\"Export list of devices\",\"numericId\":1228,\"slug\":\"export-device-list\",\"nodes\":\"$undefined\"},{\"label\":\"Use the web interface\",\"numericId\":1325,\"slug\":\"device-web-interface\",\"nodes\":\"$undefined\"},{\"label\":\"Add a device using a QR code\",\"numericId\":1336,\"slug\":\"device-add-qr-code\",\"nodes\":\"$undefined\"}]},{\"label\":\"Manage users\",\"numericId\":1373,\"slug\":\"manage-users\",\"items\":\"$6f\",\"nodes\":[{\"label\":\"Invite users\",\"items\":\"$71\",\"numericId\":1371,\"slug\":\"invite-users\",\"nodes\":[{\"label\":\"Invite team members\",\"numericId\":1064,\"slug\":\"invite-team-members\",\"nodes\":\"$undefined\"},{\"label\":\"Invite any user\",\"numericId\":1271,\"slug\":\"invite-any-user\",\"nodes\":\"$undefined\"},{\"label\":\"Use passkeys\",\"numericId\":1269,\"slug\":\"passkeys\",\"nodes\":\"$undefined\"}]},{\"label\":\"User approval\",\"numericId\":1239,\"slug\":\"user-approval\",\"nodes\":\"$undefined\"},{\"label\":\"User roles\",\"numericId\":1138,\"slug\":\"user-roles\",\"nodes\":\"$undefined\"},{\"label\":\"Change user roles\",\"numericId\":1171,\"slug\":\"changing-user-roles\",\"nodes\":\"$undefined\"},{\"label\":\"Remove users\",\"numericId\":1145,\"slug\":\"remove-team-members\",\"nodes\":\"$undefined\"},{\"label\":\"Fast user switching\",\"numericId\":1225,\"slug\":\"fast-user-switching\",\"nodes\":\"$undefined\"},{\"label\":\"Export list of users\",\"numericId\":1229,\"slug\":\"export-user-list\",\"nodes\":\"$undefined\"},{\"label\":\"Offboard users\",\"numericId\":1248,\"slug\":\"offboarding-users\",\"nodes\":\"$undefined\"},{\"label\":\"Admin console session timeout\",\"numericId\":1461,\"slug\":\"admin-console-session-timeout\",\"nodes\":\"$undefined\"}]},{\"label\":\"Tailnet lock\",\"numericId\":1226,\"slug\":\"tailnet-lock\",\"nodes\":\"$undefined\"}]},{\"label\":\"Route Traffic\",\"group\":true,\"numericId\":1351,\"slug\":\"route\",\"items\":\"$7e\",\"nodes\":[{\"label\":\"Set up a subnet router\",\"numericId\":1019,\"slug\":\"subnets\",\"items\":\"$80\",\"nodes\":[{\"label\":\"Subnet router BGP advertisement\",\"numericId\":1298,\"slug\":\"subnet-bgp\",\"nodes\":\"$undefined\"},{\"label\":\"4via6 subnet routers\",\"numericId\":1201,\"slug\":\"4via6-subnets\",\"nodes\":\"$undefined\"},{\"label\":\"Site-to-site networking\",\"numericId\":1214,\"slug\":\"site-to-site\",\"nodes\":\"$undefined\"}]},{\"label\":\"Set up an exit node\",\"numericId\":1103,\"slug\":\"exit-nodes\",\"items\":\"$85\",\"nodes\":[{\"label\":\"Use a Mullvad exit node\",\"numericId\":1258,\"slug\":\"mullvad-exit-nodes\",\"nodes\":\"$undefined\"},{\"label\":\"Recommended exit nodes\",\"numericId\":1392,\"slug\":\"auto-exit-nodes\",\"nodes\":\"$undefined\"},{\"label\":\"Mandatory exit nodes\",\"numericId\":1413,\"slug\":\"mandatory-exit-nodes\",\"nodes\":\"$undefined\"}]},{\"label\":\"Set up an app connector\",\"numericId\":1281,\"slug\":\"app-connectors\",\"items\":\"$8a\",\"nodes\":[{\"label\":\"How app connectors work\",\"numericId\":1342,\"slug\":\"how-app-connectors-work\",\"nodes\":\"$undefined\"},{\"label\":\"Best practices for SaaS apps\",\"numericId\":1332,\"slug\":\"apps-best-practices\",\"nodes\":\"$undefined\"},{\"label\":\"Use preset apps\",\"numericId\":1339,\"slug\":\"preset-apps\",\"nodes\":\"$undefined\"}]},{\"label\":\"Use DNS\",\"numericId\":1054,\"slug\":\"dns\",\"items\":\"$8f\",\"nodes\":[{\"label\":\"Configure Linux DNS\",\"numericId\":1188,\"slug\":\"linux-dns\",\"nodes\":\"$undefined\"},{\"label\":\"Why is resolv.conf being overwritten?\",\"numericId\":1235,\"slug\":\"resolv-conf\",\"nodes\":\"$undefined\"},{\"label\":\"Use NextDNS\",\"numericId\":1218,\"slug\":\"nextdns\",\"nodes\":\"$undefined\"},{\"label\":\"Use Control D\",\"numericId\":1403,\"slug\":\"control-d\",\"nodes\":\"$undefined\"},{\"label\":\"Use Unbound DNS in OPNsense\",\"numericId\":1299,\"slug\":\"opnsense-unbound\",\"nodes\":\"$undefined\"}]},{\"label\":\"Set up MagicDNS\",\"numericId\":1081,\"slug\":\"magicdns\",\"nodes\":\"$undefined\"},{\"label\":\"Set up high availability\",\"numericId\":1115,\"slug\":\"high-availability\",\"nodes\":\"$undefined\"}]},{\"label\":\"Set Up Servers\",\"group\":true,\"numericId\":1352,\"slug\":\"servers\",\"items\":\"$97\",\"nodes\":[{\"label\":\"Set up a server\",\"numericId\":1245,\"slug\":\"set-up-servers\",\"nodes\":\"$undefined\"},{\"label\":\"Use tags\",\"numericId\":1068,\"slug\":\"tags\",\"nodes\":\"$undefined\"},{\"label\":\"Install Tailscale with cloud-init\",\"numericId\":1293,\"slug\":\"cloud-init\",\"nodes\":\"$undefined\"},{\"label\":\"Use auth keys\",\"numericId\":1085,\"slug\":\"auth-keys\",\"items\":\"$9c\",\"nodes\":[{\"label\":\"Automate key expiry\",\"numericId\":1028,\"slug\":\"key-expiry\",\"nodes\":\"$undefined\"}]},{\"label\":\"Use Tailscale SSH\",\"numericId\":1193,\"slug\":\"tailscale-ssh\",\"items\":\"$9f\",\"nodes\":[{\"label\":\"Use Tailscale SSH Console\",\"numericId\":1216,\"slug\":\"tailscale-ssh-console\",\"nodes\":\"$undefined\"}]},{\"label\":\"Set up HTTPS certificates\",\"numericId\":1153,\"slug\":\"enabling-https\",\"nodes\":\"$undefined\"},{\"label\":\"Run an ephemeral node\",\"numericId\":1111,\"slug\":\"ephemeral-nodes\",\"nodes\":\"$undefined\"},{\"label\":\"Run unattended\",\"numericId\":1088,\"slug\":\"run-unattended\",\"nodes\":\"$undefined\"}]},{\"label\":\"Access \u0026 Share Services\",\"group\":true,\"numericId\":1354,\"slug\":\"share\",\"items\":\"$a4\",\"nodes\":[{\"label\":\"View services\",\"numericId\":1100,\"slug\":\"services\",\"nodes\":\"$undefined\"},{\"label\":\"Share nodes\",\"numericId\":1084,\"slug\":\"sharing\",\"nodes\":\"$undefined\"},{\"label\":\"Use Taildrop\",\"numericId\":1106,\"slug\":\"taildrop\",\"items\":\"$a8\",\"nodes\":[{\"label\":\"Taildrop with NAS\",\"numericId\":1418,\"slug\":\"taildrop-nas\",\"nodes\":\"$undefined\"}]}]},{\"label\":\"Share a web server\",\"group\":true,\"numericId\":1353,\"slug\":\"share-web-server\",\"items\":\"$aa\",\"nodes\":[{\"label\":\"Tailscale Funnel\",\"numericId\":1223,\"slug\":\"funnel\",\"items\":\"$ac\",\"nodes\":[{\"label\":\"Examples\",\"numericId\":1247,\"slug\":\"funnel-examples\",\"nodes\":\"$undefined\"},{\"label\":\"Funnel vs. sharing\",\"numericId\":1464,\"slug\":\"funnel-vs-sharing\",\"nodes\":\"$undefined\"}]},{\"label\":\"Tailscale Serve\",\"numericId\":1312,\"slug\":\"serve\",\"items\":\"$b0\",\"nodes\":[{\"label\":\"Examples\",\"numericId\":1313,\"slug\":\"serve-examples\",\"nodes\":\"$undefined\"}]}]},{\"label\":\"Solutions\",\"group\":true,\"numericId\":1355,\"slug\":\"solutions\",\"items\":\"$b2\",\"nodes\":[{\"label\":\"Code from your iPad\",\"numericId\":1166,\"slug\":\"vscode-ipad\",\"nodes\":\"$undefined\"},{\"label\":\"Lock down a server\",\"numericId\":1077,\"slug\":\"secure-server-ubuntu\",\"nodes\":\"$undefined\"},{\"label\":\"Access a PiKVM\",\"numericId\":1292,\"slug\":\"pikvm\",\"nodes\":\"$undefined\"},{\"label\":\"Run a Pi-hole\",\"numericId\":1114,\"slug\":\"pi-hole\",\"nodes\":\"$undefined\"},{\"label\":\"Secure external services\",\"numericId\":1059,\"slug\":\"ip-blocklist-relays\",\"nodes\":\"$undefined\"},{\"label\":\"Just-in-time access\",\"numericId\":1443,\"slug\":\"just-in-time-access\",\"items\":\"$b9\",\"nodes\":[{\"label\":\"Device posture for JIT access\",\"numericId\":1383,\"slug\":\"device-posture-for-jit\",\"nodes\":\"$undefined\"},{\"label\":\"3rd party JIT access integrations\",\"numericId\":1374,\"slug\":\"jit-access-integrations\",\"items\":\"$bc\",\"nodes\":[{\"label\":\"ConductorOne\",\"numericId\":1208,\"slug\":\"jit-access-conductorone\",\"nodes\":\"$undefined\"},{\"label\":\"Opal\",\"numericId\":1209,\"slug\":\"jit-access-opal\",\"nodes\":\"$undefined\"},{\"label\":\"Sym\",\"numericId\":1206,\"slug\":\"jit-access-sym\",\"nodes\":\"$undefined\"}]}]},{\"label\":\"Automation\",\"numericId\":1430,\"slug\":\"automations\",\"items\":\"$c1\",\"nodes\":[{\"label\":\"Infrastructure as code\",\"numericId\":1370,\"slug\":\"infrastructure-as-code\",\"items\":\"$c3\",\"nodes\":[{\"label\":\"Terraform\",\"numericId\":1210,\"slug\":\"terraform-provider\",\"nodes\":\"$undefined\"},{\"label\":\"Pulumi\",\"numericId\":1211,\"slug\":\"pulumi-provider\",\"nodes\":\"$undefined\"}]},{\"label\":\"macOS and iOS shortcuts\",\"numericId\":1233,\"slug\":\"mac-ios-shortcuts\",\"nodes\":\"$undefined\"}]}]}]},{\"label\":\"Integrations\",\"numericId\":1356,\"items\":[{\"label\":\"Cloud servers\",\"numericId\":\"integrations\",\"slug\":\"cloud-server\",\"items\":[{\"label\":\"AWS Lightsail\",\"numericId\":1128,\"slug\":\"aws-lightsail\"},{\"label\":\"AWS VPC\",\"numericId\":1021,\"slug\":\"install-aws\"},{\"label\":\"Azure App Service\",\"numericId\":1126,\"slug\":\"azure-app-service\"},{\"label\":\"Azure Linux VMs\",\"numericId\":1142,\"slug\":\"cloud-azure-linux\"},{\"label\":\"Azure Windows VMs\",\"numericId\":1143,\"slug\":\"cloud-azure-windows\"},{\"label\":\"Google Compute Engine VMs\",\"numericId\":1147,\"slug\":\"cloud-gce\"},{\"label\":\"Hetzner VMs\",\"numericId\":1150,\"slug\":\"cloud-hetzner\"},{\"label\":\"Oracle Cloud VMs\",\"numericId\":1149,\"slug\":\"cloud-oracle\"}]},{\"label\":\"Containers and virtualization\",\"numericId\":1358,\"slug\":\"containers-and-virtualization\",\"items\":[{\"label\":\"Docker\",\"numericId\":1282,\"slug\":\"docker\"},{\"label\":\"Kubernetes\",\"items\":[{\"label\":\"Kubernetes Operator\",\"numericId\":1236,\"slug\":\"kubernetes-operator\",\"items\":[{\"label\":\"API server proxy\",\"numericId\":1437,\"slug\":\"kubernetes-operator-api-server-proxy\"},{\"label\":\"Egress\",\"numericId\":1438,\"slug\":\"kubernetes-operator-cluster-egress\"},{\"label\":\"Ingress\",\"numericId\":1439,\"slug\":\"kubernetes-operator-cluster-ingress\"},{\"label\":\"Cross cluster\",\"numericId\":1442,\"slug\":\"kubernetes-operator-cross-cluster\"},{\"label\":\"Cloud services\",\"numericId\":1440,\"slug\":\"kubernetes-operator-cloud-services\"},{\"label\":\"Subnet routers and exit nodes\",\"numericId\":1441,\"slug\":\"kubernetes-operator-connector\"},{\"label\":\"App connector\",\"numericId\":1517,\"slug\":\"kubernetes-operator-app-connector\"},{\"label\":\"Recorder nodes\",\"numericId\":1484,\"slug\":\"kubernetes-operator-deploying-tsrecorder\"},{\"label\":\"Session recording\",\"numericId\":1454,\"slug\":\"kubernetes-operator-session-recording\"},{\"label\":\"Operator resource customization\",\"numericId\":1445,\"slug\":\"kubernetes-operator-customization\"},{\"label\":\"Troubleshooting\",\"numericId\":1446,\"slug\":\"kubernetes-operator-troubleshooting\"}]}],\"numericId\":1185,\"slug\":\"kubernetes\"},{\"label\":\"LXC containers\",\"numericId\":1130,\"slug\":\"lxc-unprivileged\"},{\"label\":\"Proxmox\",\"numericId\":1133,\"slug\":\"proxmox\"}]},{\"label\":\"Serverless apps\",\"numericId\":1364,\"slug\":\"serverless\",\"items\":[{\"label\":\"AWS App Runner\",\"numericId\":1127,\"slug\":\"aws-app-runner\"},{\"label\":\"AWS Lambda\",\"numericId\":1113,\"slug\":\"aws-lambda\"},{\"label\":\"Fly.io\",\"numericId\":1132,\"slug\":\"flydotio\"},{\"label\":\"Google Cloud Run\",\"numericId\":1108,\"slug\":\"cloudrun\"},{\"label\":\"Heroku\",\"numericId\":1107,\"slug\":\"heroku\"}]},{\"label\":\"Databases\",\"numericId\":1359,\"slug\":\"database\",\"items\":[{\"label\":\"AWS RDS\",\"numericId\":1141,\"slug\":\"aws-rds\"},{\"label\":\"Crunchy Bridge\",\"numericId\":1231,\"slug\":\"crunchy-bridge\"}]},{\"label\":\"Remote environments\",\"items\":[{\"label\":\"code-server\",\"numericId\":1164,\"slug\":\"codeserver\"},{\"label\":\"Coder\",\"numericId\":1163,\"slug\":\"coder\"},{\"label\":\"CodeSandbox\",\"numericId\":1221,\"slug\":\"codesandbox\"},{\"label\":\"GitHub Codespaces\",\"numericId\":1160,\"slug\":\"github-codespaces\"},{\"label\":\"Gitpod\",\"numericId\":1161,\"slug\":\"gitpod\"},{\"label\":\"OpenVSCode\",\"numericId\":1162,\"slug\":\"openvscode\"}],\"numericId\":1363,\"slug\":\"remote-code\"},{\"label\":\"Developer tools\",\"numericId\":1360,\"slug\":\"developer-tools\",\"items\":[{\"label\":\"Visual Studio Code Extension\",\"numericId\":1265,\"slug\":\"vscode-extension\"},{\"label\":\"Tailscale GitHub Action\",\"numericId\":1276,\"slug\":\"tailscale-github-action\"},{\"label\":\"Tailscale with GitLab CI/CD\",\"numericId\":1287,\"slug\":\"tailscale-gitlab-runner\"},{\"label\":\"Docker Desktop\",\"numericId\":1184,\"slug\":\"docker-desktop\"},{\"label\":\"Grafana\",\"numericId\":1523,\"slug\":\"grafana\"}]},{\"label\":\"Firewalls\",\"numericId\":1361,\"slug\":\"firewall\",\"items\":[{\"label\":\"Overview\",\"numericId\":1181,\"slug\":\"firewalls\"},{\"label\":\"OPNsense\",\"numericId\":1097,\"slug\":\"install-opnsense\"},{\"label\":\"Palo Alto Networks\",\"numericId\":1333,\"slug\":\"firewall-palo-alto-networks\"},{\"label\":\"pfSense\",\"numericId\":1146,\"slug\":\"pfsense\"},{\"label\":\"Firewall mode\",\"numericId\":1294,\"slug\":\"firewall-mode\"}]},{\"label\":\"Web servers\",\"numericId\":1365,\"slug\":\"webserver\",\"items\":[{\"label\":\"Caddy Server\",\"numericId\":1190,\"slug\":\"caddy-certificates\"},{\"label\":\"Traefik Proxy\",\"numericId\":1234,\"slug\":\"traefik-certificates\"}]},{\"label\":\"NAS\",\"numericId\":1307,\"slug\":\"nas\",\"items\":[{\"label\":\"Synology\",\"numericId\":1131,\"slug\":\"synology\"},{\"label\":\"QNAP\",\"numericId\":1273,\"slug\":\"qnap\"},{\"label\":\"TrueNAS SCALE\",\"numericId\":1483,\"slug\":\"truenas-scale\"},{\"label\":\"Unraid\",\"numericId\":1478,\"slug\":\"unraid\"}]}],\"slug\":\"integrations\",\"nodes\":[{\"label\":\"Cloud servers\",\"numericId\":\"integrations\",\"slug\":\"cloud-server\",\"items\":\"$c7\",\"nodes\":[{\"label\":\"AWS Lightsail\",\"numericId\":1128,\"slug\":\"aws-lightsail\",\"nodes\":\"$undefined\"},{\"label\":\"AWS VPC\",\"numericId\":1021,\"slug\":\"install-aws\",\"nodes\":\"$undefined\"},{\"label\":\"Azure App Service\",\"numericId\":1126,\"slug\":\"azure-app-service\",\"nodes\":\"$undefined\"},{\"label\":\"Azure Linux VMs\",\"numericId\":1142,\"slug\":\"cloud-azure-linux\",\"nodes\":\"$undefined\"},{\"label\":\"Azure Windows VMs\",\"numericId\":1143,\"slug\":\"cloud-azure-windows\",\"nodes\":\"$undefined\"},{\"label\":\"Google Compute Engine VMs\",\"numericId\":1147,\"slug\":\"cloud-gce\",\"nodes\":\"$undefined\"},{\"label\":\"Hetzner VMs\",\"numericId\":1150,\"slug\":\"cloud-hetzner\",\"nodes\":\"$undefined\"},{\"label\":\"Oracle Cloud VMs\",\"numericId\":1149,\"slug\":\"cloud-oracle\",\"nodes\":\"$undefined\"}]},{\"label\":\"Containers and virtualization\",\"numericId\":1358,\"slug\":\"containers-and-virtualization\",\"items\":\"$d0\",\"nodes\":[{\"label\":\"Docker\",\"numericId\":1282,\"slug\":\"docker\",\"nodes\":\"$undefined\"},{\"label\":\"Kubernetes\",\"items\":\"$d3\",\"numericId\":1185,\"slug\":\"kubernetes\",\"nodes\":[{\"label\":\"Kubernetes Operator\",\"numericId\":1236,\"slug\":\"kubernetes-operator\",\"items\":\"$d5\",\"nodes\":[{\"label\":\"API server proxy\",\"numericId\":1437,\"slug\":\"kubernetes-operator-api-server-proxy\",\"nodes\":\"$undefined\"},{\"label\":\"Egress\",\"numericId\":1438,\"slug\":\"kubernetes-operator-cluster-egress\",\"nodes\":\"$undefined\"},{\"label\":\"Ingress\",\"numericId\":1439,\"slug\":\"kubernetes-operator-cluster-ingress\",\"nodes\":\"$undefined\"},{\"label\":\"Cross cluster\",\"numericId\":1442,\"slug\":\"kubernetes-operator-cross-cluster\",\"nodes\":\"$undefined\"},{\"label\":\"Cloud services\",\"numericId\":1440,\"slug\":\"kubernetes-operator-cloud-services\",\"nodes\":\"$undefined\"},{\"label\":\"Subnet routers and exit nodes\",\"numericId\":1441,\"slug\":\"kubernetes-operator-connector\",\"nodes\":\"$undefined\"},{\"label\":\"App connector\",\"numericId\":1517,\"slug\":\"kubernetes-operator-app-connector\",\"nodes\":\"$undefined\"},{\"label\":\"Recorder nodes\",\"numericId\":1484,\"slug\":\"kubernetes-operator-deploying-tsrecorder\",\"nodes\":\"$undefined\"},{\"label\":\"Session recording\",\"numericId\":1454,\"slug\":\"kubernetes-operator-session-recording\",\"nodes\":\"$undefined\"},{\"label\":\"Operator resource customization\",\"numericId\":1445,\"slug\":\"kubernetes-operator-customization\",\"nodes\":\"$undefined\"},{\"label\":\"Troubleshooting\",\"numericId\":1446,\"slug\":\"kubernetes-operator-troubleshooting\",\"nodes\":\"$undefined\"}]}]},{\"label\":\"LXC containers\",\"numericId\":1130,\"slug\":\"lxc-unprivileged\",\"nodes\":\"$undefined\"},{\"label\":\"Proxmox\",\"numericId\":1133,\"slug\":\"proxmox\",\"nodes\":\"$undefined\"}]},{\"label\":\"Serverless apps\",\"numericId\":1364,\"slug\":\"serverless\",\"items\":\"$e3\",\"nodes\":[{\"label\":\"AWS App Runner\",\"numericId\":1127,\"slug\":\"aws-app-runner\",\"nodes\":\"$undefined\"},{\"label\":\"AWS Lambda\",\"numericId\":1113,\"slug\":\"aws-lambda\",\"nodes\":\"$undefined\"},{\"label\":\"Fly.io\",\"numericId\":1132,\"slug\":\"flydotio\",\"nodes\":\"$undefined\"},{\"label\":\"Google Cloud Run\",\"numericId\":1108,\"slug\":\"cloudrun\",\"nodes\":\"$undefined\"},{\"label\":\"Heroku\",\"numericId\":1107,\"slug\":\"heroku\",\"nodes\":\"$undefined\"}]},{\"label\":\"Databases\",\"numericId\":1359,\"slug\":\"database\",\"items\":\"$e9\",\"nodes\":[{\"label\":\"AWS RDS\",\"numericId\":1141,\"slug\":\"aws-rds\",\"nodes\":\"$undefined\"},{\"label\":\"Crunchy Bridge\",\"numericId\":1231,\"slug\":\"crunchy-bridge\",\"nodes\":\"$undefined\"}]},{\"label\":\"Remote environments\",\"items\":\"$ec\",\"numericId\":1363,\"slug\":\"remote-code\",\"nodes\":[{\"label\":\"code-server\",\"numericId\":1164,\"slug\":\"codeserver\",\"nodes\":\"$undefined\"},{\"label\":\"Coder\",\"numericId\":1163,\"slug\":\"coder\",\"nodes\":\"$undefined\"},{\"label\":\"CodeSandbox\",\"numericId\":1221,\"slug\":\"codesandbox\",\"nodes\":\"$undefined\"},{\"label\":\"GitHub Codespaces\",\"numericId\":1160,\"slug\":\"github-codespaces\",\"nodes\":\"$undefined\"},{\"label\":\"Gitpod\",\"numericId\":1161,\"slug\":\"gitpod\",\"nodes\":\"$undefined\"},{\"label\":\"OpenVSCode\",\"numericId\":1162,\"slug\":\"openvscode\",\"nodes\":\"$undefined\"}]},{\"label\":\"Developer tools\",\"numericId\":1360,\"slug\":\"developer-tools\",\"items\":\"$f3\",\"nodes\":[{\"label\":\"Visual Studio Code Extension\",\"numericId\":1265,\"slug\":\"vscode-extension\",\"nodes\":\"$undefined\"},{\"label\":\"Tailscale GitHub Action\",\"numericId\":1276,\"slug\":\"tailscale-github-action\",\"nodes\":\"$undefined\"},{\"label\":\"Tailscale with GitLab CI/CD\",\"numericId\":1287,\"slug\":\"tailscale-gitlab-runner\",\"nodes\":\"$undefined\"},{\"label\":\"Docker Desktop\",\"numericId\":1184,\"slug\":\"docker-desktop\",\"nodes\":\"$undefined\"},{\"label\":\"Grafana\",\"numericId\":1523,\"slug\":\"grafana\",\"nodes\":\"$undefined\"}]},{\"label\":\"Firewalls\",\"numericId\":1361,\"slug\":\"firewall\",\"items\":\"$f9\",\"nodes\":[{\"label\":\"Overview\",\"numericId\":1181,\"slug\":\"firewalls\",\"nodes\":\"$undefined\"},{\"label\":\"OPNsense\",\"numericId\":1097,\"slug\":\"install-opnsense\",\"nodes\":\"$undefined\"},{\"label\":\"Palo Alto Networks\",\"numericId\":1333,\"slug\":\"firewall-palo-alto-networks\",\"nodes\":\"$undefined\"},{\"label\":\"pfSense\",\"numericId\":1146,\"slug\":\"pfsense\",\"nodes\":\"$undefined\"},{\"label\":\"Firewall mode\",\"numericId\":1294,\"slug\":\"firewall-mode\",\"nodes\":\"$undefined\"}]},{\"label\":\"Web servers\",\"numericId\":1365,\"slug\":\"webserver\",\"items\":\"$ff\",\"nodes\":[{\"label\":\"Caddy Server\",\"numericId\":1190,\"slug\":\"caddy-certificates\",\"nodes\":\"$undefined\"},{\"label\":\"Traefik Proxy\",\"numericId\":1234,\"slug\":\"traefik-certificates\",\"nodes\":\"$undefined\"}]},{\"label\":\"NAS\",\"numericId\":1307,\"slug\":\"nas\",\"items\":\"$102\",\"nodes\":[{\"label\":\"Synology\",\"numericId\":1131,\"slug\":\"synology\",\"nodes\":\"$undefined\"},{\"label\":\"QNAP\",\"numericId\":1273,\"slug\":\"qnap\",\"nodes\":\"$undefined\"},{\"label\":\"TrueNAS SCALE\",\"numericId\":1483,\"slug\":\"truenas-scale\",\"nodes\":\"$undefined\"},{\"label\":\"Unraid\",\"numericId\":1478,\"slug\":\"unraid\",\"nodes\":\"$undefined\"}]}]},{\"label\":\"FAQ\",\"numericId\":1366,\"slug\":\"faq\",\"nodes\":\"$undefined\"},{\"label\":\"Logging, Streaming, and Events\",\"numericId\":1349,\"slug\":\"log-events\",\"items\":[{\"label\":\"Logging overview\",\"numericId\":1011,\"slug\":\"log-mesh-traffic\"},{\"label\":\"Configuration audit logging\",\"numericId\":1203,\"slug\":\"audit-logging\"},{\"label\":\"Network flow logs\",\"numericId\":1219,\"slug\":\"network-flow-logs\"},{\"label\":\"Log streaming\",\"numericId\":1255,\"slug\":\"log-streaming\"},{\"label\":\"SSH session recording\",\"numericId\":1246,\"slug\":\"tailscale-ssh-session-recording\",\"items\":[{\"label\":\"Send recordings to S3\",\"numericId\":1263,\"slug\":\"session-recording-s3\"},{\"label\":\"Deploy multiple recorder nodes\",\"numericId\":1262,\"slug\":\"multiple-recorder-nodes\"}]},{\"label\":\"Client metrics\",\"numericId\":1482,\"slug\":\"client-metrics\"},{\"label\":\"Webhooks\",\"numericId\":1213,\"slug\":\"webhooks\"}],\"nodes\":[{\"label\":\"Logging overview\",\"numericId\":1011,\"slug\":\"log-mesh-traffic\",\"nodes\":\"$undefined\"},{\"label\":\"Configuration audit logging\",\"numericId\":1203,\"slug\":\"audit-logging\",\"nodes\":\"$undefined\"},{\"label\":\"Network flow logs\",\"numericId\":1219,\"slug\":\"network-flow-logs\",\"nodes\":\"$undefined\"},{\"label\":\"Log streaming\",\"numericId\":1255,\"slug\":\"log-streaming\",\"nodes\":\"$undefined\"},{\"label\":\"SSH session recording\",\"numericId\":1246,\"slug\":\"tailscale-ssh-session-recording\",\"items\":\"$107\",\"nodes\":[{\"label\":\"Send recordings to S3\",\"numericId\":1263,\"slug\":\"session-recording-s3\",\"nodes\":\"$undefined\"},{\"label\":\"Deploy multiple recorder nodes\",\"numericId\":1262,\"slug\":\"multiple-recorder-nodes\",\"nodes\":\"$undefined\"}]},{\"label\":\"Client metrics\",\"numericId\":1482,\"slug\":\"client-metrics\",\"nodes\":\"$undefined\"},{\"label\":\"Webhooks\",\"numericId\":1213,\"slug\":\"webhooks\",\"nodes\":\"$undefined\"}]},{\"label\":\"Manage Your Organization\",\"numericId\":1431,\"slug\":\"manage-account\",\"items\":[{\"label\":\"Contact preferences\",\"numericId\":1224,\"slug\":\"contract-preferences\"},{\"label\":\"Pricing and billing\",\"numericId\":1375,\"slug\":\"pb-lp\",\"items\":[{\"label\":\"Pricing ↗\",\"href\":\"/pricing\"},{\"label\":\"Pricing \u0026 Plans FAQ\",\"numericId\":1251,\"slug\":\"pricing-faq\"},{\"label\":\"Free plans and discounts\",\"numericId\":1154,\"slug\":\"free-plans-discounts\"},{\"label\":\"Modify billing\",\"numericId\":1182,\"slug\":\"billing-information\"},{\"label\":\"Tailscale on Azure Marketplace\",\"numericId\":1220,\"slug\":\"azure-marketplace\"}]},{\"label\":\"Tailnet name\",\"numericId\":1217,\"slug\":\"tailnet-name\"},{\"label\":\"Domain ownership\",\"numericId\":1259,\"slug\":\"domain-ownership\"}],\"nodes\":[{\"label\":\"Contact preferences\",\"numericId\":1224,\"slug\":\"contract-preferences\",\"nodes\":\"$undefined\"},{\"label\":\"Pricing and billing\",\"numericId\":1375,\"slug\":\"pb-lp\",\"items\":\"$10a\",\"nodes\":[{\"label\":\"Pricing ↗\",\"href\":\"/pricing\",\"nodes\":\"$undefined\"},{\"label\":\"Pricing \u0026 Plans FAQ\",\"numericId\":1251,\"slug\":\"pricing-faq\",\"nodes\":\"$undefined\"},{\"label\":\"Free plans and discounts\",\"numericId\":1154,\"slug\":\"free-plans-discounts\",\"nodes\":\"$undefined\"},{\"label\":\"Modify billing\",\"numericId\":1182,\"slug\":\"billing-information\",\"nodes\":\"$undefined\"},{\"label\":\"Tailscale on Azure Marketplace\",\"numericId\":1220,\"slug\":\"azure-marketplace\",\"nodes\":\"$undefined\"}]},{\"label\":\"Tailnet name\",\"numericId\":1217,\"slug\":\"tailnet-name\",\"nodes\":\"$undefined\"},{\"label\":\"Domain ownership\",\"numericId\":1259,\"slug\":\"domain-ownership\",\"nodes\":\"$undefined\"}]},{\"label\":\"Reference\",\"numericId\":1367,\"slug\":\"reference\",\"items\":[{\"label\":\"ACL syntax\",\"numericId\":1337,\"slug\":\"acl-syntax\",\"items\":[{\"label\":\"Grants\",\"numericId\":1324,\"slug\":\"acl-grants\"},{\"label\":\"IP sets\",\"numericId\":1387,\"slug\":\"ipsets\"},{\"label\":\"Via in grants\",\"numericId\":1378,\"slug\":\"via\"}]},{\"label\":\"ACL samples\",\"numericId\":1192,\"slug\":\"acl-samples\"},{\"label\":\"Grant samples\",\"numericId\":1458,\"slug\":\"grant-samples\"},{\"label\":\"CLI\",\"numericId\":1080,\"slug\":\"cli\",\"items\":[{\"label\":\"tailscale funnel\",\"numericId\":1311,\"slug\":\"tailscale-funnel\"},{\"label\":\"tailscale lock\",\"numericId\":1243,\"slug\":\"tailscale-lock\"},{\"label\":\"tailscale serve\",\"numericId\":1242,\"slug\":\"tailscale-serve\"},{\"label\":\"tailscale up\",\"numericId\":1241,\"slug\":\"tailscale-up\"},{\"label\":\"tailscaled\",\"numericId\":1278,\"slug\":\"tailscaled\"}]},{\"label\":\"API\",\"numericId\":1101,\"slug\":\"api\",\"items\":[{\"label\":\"OAuth clients\",\"numericId\":1215,\"slug\":\"oauth-clients\"},{\"label\":\"tsnet for Go programs\",\"numericId\":1244,\"slug\":\"tsnet\",\"items\":[{\"label\":\"Hello tsnet\",\"numericId\":1521,\"slug\":\"hello-tsnet\"},{\"label\":\"tsnet.Server\",\"numericId\":1522,\"slug\":\"tsnet-server\"}]}]},{\"label\":\"Key prefixes\",\"numericId\":1277,\"slug\":\"key-prefixes\"},{\"label\":\"Production best practices\",\"numericId\":1300,\"slug\":\"production-best-practices\",\"items\":[{\"label\":\"Deployment checklist\",\"numericId\":1344,\"slug\":\"deployment-checklist\"},{\"label\":\"Security best practices\",\"items\":[{\"label\":\"Key and secret management\",\"numericId\":1252,\"slug\":\"key-secret-management\"},{\"label\":\"Secret scanning\",\"numericId\":1301,\"slug\":\"secret-scanning\"},{\"label\":\"Admin with passkey\",\"numericId\":1341,\"slug\":\"tailnet-passkey-admin\"}],\"numericId\":1196,\"slug\":\"security-hardening\"},{\"label\":\"Performance best practices\",\"numericId\":1320,\"slug\":\"performance-best-practices\"},{\"label\":\"AWS reference architecture\",\"numericId\":1296,\"slug\":\"aws-reference-architecture\"},{\"label\":\"Azure reference architecture\",\"numericId\":1314,\"slug\":\"azure-reference-architecture\"},{\"label\":\"GCP reference architecture\",\"numericId\":1510,\"slug\":\"gcp-reference-architecture\"}]},{\"label\":\"Shared responsibility\",\"numericId\":1212,\"slug\":\"shared-responsibility\"},{\"label\":\"Technical overviews\",\"numericId\":1376,\"slug\":\"tech-overviews\",\"items\":[{\"label\":\"About WireGuard\",\"numericId\":1035,\"slug\":\"wireguard\"},{\"label\":\"Tailscale encryption\",\"numericId\":1504,\"slug\":\"encryption\"},{\"label\":\"Control and data planes\",\"numericId\":1508,\"slug\":\"control-data-planes\"},{\"label\":\"Direct vs relayed connections\",\"numericId\":1257,\"slug\":\"connection-types\"},{\"label\":\"Device connectivity\",\"numericId\":1411,\"slug\":\"device-connectivity\"},{\"label\":\"How Tailscale assigns IP addresses\",\"numericId\":1033,\"slug\":\"ip-and-dns-addresses\"},{\"label\":\"Tailscale and the OSI model\",\"numericId\":1456,\"slug\":\"osi\"},{\"label\":\"Smaller binaries for embedded devices\",\"numericId\":1207,\"slug\":\"small-tailscale\"},{\"label\":\"Kernel vs. netstack subnet routing \u0026 exit nodes\",\"numericId\":1177,\"slug\":\"kernel-vs-userspace-routers\"},{\"label\":\"Userspace networking mode\",\"numericId\":1112,\"slug\":\"userspace-networking\"},{\"label\":\"Node keys\",\"numericId\":1010,\"slug\":\"node-keys\"},{\"label\":\"Protect SSH Servers\",\"numericId\":1009,\"slug\":\"protect-ssh-servers\"},{\"label\":\"Tailnet lock white paper\",\"numericId\":1230,\"slug\":\"tailnet-lock-whitepaper\"},{\"label\":\"DERP servers\",\"numericId\":1232,\"slug\":\"derp-servers\"},{\"label\":\"Zero Trust Networking (ZTN)\",\"numericId\":1123,\"slug\":\"zero-trust\"},{\"label\":\"IPv4 vs. IPv6 FAQ\",\"numericId\":1134,\"slug\":\"ipv6-faq\"},{\"label\":\"Tailscale ping types\",\"numericId\":1465,\"slug\":\"ping-types\"}]},{\"label\":\"Terminology and concepts\",\"numericId\":1155,\"slug\":\"terminology-and-concepts\"},{\"label\":\"GitHub ↗\",\"href\":\"https://github.com/tailscale/tailscale\"}],\"nodes\":[{\"label\":\"ACL syntax\",\"numericId\":1337,\"slug\":\"acl-syntax\",\"items\":\"$110\",\"nodes\":[{\"label\":\"Grants\",\"numericId\":1324,\"slug\":\"acl-grants\",\"nodes\":\"$undefined\"},{\"label\":\"IP sets\",\"numericId\":1387,\"slug\":\"ipsets\",\"nodes\":\"$undefined\"},{\"label\":\"Via in grants\",\"numericId\":1378,\"slug\":\"via\",\"nodes\":\"$undefined\"}]},{\"label\":\"ACL samples\",\"numericId\":1192,\"slug\":\"acl-samples\",\"nodes\":\"$undefined\"},{\"label\":\"Grant samples\",\"numericId\":1458,\"slug\":\"grant-samples\",\"nodes\":\"$undefined\"},{\"label\":\"CLI\",\"numericId\":1080,\"slug\":\"cli\",\"items\":\"$114\",\"nodes\":[{\"label\":\"tailscale funnel\",\"numericId\":1311,\"slug\":\"tailscale-funnel\",\"nodes\":\"$undefined\"},{\"label\":\"tailscale lock\",\"numericId\":1243,\"slug\":\"tailscale-lock\",\"nodes\":\"$undefined\"},{\"label\":\"tailscale serve\",\"numericId\":1242,\"slug\":\"tailscale-serve\",\"nodes\":\"$undefined\"},{\"label\":\"tailscale up\",\"numericId\":1241,\"slug\":\"tailscale-up\",\"nodes\":\"$undefined\"},{\"label\":\"tailscaled\",\"numericId\":1278,\"slug\":\"tailscaled\",\"nodes\":\"$undefined\"}]},{\"label\":\"API\",\"numericId\":1101,\"slug\":\"api\",\"items\":\"$11a\",\"nodes\":[{\"label\":\"OAuth clients\",\"numericId\":1215,\"slug\":\"oauth-clients\",\"nodes\":\"$undefined\"},{\"label\":\"tsnet for Go programs\",\"numericId\":1244,\"slug\":\"tsnet\",\"items\":\"$11d\",\"nodes\":[{\"label\":\"Hello tsnet\",\"numericId\":1521,\"slug\":\"hello-tsnet\",\"nodes\":\"$undefined\"},{\"label\":\"tsnet.Server\",\"numericId\":1522,\"slug\":\"tsnet-server\",\"nodes\":\"$undefined\"}]}]},{\"label\":\"Key prefixes\",\"numericId\":1277,\"slug\":\"key-prefixes\",\"nodes\":\"$undefined\"},{\"label\":\"Production best practices\",\"numericId\":1300,\"slug\":\"production-best-practices\",\"items\":\"$120\",\"nodes\":[{\"label\":\"Deployment checklist\",\"numericId\":1344,\"slug\":\"deployment-checklist\",\"nodes\":\"$undefined\"},{\"label\":\"Security best practices\",\"items\":\"$123\",\"numericId\":1196,\"slug\":\"security-hardening\",\"nodes\":[{\"label\":\"Key and secret management\",\"numericId\":1252,\"slug\":\"key-secret-management\",\"nodes\":\"$undefined\"},{\"label\":\"Secret scanning\",\"numericId\":1301,\"slug\":\"secret-scanning\",\"nodes\":\"$undefined\"},{\"label\":\"Admin with passkey\",\"numericId\":1341,\"slug\":\"tailnet-passkey-admin\",\"nodes\":\"$undefined\"}]},{\"label\":\"Performance best practices\",\"numericId\":1320,\"slug\":\"performance-best-practices\",\"nodes\":\"$undefined\"},{\"label\":\"AWS reference architecture\",\"numericId\":1296,\"slug\":\"aws-reference-architecture\",\"nodes\":\"$undefined\"},{\"label\":\"Azure reference architecture\",\"numericId\":1314,\"slug\":\"azure-reference-architecture\",\"nodes\":\"$undefined\"},{\"label\":\"GCP reference architecture\",\"numericId\":1510,\"slug\":\"gcp-reference-architecture\",\"nodes\":\"$undefined\"}]},{\"label\":\"Shared responsibility\",\"numericId\":1212,\"slug\":\"shared-responsibility\",\"nodes\":\"$undefined\"},{\"label\":\"Technical overviews\",\"numericId\":1376,\"slug\":\"tech-overviews\",\"items\":\"$12b\",\"nodes\":[{\"label\":\"About WireGuard\",\"numericId\":1035,\"slug\":\"wireguard\",\"nodes\":\"$undefined\"},{\"label\":\"Tailscale encryption\",\"numericId\":1504,\"slug\":\"encryption\",\"nodes\":\"$undefined\"},{\"label\":\"Control and data planes\",\"numericId\":1508,\"slug\":\"control-data-planes\",\"nodes\":\"$undefined\"},{\"label\":\"Direct vs relayed connections\",\"numericId\":1257,\"slug\":\"connection-types\",\"nodes\":\"$undefined\"},{\"label\":\"Device connectivity\",\"numericId\":1411,\"slug\":\"device-connectivity\",\"nodes\":\"$undefined\"},{\"label\":\"How Tailscale assigns IP addresses\",\"numericId\":1033,\"slug\":\"ip-and-dns-addresses\",\"nodes\":\"$undefined\"},{\"label\":\"Tailscale and the OSI model\",\"numericId\":1456,\"slug\":\"osi\",\"nodes\":\"$undefined\"},{\"label\":\"Smaller binaries for embedded devices\",\"numericId\":1207,\"slug\":\"small-tailscale\",\"nodes\":\"$undefined\"},{\"label\":\"Kernel vs. netstack subnet routing \u0026 exit nodes\",\"numericId\":1177,\"slug\":\"kernel-vs-userspace-routers\",\"nodes\":\"$undefined\"},{\"label\":\"Userspace networking mode\",\"numericId\":1112,\"slug\":\"userspace-networking\",\"nodes\":\"$undefined\"},{\"label\":\"Node keys\",\"numericId\":1010,\"slug\":\"node-keys\",\"nodes\":\"$undefined\"},{\"label\":\"Protect SSH Servers\",\"numericId\":1009,\"slug\":\"protect-ssh-servers\",\"nodes\":\"$undefined\"},{\"label\":\"Tailnet lock white paper\",\"numericId\":1230,\"slug\":\"tailnet-lock-whitepaper\",\"nodes\":\"$undefined\"},{\"label\":\"DERP servers\",\"numericId\":1232,\"slug\":\"derp-servers\",\"nodes\":\"$undefined\"},{\"label\":\"Zero Trust Networking (ZTN)\",\"numericId\":1123,\"slug\":\"zero-trust\",\"nodes\":\"$undefined\"},{\"label\":\"IPv4 vs. IPv6 FAQ\",\"numericId\":1134,\"slug\":\"ipv6-faq\",\"nodes\":\"$undefined\"},{\"label\":\"Tailscale ping types\",\"numericId\":1465,\"slug\":\"ping-types\",\"nodes\":\"$undefined\"}]},{\"label\":\"Terminology and concepts\",\"numericId\":1155,\"slug\":\"terminology-and-concepts\",\"nodes\":\"$undefined\"},{\"label\":\"GitHub ↗\",\"href\":\"https://github.com/tailscale/tailscale\",\"nodes\":\"$undefined\"}]},{\"label\":\"Get Support\",\"numericId\":1432,\"slug\":\"get-support\",\"items\":[{\"label\":\"Troubleshooting\",\"numericId\":1023,\"slug\":\"troubleshooting\",\"items\":[{\"label\":\"Troubleshoot device connectivity\",\"numericId\":1463,\"slug\":\"troubleshoot-connectivity\"}]},{\"label\":\"Support options\",\"numericId\":1250,\"slug\":\"support-options\"},{\"label\":\"Contact support ↗\",\"href\":\"/contact/support\"},{\"label\":\"Generate a bug report\",\"numericId\":1227,\"slug\":\"bug-report\"}],\"nodes\":[{\"label\":\"Troubleshooting\",\"numericId\":1023,\"slug\":\"troubleshooting\",\"items\":\"$13d\",\"nodes\":[{\"label\":\"Troubleshoot device connectivity\",\"numericId\":1463,\"slug\":\"troubleshoot-connectivity\",\"nodes\":\"$undefined\"}]},{\"label\":\"Support options\",\"numericId\":1250,\"slug\":\"support-options\",\"nodes\":\"$undefined\"},{\"label\":\"Contact support ↗\",\"href\":\"/contact/support\",\"nodes\":\"$undefined\"},{\"label\":\"Generate a bug report\",\"numericId\":1227,\"slug\":\"bug-report\",\"nodes\":\"$undefined\"}]},{\"label\":\"Resources\",\"numericId\":1368,\"slug\":\"resources\",\"items\":[{\"label\":\"Changelog ↗\",\"href\":\"/changelog\"},{\"label\":\"Comparisons ↗\",\"href\":\"/compare\"},{\"label\":\"Release stages\",\"numericId\":1167,\"slug\":\"release-stages\"},{\"label\":\"Security ↗\",\"href\":\"/security\"},{\"label\":\"Tailscale Community Projects\",\"numericId\":1531,\"slug\":\"community-projects\"},{\"label\":\"Versions\",\"numericId\":1168,\"slug\":\"versions\",\"items\":[{\"label\":\"Unstable builds\",\"numericId\":1083,\"slug\":\"install-unstable\"}]},{\"label\":\"Use cases\",\"numericId\":1377,\"slug\":\"use-cases\"},{\"label\":\"Invite only features\",\"numericId\":1222,\"slug\":\"invite-only-feature\"}],\"nodes\":[{\"label\":\"Changelog ↗\",\"href\":\"/changelog\",\"nodes\":\"$undefined\"},{\"label\":\"Comparisons ↗\",\"href\":\"/compare\",\"nodes\":\"$undefined\"},{\"label\":\"Release stages\",\"numericId\":1167,\"slug\":\"release-stages\",\"nodes\":\"$undefined\"},{\"label\":\"Security ↗\",\"href\":\"/security\",\"nodes\":\"$undefined\"},{\"label\":\"Tailscale Community Projects\",\"numericId\":1531,\"slug\":\"community-projects\",\"nodes\":\"$undefined\"},{\"label\":\"Versions\",\"numericId\":1168,\"slug\":\"versions\",\"items\":\"$13f\",\"nodes\":[{\"label\":\"Unstable builds\",\"numericId\":1083,\"slug\":\"install-unstable\",\"nodes\":\"$undefined\"}]},{\"label\":\"Use cases\",\"numericId\":1377,\"slug\":\"use-cases\",\"nodes\":\"$undefined\"},{\"label\":\"Invite only features\",\"numericId\":1222,\"slug\":\"invite-only-feature\",\"nodes\":\"$undefined\"}]}]}]}],[\"$\",\"div\",null,{\"className\":\"relative pb-6 md:hidden\",\"children\":[\"$\",\"$L141\",null,{\"routeParams\":\"$142\",\"config\":\"$143\"}]}]]}],[\"$\",\"div\",null,{\"className\":\"col-span-10 mb-8 md:col-span-7 xl:col-span-6\",\"children\":[\"$\",\"div\",null,{\"className\":\"max-w-3xl xl:mx-auto\",\"children\":[[\"$\",\"div\",null,{\"className\":\"pb-8\",\"children\":[\"$\",\"$2ef\",null,{\"children\":[\"$\",\"$L2f0\",null,{\"initialQuery\":\"$undefined\"}]}]}],[\"$\",\"article\",null,{\"id\":\"main-content\",\"className\":\"prism markdown-content js-docHighlight\",\"children\":[[\"$\",\"header\",null,{\"className\":\"mb-2 hidden md:flex\",\"children\":[[\"$\",\"script\",null,{\"type\":\"application/ld+json\",\"dangerouslySetInnerHTML\":{\"__html\":\"{\\\"@context\\\":\\\"https://schema.org\\\",\\\"@type\\\":\\\"BreadcrumbList\\\",\\\"itemListElement\\\":[{\\\"@type\\\":\\\"ListItem\\\",\\\"position\\\":1,\\\"name\\\":\\\"Docs\\\",\\\"item\\\":\\\"/kb\\\"},{\\\"@type\\\":\\\"ListItem\\\",\\\"position\\\":2,\\\"name\\\":\\\"Reference\\\",\\\"item\\\":\\\"/kb/1367/reference\\\"},{\\\"@type\\\":\\\"ListItem\\\",\\\"position\\\":3,\\\"name\\\":\\\"CLI\\\",\\\"item\\\":\\\"/kb/1080/cli\\\"}]}\"}}],[\"$\",\"nav\",null,{\"className\":\"flex min-w-0 items-center gap-2 whitespace-nowrap text-sm font-medium\",\"children\":[[\"$\",\"$2f1\",\"/kb\",{\"children\":[[\"$\",\"$L16\",null,{\"className\":\"transition-color text-gray-600 hover:text-gray-800\",\"href\":\"/kb\",\"children\":\"Docs\"}],[\"$\",\"span\",null,{\"className\":\"select-none text-gray-500\",\"children\":\"›\"}]]}],[\"$\",\"$2f1\",\"/kb/1367/reference\",{\"children\":[[\"$\",\"$L16\",null,{\"className\":\"transition-color text-gray-600 hover:text-gray-800\",\"href\":\"/kb/1367/reference\",\"children\":\"Reference\"}],[\"$\",\"span\",null,{\"className\":\"select-none text-gray-500\",\"children\":\"›\"}]]}],[\"$\",\"span\",null,{\"className\":\"text-gray-800\",\"children\":\"CLI\"}]]}]]}],[\"$\",\"h1\",null,{\"className\":\"mb-4 text-4xl font-medium tracking-tight\",\"children\":\"Tailscale CLI\"}],[\"$\",\"$L2f2\",null,{\"fallback\":[\"$\",\"div\",null,{\"className\":\"max-w-xl rounded-lg border p-6 lg:p-8\",\"children\":[[\"$\",\"h4\",null,{\"className\":\"mb-1 text-lg font-semibold tracking-tight\",\"children\":\"Sorry, an error occurred\"}],[\"$\",\"div\",null,{\"className\":\"ts-prose\",\"children\":[\"$\",\"p\",null,{\"children\":[\"There was an error while rendering the content for this page. \",[\"$\",\"span\",null,{\"className\":\"whitespace-nowrap\",\"children\":\"Please try again\"}],\" later, or\",\" \",[\"$\",\"$L16\",null,{\"href\":\"/contact/support\",\"className\":\"link\",\"children\":\"contact support\"}],\" \",\"for help.\"]}]}]]}],\"children\":[\"$\",\"div\",null,{\"className\":\"ts-prose\",\"children\":[\"$\",\"$2ef\",null,{\"children\":[[\"$\",\"p\",null,{\"children\":\"The Tailscale client includes a built-in command-line interface (CLI) you can use to manage and troubleshoot your device within your Tailscale network (known as a tailnet).\"}],\"\\n\",[\"$\",\"div\",null,{\"className\":\"note border-grey-200 relative mt-4 rounded border border-solid pb-2 pl-9 pr-3 pt-3 text-base leading-normal tracking-tight md:text-sm\",\"children\":[[\"$\",\"span\",null,{\"className\":\"absolute left-3 top-3 inline-block h-[18px] w-[18px]\",\"children\":[\"$\",\"svg\",null,{\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":\"18px\",\"height\":\"18px\",\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"children\":[[\"$\",\"circle\",null,{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"}],[\"$\",\"line\",null,{\"x1\":\"12\",\"y1\":\"16\",\"x2\":\"12\",\"y2\":\"12\"}],[\"$\",\"line\",null,{\"x1\":\"12\",\"y1\":\"8\",\"x2\":\"12.01\",\"y2\":\"8\"}]]}]}],[\"The Tailscale CLI\",\" \",\"is\",\" available for \",[\"$\",\"$L16\",null,{\"href\":\"/pricing\",\"className\":\"!font-medium !text-blue-500 underline decoration-blue-50 underline-offset-4 hover:!text-blue-700 hover:!decoration-blue-500 focus-visible:no-underline\",\"children\":\"all plans\"}],\".\"]]}],\"\\n\",[\"$\",\"$L2f3\",null,{\"id\":\"using-the-tailscale-cli\",\"children\":\"Using the Tailscale CLI\",\"level\":2}],\"\\n\",[\"$\",\"p\",null,{\"children\":\"The location of the CLI varies depending on your platform:\"}],\"\\n\",[\"$\",\"$L2f4\",null,{\"children\":[[\"$\",\"div\",null,{\"className\":\"font-base mr-1 cursor-pointer bg-none transition-colors aria-selected:cursor-default aria-selected:border-blue-500 aria-selected:bg-blue-500 aria-selected:text-white hover:[\u0026:not([aria-selected])]:border-gray-100\",\"role\":\"tabpanel\",\"data-tab-id\":\"Linux\",\"children\":[[\"$\",\"p\",null,{\"children\":[\"On Linux, the CLI is your primary interface to Tailscale. The \",[\"$\",\"code\",null,{\"children\":\"tailscale\"}],\" binary is likely already in your \",[\"$\",\"code\",null,{\"children\":\"$$PATH\"}],\", so you can run commands with:\"]}],[\"$\",\"div\",null,{\"className\":\"group relative overflow-hidden\",\"children\":[[\"$\",\"div\",null,{\"className\":\"absolute right-[5px] top-[21px] flex h-10 w-10 items-center justify-center rounded bg-grey-3 text-black opacity-0 transition-opacity duration-200 group-hover:opacity-100\",\"children\":[\"$\",\"$L2f5\",null,{\"text\":\"tailscale \u003ccommand\u003e\\n\"}]}],[\"$\",\"pre\",null,{\"className\":\"refractor language-shell\",\"children\":[\"$\",\"code\",null,{\"className\":\"language-shell\",\"children\":[\"tailscale \",[\"$\",\"span\",\"fract-0-1\",{\"className\":\"token operator\",\"children\":[\"\u003c\"]}],\"command\",[\"$\",\"span\",\"fract-0-3\",{\"className\":\"token operator\",\"children\":[\"\u003e\"]}],\"\\n\"]}]}]]}]]}],[\"$\",\"div\",null,{\"className\":\"font-base mr-1 cursor-pointer bg-none transition-colors aria-selected:cursor-default aria-selected:border-blue-500 aria-selected:bg-blue-500 aria-selected:text-white hover:[\u0026:not([aria-selected])]:border-gray-100\",\"role\":\"tabpanel\",\"data-tab-id\":\"macOS\",\"children\":[[\"$\",\"p\",null,{\"children\":\"If you use the Standalone variant of the macOS client, you can install the CLI integration from the client settings. This feature requires macOS version 13.0 or later.\"}],[\"$\",\"ol\",null,{\"children\":[\"\\n\",[\"$\",\"li\",null,{\"children\":[\"From the Tailscale client, select \",[\"$\",\"strong\",null,{\"children\":\"Settings\"}],\".\"]}],\"\\n\",[\"$\",\"li\",null,{\"children\":[\"Locate CLI integration section, then select \",[\"$\",\"strong\",null,{\"children\":\"Show me how\"}],\".\"]}],\"\\n\",[\"$\",\"li\",null,{\"children\":[\"Select \",[\"$\",\"strong\",null,{\"children\":\"Install Now\"}],\" and provide the macOS administrator password.\"]}],\"\\n\"]}],[\"$\",\"p\",null,{\"children\":[\"This installs a \",[\"$\",\"code\",null,{\"children\":\"tailscale\"}],\" CLI launcher to \",[\"$\",\"code\",null,{\"children\":\"/usr/local/bin/tailscale\"}],\", letting you type \",[\"$\",\"code\",null,{\"children\":\"tailscale\"}],\" in the Terminal, without specifying the full path.\"]}],[\"$\",\"div\",null,{\"className\":\"note border-grey-200 relative mt-4 rounded border border-solid pb-2 pl-9 pr-3 pt-3 text-base leading-normal tracking-tight md:text-sm\",\"children\":[[\"$\",\"span\",null,{\"className\":\"absolute left-3 top-3 inline-block h-[18px] w-[18px]\",\"children\":[\"$\",\"svg\",null,{\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":\"18px\",\"height\":\"18px\",\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"children\":[[\"$\",\"circle\",null,{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"}],[\"$\",\"line\",null,{\"x1\":\"12\",\"y1\":\"16\",\"x2\":\"12\",\"y2\":\"12\"}],[\"$\",\"line\",null,{\"x1\":\"12\",\"y1\":\"8\",\"x2\":\"12.01\",\"y2\":\"8\"}]]}]}],[[\"$\",\"p\",null,{\"children\":\"If you installed the macOS client through the App Store, the CLI is bundled inside the Tailscale app. Run commands with:\"}],[\"$\",\"div\",null,{\"className\":\"group relative overflow-hidden\",\"children\":[[\"$\",\"div\",null,{\"className\":\"absolute right-[5px] top-[21px] flex h-10 w-10 items-center justify-center rounded bg-grey-3 text-black opacity-0 transition-opacity duration-200 group-hover:opacity-100\",\"children\":[\"$\",\"$L2f5\",null,{\"text\":\"/Applications/Tailscale.app/Contents/MacOS/Tailscale \u003ccommand\u003e\\n\"}]}],[\"$\",\"pre\",null,{\"className\":\"refractor language-shell\",\"children\":[\"$\",\"code\",null,{\"className\":\"language-shell\",\"children\":[\"/Applications/Tailscale.app/Contents/MacOS/Tailscale \",[\"$\",\"span\",\"fract-0-1\",{\"className\":\"token operator\",\"children\":[\"\u003c\"]}],\"command\",[\"$\",\"span\",\"fract-0-3\",{\"className\":\"token operator\",\"children\":[\"\u003e\"]}],\"\\n\"]}]}]]}],[\"$\",\"p\",null,{\"children\":[\"If you frequently access the Tailscale CLI, you might find it convenient to add an alias to your \",[\"$\",\"code\",null,{\"children\":\".bashrc\"}],\", \",[\"$\",\"code\",null,{\"children\":\".zshrc\"}],\", or shell config to make it easier.\"]}],[\"$\",\"div\",null,{\"className\":\"group relative overflow-hidden\",\"children\":[[\"$\",\"div\",null,{\"className\":\"absolute right-[5px] top-[21px] flex h-10 w-10 items-center justify-center rounded bg-grey-3 text-black opacity-0 transition-opacity duration-200 group-hover:opacity-100\",\"children\":[\"$\",\"$L2f5\",null,{\"text\":\"alias tailscale=\\\"/Applications/Tailscale.app/Contents/MacOS/Tailscale\\\"\\n\"}]}],[\"$\",\"pre\",null,{\"className\":\"refractor language-shell\",\"children\":[\"$\",\"code\",null,{\"className\":\"language-shell\",\"children\":[[\"$\",\"span\",\"fract-0-0\",{\"className\":\"token builtin class-name\",\"children\":[\"alias\"]}],\" \",[\"$\",\"span\",\"fract-0-2\",{\"className\":\"token assign-left variable\",\"children\":[\"tailscale\"]}],[\"$\",\"span\",\"fract-0-3\",{\"className\":\"token operator\",\"children\":[\"=\"]}],[\"$\",\"span\",\"fract-0-4\",{\"className\":\"token string\",\"children\":[\"\\\"/Applications/Tailscale.app/Contents/MacOS/Tailscale\\\"\"]}],\"\\n\"]}]}]]}]]]}],[\"$\",\"div\",null,{\"className\":\"note border-grey-200 relative mt-4 rounded border border-solid pb-2 pl-9 pr-3 pt-3 text-base leading-normal tracking-tight md:text-sm\",\"children\":[[\"$\",\"span\",null,{\"className\":\"absolute left-3 top-3 inline-block h-[18px] w-[18px]\",\"children\":[\"$\",\"svg\",null,{\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":\"18px\",\"height\":\"18px\",\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"children\":[[\"$\",\"circle\",null,{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"}],[\"$\",\"line\",null,{\"x1\":\"12\",\"y1\":\"16\",\"x2\":\"12\",\"y2\":\"12\"}],[\"$\",\"line\",null,{\"x1\":\"12\",\"y1\":\"8\",\"x2\":\"12.01\",\"y2\":\"8\"}]]}]}],[[\"$\",\"p\",null,{\"children\":[\"Tailscale for macOS includes its CLI within the application executable. When you launch the Tailscale executable, it checks for specific environment variables (like \",[\"$\",\"code\",null,{\"children\":\"SHLVL\"}],\", \",[\"$\",\"code\",null,{\"children\":\"TERM\"}],\", \",[\"$\",\"code\",null,{\"children\":\"TERM_PROGRAM\"}],\", and \",[\"$\",\"code\",null,{\"children\":\"PS1\"}],\") to decide whether to launch as a macOS app with a windowed interface or as a CLI tool.\"]}],[\"$\",\"p\",null,{\"children\":[\"If you're using the Tailscale CLI in a script (for instance, to parse the output of \",[\"$\",\"code\",null,{\"children\":\"tailscale status\"}],\"), ensure you set the correct environment variables. If your script accidentally opens the macOS app version of Tailscale, you can force your script to run Tailscale as a CLI (instead of the macOS app) by setting the environment variable \",[\"$\",\"code\",null,{\"children\":\"TAILSCALE_BE_CLI=1\"}],\".\"]}]]]}]]}],[\"$\",\"div\",null,{\"className\":\"font-base mr-1 cursor-pointer bg-none transition-colors aria-selected:cursor-default aria-selected:border-blue-500 aria-selected:bg-blue-500 aria-selected:text-white hover:[\u0026:not([aria-selected])]:border-gray-100\",\"role\":\"tabpanel\",\"data-tab-id\":\"Windows\",\"children\":[[\"$\",\"p\",null,{\"children\":[\"On Windows, you can access the CLI by executing the \",[\"$\",\"code\",null,{\"children\":\".exe\"}],\" from the Command Prompt.\"]}],[\"$\",\"div\",null,{\"className\":\"group relative overflow-hidden\",\"children\":[[\"$\",\"div\",null,{\"className\":\"absolute right-[5px] top-[21px] flex h-10 w-10 items-center justify-center rounded bg-grey-3 text-black opacity-0 transition-opacity duration-200 group-hover:opacity-100\",\"children\":[\"$\",\"$L2f5\",null,{\"text\":\"tailscale \u003ccommand\u003e\\n\"}]}],[\"$\",\"pre\",null,{\"className\":\"refractor language-powershell\",\"children\":[\"$\",\"code\",null,{\"className\":\"language-powershell\",\"children\":[\"tailscale \u003ccommand\u003e\\n\"]}]}]]}]]}]]}],\"\\n\",[\"$\",\"p\",null,{\"children\":\"There is no CLI support for iOS and Android.\"}],\"\\n\",[\"$\",\"$L2f3\",null,{\"id\":\"tab-completion\",\"children\":\"Tab completion\",\"level\":3}],\"\\n\",[\"$\",\"p\",null,{\"children\":[\"The Tailscale CLI supports tab-completion for commands, flags, and arguments. You can configure tab-completion with the \",[\"$\",\"a\",null,{\"href\":\"#completion\",\"children\":[[\"$\",\"code\",null,{\"children\":\"completion\"}],\" command\"]}],\".\"]}],\"\\n\",[\"$\",\"div\",null,{\"className\":\"group relative overflow-hidden\",\"children\":[[\"$\",\"div\",null,{\"className\":\"absolute right-[5px] top-[21px] flex h-10 w-10 items-center justify-center rounded bg-grey-3 text-black opacity-0 transition-opacity duration-200 group-hover:opacity-100\",\"children\":[\"$\",\"$L2f5\",null,{\"text\":\"tailscale completion \u003cshell\u003e [--flags] [--descs]\\n\"}]}],[\"$\",\"pre\",null,{\"className\":\"refractor language-shell\",\"children\":[\"$\",\"code\",null,{\"className\":\"language-shell\",\"children\":[\"tailscale completion \",[\"$\",\"span\",\"fract-0-1\",{\"className\":\"token operator\",\"children\":[\"\u003c\"]}],\"shell\",[\"$\",\"span\",\"fract-0-3\",{\"className\":\"token operator\",\"children\":[\"\u003e\"]}],\" \",[\"$\",\"span\",\"fract-0-5\",{\"className\":\"token punctuation\",\"children\":[\"[\"]}],\"--flags\",[\"$\",\"span\",\"fract-0-7\",{\"className\":\"token punctuation\",\"children\":[\"]\"]}],\" \",[\"$\",\"span\",\"fract-0-9\",{\"className\":\"token punctuation\",\"children\":[\"[\"]}],\"--descs\",[\"$\",\"span\",\"fract-0-11\",{\"className\":\"token punctuation\",\"children\":[\"]\"]}],\"\\n\"]}]}]]}],\"\\n\",[\"$\",\"p\",null,{\"children\":\"Select your shell, then follow the instructions to load Tailscale CLI completions.\"}],\"\\n\",[\"$\",\"$L2f4\",null,{\"children\":[[\"$\",\"div\",null,{\"className\":\"font-base mr-1 cursor-pointer bg-none transition-colors aria-selected:cursor-default aria-selected:border-blue-500 aria-selected:bg-blue-500 aria-selected:text-white hover:[\u0026:not([aria-selected])]:border-gray-100\",\"role\":\"tabpanel\",\"data-tab-id\":\"Bash\",\"children\":[[\"$\",\"p\",null,{\"children\":\"To load tab-completions for Bash, run the following command.\"}],[\"$\",\"div\",null,{\"className\":\"group relative overflow-hidden\",\"children\":[[\"$\",\"div\",null,{\"className\":\"absolute right-[5px] top-[21px] flex h-10 w-10 items-center justify-center rounded bg-grey-3 text-black opacity-0 transition-opacity duration-200 group-hover:opacity-100\",\"children\":[\"$\",\"$L2f5\",null,{\"text\":\"source \u003c(tailscale completion bash)\\n\"}]}],[\"$\",\"pre\",null,{\"className\":\"refractor language-shell\",\"children\":[\"$\",\"code\",null,{\"className\":\"language-shell\",\"children\":[[\"$\",\"span\",\"fract-0-0\",{\"className\":\"token builtin class-name\",\"children\":[\"source\"]}],\" \",[\"$\",\"span\",\"fract-0-2\",{\"className\":\"token operator\",\"children\":[\"\u003c\"]}],[\"$\",\"span\",\"fract-0-3\",{\"className\":\"token punctuation\",\"children\":[\"(\"]}],\"tailscale completion \",[\"$\",\"span\",\"fract-0-5\",{\"className\":\"token function\",\"children\":[\"bash\"]}],[\"$\",\"span\",\"fract-0-6\",{\"className\":\"token punctuation\",\"children\":[\")\"]}],\"\\n\"]}]}]]}],[\"$\",\"p\",null,{\"children\":\"Run the following command to load completions for every new session on Linux, then reload your shell.\"}],[\"$\",\"div\",null,{\"className\":\"group relative overflow-hidden\",\"children\":[[\"$\",\"div\",null,{\"className\":\"absolute right-[5px] top-[21px] flex h-10 w-10 items-center justify-center rounded bg-grey-3 text-black opacity-0 transition-opacity duration-200 group-hover:opacity-100\",\"children\":[\"$\",\"$L2f5\",null,{\"text\":\"tailscale completion bash \u003e /etc/bash_completion.d/tailscale\\n\"}]}],[\"$\",\"pre\",null,{\"className\":\"refractor language-shell\",\"children\":[\"$\",\"code\",null,{\"className\":\"language-shell\",\"children\":[\"tailscale completion \",[\"$\",\"span\",\"fract-0-1\",{\"className\":\"token function\",\"children\":[\"bash\"]}],\" \",[\"$\",\"span\",\"fract-0-3\",{\"className\":\"token operator\",\"children\":[\"\u003e\"]}],\" /etc/bash_completion.d/tailscale\\n\"]}]}]]}],[\"$\",\"p\",null,{\"children\":\"Run the following command to load completions for every new session on macOS, then reload your shell.\"}],[\"$\",\"div\",null,{\"className\":\"group relative overflow-hidden\",\"children\":[[\"$\",\"div\",null,{\"className\":\"absolute right-[5px] top-[21px] flex h-10 w-10 items-center justify-center rounded bg-grey-3 text-black opacity-0 transition-opacity duration-200 group-hover:opacity-100\",\"children\":[\"$\",\"$L2f5\",null,{\"text\":\"tailscale completion bash \u003e $(brew --prefix)/etc/bash_completion.d/tailscale\\n\"}]}],[\"$\",\"pre\",null,{\"className\":\"refractor language-shell\",\"children\":[\"$\",\"code\",null,{\"className\":\"language-shell\",\"children\":[\"tailscale completion \",[\"$\",\"span\",\"fract-0-1\",{\"className\":\"token function\",\"children\":[\"bash\"]}],\" \",[\"$\",\"span\",\"fract-0-3\",{\"className\":\"token operator\",\"children\":[\"\u003e\"]}],\" \",[\"$\",\"span\",\"fract-0-5\",{\"className\":\"token variable\",\"children\":[[\"$\",\"span\",\"fract-1-0\",{\"className\":\"token variable\",\"children\":[\"$$(\"]}],\"brew --prefix\",[\"$\",\"span\",\"fract-1-2\",{\"className\":\"token variable\",\"children\":[\")\"]}]]}],\"/etc/bash_completion.d/tailscale\\n\"]}]}]]}]]}],[\"$\",\"div\",null,{\"className\":\"font-base mr-1 cursor-pointer bg-none transition-colors aria-selected:cursor-default aria-selected:border-blue-500 aria-selected:bg-blue-500 aria-selected:text-white hover:[\u0026:not([aria-selected])]:border-gray-100\",\"role\":\"tabpanel\",\"data-tab-id\":\"Zsh\",\"children\":[[\"$\",\"div\",null,{\"className\":\"note border-grey-200 relative mt-4 rounded border border-solid pb-2 pl-9 pr-3 pt-3 text-base leading-normal tracking-tight md:text-sm\",\"children\":[[\"$\",\"span\",null,{\"className\":\"absolute left-3 top-3 inline-block h-[18px] w-[18px]\",\"children\":[\"$\",\"svg\",null,{\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":\"18px\",\"height\":\"18px\",\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"children\":[[\"$\",\"circle\",null,{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"}],[\"$\",\"line\",null,{\"x1\":\"12\",\"y1\":\"16\",\"x2\":\"12\",\"y2\":\"12\"}],[\"$\",\"line\",null,{\"x1\":\"12\",\"y1\":\"8\",\"x2\":\"12.01\",\"y2\":\"8\"}]]}]}],[[\"$\",\"p\",null,{\"children\":\"You must have shell completion enabled for your Zsh environment.\"}],[\"$\",\"div\",null,{\"className\":\"group relative overflow-hidden\",\"children\":[[\"$\",\"div\",null,{\"className\":\"absolute right-[5px] top-[21px] flex h-10 w-10 items-center justify-center rounded bg-grey-3 text-black opacity-0 transition-opacity duration-200 group-hover:opacity-100\",\"children\":[\"$\",\"$L2f5\",null,{\"text\":\"echo \\\"autoload -U compinit; compinit\\\" \u003e\u003e ~/.zshrc\\n\"}]}],[\"$\",\"pre\",null,{\"className\":\"refractor language-shell\",\"children\":[\"$\",\"code\",null,{\"className\":\"language-shell\",\"children\":[[\"$\",\"span\",\"fract-0-0\",{\"className\":\"token builtin class-name\",\"children\":[\"echo\"]}],\" \",[\"$\",\"span\",\"fract-0-2\",{\"className\":\"token string\",\"children\":[\"\\\"autoload -U compinit; compinit\\\"\"]}],\" \",[\"$\",\"span\",\"fract-0-4\",{\"className\":\"token operator\",\"children\":[\"\u003e\u003e\"]}],\" ~/.zshrc\\n\"]}]}]]}]]]}],[\"$\",\"p\",null,{\"children\":\"Run the following command to load completions for Zsh, then reload your shell.\"}],[\"$\",\"div\",null,{\"className\":\"group relative overflow-hidden\",\"children\":[[\"$\",\"div\",null,{\"className\":\"absolute right-[5px] top-[21px] flex h-10 w-10 items-center justify-center rounded bg-grey-3 text-black opacity-0 transition-opacity duration-200 group-hover:opacity-100\",\"children\":[\"$\",\"$L2f5\",null,{\"text\":\"tailscale completion zsh \u003e \\\"${fpath[1]}/_tailscale\\\"\\n\"}]}],[\"$\",\"pre\",null,{\"className\":\"refractor language-shell\",\"children\":[\"$\",\"code\",null,{\"className\":\"language-shell\",\"children\":[\"tailscale completion \",[\"$\",\"span\",\"fract-0-1\",{\"className\":\"token function\",\"children\":[\"zsh\"]}],\" \",[\"$\",\"span\",\"fract-0-3\",{\"className\":\"token operator\",\"children\":[\"\u003e\"]}],\" \",[\"$\",\"span\",\"fract-0-5\",{\"className\":\"token string\",\"children\":[\"\\\"\",[\"$\",\"span\",\"fract-1-1\",{\"className\":\"token variable\",\"children\":[\"$${fpath\",[\"$\",\"span\",\"fract-2-1\",{\"className\":\"token punctuation\",\"children\":[\"[\"]}],\"1\",[\"$\",\"span\",\"fract-2-3\",{\"className\":\"token punctuation\",\"children\":[\"]\"]}],\"}\"]}],\"/_tailscale\\\"\"]}],\"\\n\"]}]}]]}]]}],[\"$\",\"div\",null,{\"className\":\"font-base mr-1 cursor-pointer bg-none transition-colors aria-selected:cursor-default aria-selected:border-blue-500 aria-selected:bg-blue-500 aria-selected:text-white hover:[\u0026:not([aria-selected])]:border-gray-100\",\"role\":\"tabpanel\",\"data-tab-id\":\"Fish\",\"children\":[[\"$\",\"p\",null,{\"children\":\"Run the following command to load completions for Fish, then reload your shell.\"}],[\"$\",\"div\",null,{\"className\":\"group relative overflow-hidden\",\"children\":[[\"$\",\"div\",null,{\"className\":\"absolute right-[5px] top-[21px] flex h-10 w-10 items-center justify-center rounded bg-grey-3 text-black opacity-0 transition-opacity duration-200 group-hover:opacity-100\",\"children\":[\"$\",\"$L2f5\",null,{\"text\":\"tailscale completion fish \u003e ~/.config/fish/completions/tailscale.fish\\n\"}]}],[\"$\",\"pre\",null,{\"className\":\"refractor language-shell\",\"children\":[\"$\",\"code\",null,{\"className\":\"language-shell\",\"children\":[\"tailscale completion fish \",[\"$\",\"span\",\"fract-0-1\",{\"className\":\"token operator\",\"children\":[\"\u003e\"]}],\" ~/.config/fish/completions/tailscale.fish\\n\"]}]}]]}]]}],[\"$\",\"div\",null,{\"className\":\"font-base mr-1 cursor-pointer bg-none transition-colors aria-selected:cursor-default aria-selected:border-blue-500 aria-selected:bg-blue-500 aria-selected:text-white hover:[\u0026:not([aria-selected])]:border-gray-100\",\"role\":\"tabpanel\",\"data-tab-id\":\"PowerShell\",\"children\":[[\"$\",\"p\",null,{\"children\":\"Run the following command to load completions for PowerShell.\"}],[\"$\",\"div\",null,{\"className\":\"group relative overflow-hidden\",\"children\":[[\"$\",\"div\",null,{\"className\":\"absolute right-[5px] top-[21px] flex h-10 w-10 items-center justify-center rounded bg-grey-3 text-black opacity-0 transition-opacity duration-200 group-hover:opacity-100\",\"children\":[\"$\",\"$L2f5\",null,{\"text\":\"tailscale completion powershell | Out-String | Invoke-Expression\\n\"}]}],[\"$\",\"pre\",null,{\"className\":\"refractor language-powershell\",\"children\":[\"$\",\"code\",null,{\"className\":\"language-powershell\",\"children\":[\"tailscale completion powershell \",[\"$\",\"span\",\"fract-0-1\",{\"className\":\"token punctuation\",\"children\":[\"|\"]}],\" \",[\"$\",\"span\",\"fract-0-3\",{\"className\":\"token function\",\"children\":[\"Out-String\"]}],\" \",[\"$\",\"span\",\"fract-0-5\",{\"className\":\"token punctuation\",\"children\":[\"|\"]}],\" \",[\"$\",\"span\",\"fract-0-7\",{\"className\":\"token function\",\"children\":[\"Invoke-Expression\"]}],\"\\n\"]}]}]]}],[\"$\",\"p\",null,{\"children\":[\"Run the following command, then source \",[\"$\",\"code\",null,{\"children\":\"tailscale.ps1\"}],\" from your PowerShell profile to load completions for every new session.\"]}],[\"$\",\"div\",null,{\"className\":\"group relative overflow-hidden\",\"children\":[[\"$\",\"div\",null,{\"className\":\"absolute right-[5px] top-[21px] flex h-10 w-10 items-center justify-center rounded bg-grey-3 text-black opacity-0 transition-opacity duration-200 group-hover:opacity-100\",\"children\":[\"$\",\"$L2f5\",null,{\"text\":\"tailscale completion powershell \u003e tailscale.ps1\\n\"}]}],[\"$\",\"pre\",null,{\"className\":\"refractor language-powershell\",\"children\":[\"$\",\"code\",null,{\"className\":\"language-powershell\",\"children\":[\"tailscale completion powershell \u003e tailscale\",[\"$\",\"span\",\"fract-0-1\",{\"className\":\"token punctuation\",\"children\":[\".\"]}],\"ps1\\n\"]}]}]]}]]}]]}],\"\\n\",[\"$\",\"$L2f3\",null,{\"id\":\"command-reference\",\"children\":\"Command Reference\",\"level\":2}],\"\\n\",[\"$\",\"$L2f3\",null,{\"id\":\"up\",\"children\":\"up\",\"level\":3}],\"\\n\",[\"$\",\"p\",null,{\"children\":\"Connect your device to Tailscale and authenticate if needed.\"}],\"\\n\",[\"$\",\"div\",null,{\"className\":\"group relative overflow-hidden\",\"children\":[[\"$\",\"div\",null,{\"className\":\"absolute right-[5px] top-[21px] flex h-10 w-10 items-center justify-center rounded bg-grey-3 text-black opacity-0 transition-opacity duration-200 group-hover:opacity-100\",\"children\":[\"$\",\"$L2f5\",null,{\"text\":\"tailscale up [flags]\\n\"}]}],[\"$\",\"pre\",null,{\"className\":\"refractor language-shell\",\"children\":[\"$\",\"code\",null,{\"className\":\"language-shell\",\"children\":[\"tailscale up \",[\"$\",\"span\",\"fract-0-1\",{\"className\":\"token punctuation\",\"children\":[\"[\"]}],\"flags\",[\"$\",\"span\",\"fract-0-3\",{\"className\":\"token punctuation\",\"children\":[\"]\"]}],\"\\n\"]}]}]]}],\"\\n\",[\"$\",\"p\",null,{\"children\":[\"Running \",[\"$\",\"code\",null,{\"children\":\"tailscale up\"}],\" without any flags connects to Tailscale.\"]}],\"\\n\",[\"$\",\"p\",null,{\"children\":\"Common flags:\"}],\"\\n\",[\"$\",\"ul\",null,{\"children\":[\"\\n\",[\"$\",\"li\",null,{\"children\":[[\"$\",\"code\",null,{\"children\":\"--accept-routes\"}],\" Accept \",[\"$\",\"$L16\",null,{\"href\":\"/kb/1019/subnets\",\"children\":\"subnet routes\"}],\" that other nodes advertise. Linux devices default to not accepting routes.\"]}],\"\\n\",[\"$\",\"li\",null,{\"children\":[[\"$\",\"code\",null,{\"children\":\"--advertise-exit-node\"}],\" Offer to be an \",[\"$\",\"$L16\",null,{\"href\":\"/kb/1103/exit-nodes\",\"children\":\"exit node\"}],\" for outbound internet traffic from the Tailscale network. Defaults to not offering to be an exit node.\"]}],\"\\n\",[\"$\",\"li\",null,{\"children\":[[\"$\",\"code\",null,{\"children\":\"--advertise-routes=\u003cip\u003e\"}],\" Expose physical \",[\"$\",\"$L16\",null,{\"href\":\"/kb/1019/subnets\",\"children\":\"subnet routes\"}],\" to your entire Tailscale network.\"]}],\"\\n\",[\"$\",\"li\",null,{\"children\":[[\"$\",\"code\",null,{\"children\":\"--exit-node=\u003cip|name\u003e\"}],\" Provide a \",[\"$\",\"$L16\",null,{\"href\":\"/kb/1033/ip-and-dns-addresses\",\"children\":\"Tailscale IP\"}],\" or \",[\"$\",\"$L16\",null,{\"href\":\"/kb/1098/machine-names\",\"children\":\"machine name\"}],\" to use as an exit node. To disable the use of an exit node, pass the flag with an empty argument: \",[\"$\",\"code\",null,{\"children\":\"--exit-node=\"}],\".\"]}],\"\\n\",[\"$\",\"li\",null,{\"children\":[[\"$\",\"code\",null,{\"children\":\"--exit-node-allow-lan-access\"}],\" Allow the client node access to its own LAN while connected to an exit node. Defaults to not allowing access while connected to an exit node.\"]}],\"\\n\",[\"$\",\"li\",null,{\"children\":[[\"$\",\"code\",null,{\"children\":\"--force-reauth\"}],\" Force re-authentication.\"]}],\"\\n\",[\"$\",\"li\",null,{\"children\":[[\"$\",\"code\",null,{\"children\":\"--snat-subnet-routes\"}],\" (Linux only) Disable source NAT. In normal operations, a subnet device sees the traffic originating from the subnet router. This simplifies routing, but does not allow traversing multiple networks. By disabling source NAT, the end machine sees the LAN IP address of the originating machine as the source.\"]}],\"\\n\",[\"$\",\"li\",null,{\"children\":[[\"$\",\"code\",null,{\"children\":\"--stateful-filtering\"}],\" Enable stateful filtering for \",[\"$\",\"$L16\",null,{\"href\":\"/kb/1019/subnets\",\"children\":\"subnet routers\"}],\" and \",[\"$\",\"$L16\",null,{\"href\":\"/kb/1103/exit-nodes\",\"children\":\"exit nodes\"}],\". When enabled, inbound packets with another node's destination IP are dropped, unless they are a part of a tracked outbound connection from that node. Defaults to disabled.\"]}],\"\\n\",[\"$\",\"li\",null,{\"children\":[[\"$\",\"code\",null,{\"children\":\"--shields-up\"}],\" \",[\"$\",\"$L16\",null,{\"href\":\"/kb/1072/client-preferences\",\"children\":\"Block incoming connections\"}],\" from other devices on your Tailscale network. Useful for personal devices that only make outgoing connections.\"]}],\"\\n\",[\"$\",\"li\",null,{\"children\":[[\"$\",\"code\",null,{\"children\":\"--ssh\"}],\" Run a \",[\"$\",\"$L16\",null,{\"href\":\"/kb/1193/tailscale-ssh\",\"children\":\"Tailscale SSH\"}],\" server, permitting access per the tailnet admin's declared \",[\"$\",\"$L16\",null,{\"href\":\"/kb/1018/acls\",\"children\":\"access policy\"}],\", or the \",[\"$\",\"$L16\",null,{\"href\":\"/kb/1192/acl-samples/#allow-all-default-acl\",\"children\":\"default policy\"}],\" if none is defined. Defaults to false.\"]}],\"\\n\"]}],\"\\n\",[\"$\",\"p\",null,{\"children\":[\"For a complete list of available flags, refer to the \",[\"$\",\"$L16\",null,{\"href\":\"/kb/1241/tailscale-up\",\"children\":[\"$\",\"code\",null,{\"children\":\"tailscale up\"}]}],\" topic.\"]}],\"\\n\",[\"$\",\"$L2f3\",null,{\"id\":\"down\",\"children\":\"down\",\"level\":3}],\"\\n\",[\"$\",\"p\",null,{\"children\":\"Disconnect from Tailscale. Running this command is the same as choosing to disconnect from or quit a Tailscale client.\"}],\"\\n\",[\"$\",\"div\",null,{\"className\":\"group relative overflow-hidden\",\"children\":[[\"$\",\"div\",null,{\"className\":\"absolute right-[5px] top-[21px] flex h-10 w-10 items-center justify-center rounded bg-grey-3 text-black opacity-0 transition-opacity duration-200 group-hover:opacity-100\",\"children\":[\"$\",\"$L2f5\",null,{\"text\":\"tailscale down\\n\"}]}],[\"$\",\"pre\",null,{\"className\":\"refractor language-shell\",\"children\":[\"$\",\"code\",null,{\"className\":\"language-shell\",\"children\":[\"tailscale down\\n\"]}]}]]}],\"\\n\",[\"$\",\"p\",null,{\"children\":[\"When disconnected, you cannot reach devices over Tailscale. To reconnect, re-run \",[\"$\",\"code\",null,{\"children\":\"tailscale up\"}],\" without any flags.\"]}],\"\\n\",[\"$\",\"p\",null,{\"children\":\"Available flags:\"}],\"\\n\",[\"$\",\"ul\",null,{\"children\":[\"\\n\",[\"$\",\"li\",null,{\"children\":[[\"$\",\"code\",null,{\"children\":\"--accept-risk=\u003crisk\u003e\"}],\" Accept risk and skip confirmation for risk type. This can be either \",[\"$\",\"code\",null,{\"children\":\"lose-ssh\"}],\" or \",[\"$\",\"code\",null,{\"children\":\"all\"}],\", or an empty string to not accept risk.\"]}],\"\\n\"]}],\"\\n\",[\"$\",\"$L2f3\",null,{\"id\":\"bugreport\",\"children\":\"bugreport\",\"level\":3}],\"\\n\",[\"$\",\"div\",null,{\"className\":\"note border-grey-200 relative mt-4 rounded border border-solid pb-2 pl-9 pr-3 pt-3 text-base leading-normal tracking-tight md:text-sm\",\"children\":[[\"$\",\"span\",null,{\"className\":\"absolute left-3 top-3 inline-block h-[18px] w-[18px]\",\"children\":[\"$\",\"svg\",null,{\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":\"18px\",\"height\":\"18px\",\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"children\":[[\"$\",\"circle\",null,{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"}],[\"$\",\"line\",null,{\"x1\":\"12\",\"y1\":\"16\",\"x2\":\"12\",\"y2\":\"12\"}],[\"$\",\"line\",null,{\"x1\":\"12\",\"y1\":\"8\",\"x2\":\"12.01\",\"y2\":\"8\"}]]}]}],[\"$\",\"p\",null,{\"children\":[\"The \",[\"$\",\"code\",null,{\"children\":\"bugreport\"}],\" command is available in Tailscale v1.8 or later. If you don't see this command, consider \",[\"$\",\"$L16\",null,{\"href\":\"/kb/1067/update\",\"children\":\"updating\"}],\" your Tailscale client.\"]}]]}],\"\\n\",[\"$\",\"p\",null,{\"children\":\"Generate a bug report with diagnostic information.\"}],\"\\n\",[\"$\",\"p\",null,{\"children\":[\"The \",[\"$\",\"code\",null,{\"children\":\"bugreport\"}],\" command makes it easier to report bugs to the Tailscale team by marking diagnostic logs with indicators to make triage easier.\"]}],\"\\n\",[\"$\",\"p\",null,{\"children\":[\"If you encounter a connectivity issue, run \",[\"$\",\"code\",null,{\"children\":\"tailscale bugreport\"}],\" on the device experiencing the issue at the time you encounter it. This command prints a random identifier into diagnostic logs, which you can share with our team.\"]}],\"\\n\",[\"$\",\"p\",null,{\"children\":\"Identifiers look like this:\"}],\"\\n\",[\"$\",\"div\",null,{\"className\":\"group relative overflow-hidden\",\"children\":[[\"$\",\"div\",null,{\"className\":\"absolute right-[5px] top-[21px] flex h-10 w-10 items-center justify-center rounded bg-grey-3 text-black opacity-0 transition-opacity duration-200 group-hover:opacity-100\",\"children\":[\"$\",\"$L2f5\",null,{\"text\":\"$$ tailscale bugreport\\nBUG-1b7641a16971a9cd75822c0ed8043fee70ae88cf05c52981dc220eb96a5c49a8-20210427151443Z-fbcd4fd3a4b7ad94\\n\"}]}],[\"$\",\"pre\",null,{\"className\":\"refractor language-shell\",\"children\":[\"$\",\"code\",null,{\"className\":\"language-shell\",\"children\":[\"$$ tailscale bugreport\\nBUG-1b7641a16971a9cd75822c0ed8043fee70ae88cf05c52981dc220eb96a5c49a8-20210427151443Z-fbcd4fd3a4b7ad94\\n\"]}]}]]}],\"\\n\",[\"$\",\"p\",null,{\"children\":\"This command shares no personally identifiable information and is unused unless you share the bug identifier with our team.\"}],\"\\n\",[\"$\",\"p\",null,{\"children\":\"Available flags:\"}],\"\\n\",[\"$\",\"ul\",null,{\"children\":[\"\\n\",[\"$\",\"li\",null,{\"children\":[[\"$\",\"code\",null,{\"children\":\"--diagnose\"}],\" Prints additional verbose information about the system to the Tailscale logs after generating a \",[\"$\",\"code\",null,{\"children\":\"bugreport\"}],\" identifier, which can then be viewed by our support team. Defaults to \",[\"$\",\"code\",null,{\"children\":\"false\"}],\".\"]}],\"\\n\",[\"$\",\"li\",null,{\"children\":[[\"$\",\"code\",null,{\"children\":\"--record\"}],\" Pause and then write another \",[\"$\",\"code\",null,{\"children\":\"bugreport\"}],\". Use this flag to create an initial \",[\"$\",\"code\",null,{\"children\":\"bugreport\"}],\" identifier. During the pause, perform the action that reproduces your issue. Then, press Enter to create a second \",[\"$\",\"code\",null,{\"children\":\"bugreport\"}],\" identifier. Share both bug identifiers with our team. Defaults to \",[\"$\",\"code\",null,{\"children\":\"false\"}],\".\"]}],\"\\n\"]}],\"\\n\",[\"$\",\"$L2f3\",null,{\"id\":\"cert\",\"children\":\"cert\",\"level\":3}],\"\\n\",[\"$\",\"p\",null,{\"children\":[\"Generate Let's Encrypt certificate and key files on the host for \",[\"$\",\"$L16\",null,{\"href\":\"/kb/1153/enabling-https\",\"children\":\"HTTPS certificates\"}],\" in your tailnet.\"]}],\"\\n\",[\"$\",\"div\",null,{\"className\":\"note border-grey-200 relative mt-4 rounded border border-solid pb-2 pl-9 pr-3 pt-3 text-base leading-normal tracking-tight md:text-sm\",\"children\":[[\"$\",\"span\",null,{\"className\":\"absolute left-3 top-3 inline-block h-[18px] w-[18px]\",\"children\":[\"$\",\"svg\",null,{\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":\"18px\",\"height\":\"18px\",\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"children\":[[\"$\",\"circle\",null,{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"}],[\"$\",\"line\",null,{\"x1\":\"12\",\"y1\":\"16\",\"x2\":\"12\",\"y2\":\"12\"}],[\"$\",\"line\",null,{\"x1\":\"12\",\"y1\":\"8\",\"x2\":\"12.01\",\"y2\":\"8\"}]]}]}],[\"$\",\"p\",null,{\"children\":[\"If you are trying to serve a folder of files or reverse proxy to an HTTP service, use the \",[\"$\",\"a\",null,{\"href\":\"#serve\",\"children\":[\"$\",\"code\",null,{\"children\":\"tailscale serve\"}]}],\" command instead.\"]}]]}],\"\\n\",[\"$\",\"div\",null,{\"className\":\"group relative overflow-hidden\",\"children\":[[\"$\",\"div\",null,{\"className\":\"absolute right-[5px] top-[21px] flex h-10 w-10 items-center justify-center rounded bg-grey-3 text-black opacity-0 transition-opacity duration-200 group-hover:opacity-100\",\"children\":[\"$\",\"$L2f5\",null,{\"text\":\"tailscale cert hostname.tails-scales.ts.net\\n\"}]}],[\"$\",\"pre\",null,{\"className\":\"refractor language-shell\",\"children\":[\"$\",\"code\",null,{\"className\":\"language-shell\",\"children\":[\"tailscale cert hostname.tails-scales.ts.net\\n\"]}]}]]}],\"\\n\",[\"$\",\"p\",null,{\"children\":[\"Alternatively, if you want to save the certificate and private key to files, you can use the \",[\"$\",\"code\",null,{\"children\":\"--cert-file\"}],\" and \",[\"$\",\"code\",null,{\"children\":\"--key-file\"}],\" arguments:\"]}],\"\\n\",[\"$\",\"div\",null,{\"className\":\"group relative overflow-hidden\",\"children\":[[\"$\",\"div\",null,{\"className\":\"absolute right-[5px] top-[21px] flex h-10 w-10 items-center justify-center rounded bg-grey-3 text-black opacity-0 transition-opacity duration-200 group-hover:opacity-100\",\"children\":[\"$\",\"$L2f5\",null,{\"text\":\"tailscale cert --cert-file=cert.pem --key-file=key.pem hostname.tails-scales.ts.net\\n\"}]}],[\"$\",\"pre\",null,{\"className\":\"refractor language-shell\",\"children\":[\"$\",\"code\",null,{\"className\":\"language-shell\",\"children\":[\"tailscale cert --cert-file\",[\"$\",\"span\",\"fract-0-1\",{\"className\":\"token operator\",\"children\":[\"=\"]}],\"cert.pem --key-file\",[\"$\",\"span\",\"fract-0-3\",{\"className\":\"token operator\",\"children\":[\"=\"]}],\"key.pem hostname.tails-scales.ts.net\\n\"]}]}]]}],\"\\n\",[\"$\",\"p\",null,{\"children\":[\"The certificates provided by Let's Encrypt have a 90-day expiry and require periodic renewal. When a certificate is delivered as files on disk which you then move to an install location, such as when using \",[\"$\",\"code\",null,{\"children\":\"tailscale cert\"}],\", the \",[\"$\",\"$L16\",null,{\"href\":\"/kb/1278/tailscaled\",\"children\":[[\"$\",\"code\",null,{\"children\":\"tailscaled\"}],\" daemon\"]}],\" doesn't know where to place a renewed certificate or how to install it. As a result, you are responsible for renewing any certificates that you create using \",[\"$\",\"code\",null,{\"children\":\"tailscale cert\"}],\".\"]}],\"\\n\",[\"$\",\"p\",null,{\"children\":[\"If a certificate is handled without the user initiating any file-based certificate installation (such as when using the \",[\"$\",\"a\",null,{\"href\":\"https://github.com/tailscale/caddy-tailscale\",\"children\":\"Caddy integration of Tailscale\"}],\") then the certificate will automatically renew without the user doing anything.\"]}],\"\\n\",[\"$\",\"p\",null,{\"children\":\"Available flags:\"}],\"\\n\",[\"$\",\"ul\",null,{\"children\":[\"\\n\",[\"$\",\"li\",null,{\"children\":[[\"$\",\"code\",null,{\"children\":\"--cert-file=\u003ccert\u003e\"}],\" Specify the certificate output path.\"]}],\"\\n\",[\"$\",\"li\",null,{\"children\":[[\"$\",\"code\",null,{\"children\":\"--key-file=\u003ckey\u003e\"}],\" Specify the private key output path.\"]}],\"\\n\",[\"$\",\"li\",null,{\"children\":[[\"$\",\"code\",null,{\"children\":\"--min-validity=\u003cduration\u003e\"}],\" Request a specified minimum remaining validity on the returned certificate. \",[\"$\",\"code\",null,{\"children\":\"duration\"}],\" can be any value parseable by \",[\"$\",\"a\",null,{\"href\":\"https://pkg.go.dev/time#ParseDuration\",\"children\":[\"$\",\"code\",null,{\"children\":\"time.ParseDuration()\"}]}],\". For example, use \",[\"$\",\"code\",null,{\"children\":\"120h\"}],\" to set the duration to five days.\"]}],\"\\n\"]}],\"\\n\",[\"$\",\"div\",null,{\"className\":\"note border-grey-200 relative mt-4 rounded border border-solid pb-2 pl-9 pr-3 pt-3 text-base leading-normal tracking-tight md:text-sm\",\"children\":[[\"$\",\"span\",null,{\"className\":\"absolute left-3 top-3 inline-block h-[18px] w-[18px]\",\"children\":[\"$\",\"svg\",null,{\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":\"18px\",\"height\":\"18px\",\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"children\":[[\"$\",\"circle\",null,{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"}],[\"$\",\"line\",null,{\"x1\":\"12\",\"y1\":\"16\",\"x2\":\"12\",\"y2\":\"12\"}],[\"$\",\"line\",null,{\"x1\":\"12\",\"y1\":\"8\",\"x2\":\"12.01\",\"y2\":\"8\"}]]}]}],[\"$\",\"p\",null,{\"children\":[\"The \",[\"$\",\"code\",null,{\"children\":\"--min-validity\"}],\" flag lets you ensure that the returned certificate is valid for at least the specified duration. If you specify a duration longer than the \",[\"$\",\"a\",null,{\"href\":\"https://letsencrypt.org/docs/faq#what-is-the-lifetime-for-let-s-encrypt-certificates-for-how-long-are-they-valid\",\"children\":\"certification lifetime set by Let's Encyrpt\"}],\", it uses the maximum lifetime set by Let's Encrypt.\"]}]]}],\"\\n\",[\"$\",\"$L2f3\",null,{\"id\":\"dns\",\"children\":\"dns\",\"level\":3}],\"\\n\",[\"$\",\"p\",null,{\"children\":[\"The \",[\"$\",\"code\",null,{\"children\":\"dns\"}],\" command lets you access \",[\"$\",\"$L16\",null,{\"href\":\"/kb/1054/dns\",\"children\":\"Tailscale DNS settings\"}],\". It's available in Tailscale v1.74.0 and later.\"]}],\"\\n\",[\"$\",\"p\",null,{\"children\":\"Subcommands:\"}],\"\\n\",[\"$\",\"ul\",null,{\"children\":[\"\\n\",[\"$\",\"li\",null,{\"children\":[[\"$\",\"code\",null,{\"children\":\"status\"}],\" Print the configuration of the local DNS forwarder and the tailnet-wide \",[\"$\",\"$L16\",null,{\"href\":\"/kb/1081/magicdns\",\"children\":\"MagicDNS\"}],\" configuration.\"]}],\"\\n\"]}],\"\\n\",[\"$\",\"$L2f3\",null,{\"id\":\"completion\",\"children\":\"completion\",\"level\":3}],\"\\n\",[\"$\",\"p\",null,{\"children\":\"Configure tab-completion for the Tailscale CLI.\"}],\"\\n\",[\"$\",\"div\",null,{\"className\":\"group relative overflow-hidden\",\"children\":[[\"$\",\"div\",null,{\"className\":\"absolute right-[5px] top-[21px] flex h-10 w-10 items-center justify-center rounded bg-grey-3 text-black opacity-0 transition-opacity duration-200 group-hover:opacity-100\",\"children\":[\"$\",\"$L2f5\",null,{\"text\":\"tailscale completion \u003csubcommand\u003e [flags]\\n\"}]}],[\"$\",\"pre\",null,{\"className\":\"refractor language-shell\",\"children\":[\"$\",\"code\",null,{\"className\":\"language-shell\",\"children\":[\"tailscale completion \",[\"$\",\"span\",\"fract-0-1\",{\"className\":\"token operator\",\"children\":[\"\u003c\"]}],\"subcommand\",[\"$\",\"span\",\"fract-0-3\",{\"className\":\"token operator\",\"children\":[\"\u003e\"]}],\" \",[\"$\",\"span\",\"fract-0-5\",{\"className\":\"token punctuation\",\"children\":[\"[\"]}],\"flags\",[\"$\",\"span\",\"fract-0-7\",{\"className\":\"token punctuation\",\"children\":[\"]\"]}],\"\\n\"]}]}]]}],\"\\n\",[\"$\",\"p\",null,{\"children\":\"Subcommands:\"}],\"\\n\",[\"$\",\"ul\",null,{\"children\":[\"\\n\",[\"$\",\"li\",null,{\"children\":[[\"$\",\"code\",null,{\"children\":\"bash\"}],\" Configure tab-completion for the \",[\"$\",\"code\",null,{\"children\":\"bash\"}],\" shell.\"]}],\"\\n\",[\"$\",\"li\",null,{\"children\":[[\"$\",\"code\",null,{\"children\":\"zsh\"}],\" Configure tab-completion for the \",[\"$\",\"code\",null,{\"children\":\"zsh\"}],\" shell.\"]}],\"\\n\",[\"$\",\"li\",null,{\"children\":[[\"$\",\"code\",null,{\"children\":\"fish\"}],\" Configure tab-completion for the \",[\"$\",\"code\",null,{\"children\":\"fish\"}],\" shell.\"]}],\"\\n\",[\"$\",\"li\",null,{\"children\":[[\"$\",\"code\",null,{\"children\":\"powershell\"}],\" Configure tab-completion for PowerShell.\"]}],\"\\n\"]}],\"\\n\",[\"$\",\"p\",null,{\"children\":\"Available flags:\"}],\"\\n\",[\"$\",\"ul\",null,{\"children\":[\"\\n\",[\"$\",\"li\",null,{\"children\":[[\"$\",\"code\",null,{\"children\":\"--flags=\u003ctrue|false\u003e\"}],\" Configure whether to suggest flags (in addition to subcommands). Set to \",[\"$\",\"code\",null,{\"children\":\"true\"}],\" by default.\"]}],\"\\n\",[\"$\",\"li\",null,{\"children\":[[\"$\",\"code\",null,{\"children\":\"--descs=\u003ctrue|false\u003e\"}],\" Configure whether to include descriptions of subcommands in the suggestions. Set to \",[\"$\",\"code\",null,{\"children\":\"true\"}],\" by default.\"]}],\"\\n\"]}],\"\\n\",[\"$\",\"$L2f3\",null,{\"id\":\"configure\",\"children\":\"configure\",\"level\":3}],\"\\n\",[\"$\",\"p\",null,{\"children\":\"Configure resources that you want to include in your tailnet.\"}],\"\\n\",[\"$\",\"div\",null,{\"className\":\"group relative overflow-hidden\",\"children\":[[\"$\",\"div\",null,{\"className\":\"absolute right-[5px] top-[21px] flex h-10 w-10 items-center justify-center rounded bg-grey-3 text-black opacity-0 transition-opacity duration-200 group-hover:opacity-100\",\"children\":[\"$\",\"$L2f5\",null,{\"text\":\"tailscale configure \u003csubcommands\u003e\\n\"}]}],[\"$\",\"pre\",null,{\"className\":\"refractor language-shell\",\"children\":[\"$\",\"code\",null,{\"className\":\"language-shell\",\"children\":[\"tailscale configure \",[\"$\",\"span\",\"fract-0-1\",{\"className\":\"token operator\",\"children\":[\"\u003c\"]}],\"subcommands\",[\"$\",\"span\",\"fract-0-3\",{\"className\":\"token operator\",\"children\":[\"\u003e\"]}],\"\\n\"]}]}]]}],\"\\n\",[\"$\",\"p\",null,{\"children\":\"Subcommands:\"}],\"\\n\",[\"$\",\"ul\",null,{\"children\":[\"\\n\",[\"$\",\"li\",null,{\"children\":[[\"$\",\"code\",null,{\"children\":\"kubeconfig\"}],\" (alpha) Configure kubectl to connect to a Kubernetes cluster using Tailscale.\"]}],\"\\n\",[\"$\",\"li\",null,{\"children\":[[\"$\",\"code\",null,{\"children\":\"synology\"}],\" Configure Synology to enable outbound connections needed for Tailscale.\"]}],\"\\n\",[\"$\",\"li\",null,{\"children\":[[\"$\",\"code\",null,{\"children\":\"sysext\"}],\" Activate, deactivate, or manage the state of the Tailscale \",[\"$\",\"$L16\",null,{\"href\":\"/kb/1340/macos-sysext\",\"children\":\"system extension\"}],\" on the \",[\"$\",\"$L16\",null,{\"href\":\"/kb/1065/macos-variants#standalone-variant\",\"children\":\"Standalone variant\"}],\" of macOS.\"]}],\"\\n\"]}],\"\\n\",[\"$\",\"p\",null,{\"children\":[\"Available flags for \",[\"$\",\"code\",null,{\"children\":\"sysext\"}],\":\"]}],\"\\n\",[\"$\",\"ul\",null,{\"children\":[\"\\n\",[\"$\",\"li\",null,{\"children\":[[\"$\",\"code\",null,{\"children\":\"activate\"}],\" Register the Tailscale system extension with macOS.\"]}],\"\\n\",[\"$\",\"li\",null,{\"children\":[[\"$\",\"code\",null,{\"children\":\"deactivate\"}],\" Deactivate the Tailscale system extension on macOS\"]}],\"\\n\",[\"$\",\"li\",null,{\"children\":[[\"$\",\"code\",null,{\"children\":\"status\"}],\" Print the enablement status of the Tailscale system extension.\"]}],\"\\n\"]}],\"\\n\",[\"$\",\"p\",null,{\"children\":\"Examples:\"}],\"\\n\",[\"$\",\"ul\",null,{\"children\":[\"\\n\",[\"$\",\"li\",null,{\"children\":[\"To configure your local \",[\"$\",\"code\",null,{\"children\":\"kubeconfig\"}],\" file for authentication with a Kubernetes auth proxy:\"]}],\"\\n\"]}],\"\\n\",[\"$\",\"div\",null,{\"className\":\"group relative overflow-hidden\",\"children\":[[\"$\",\"div\",null,{\"className\":\"absolute right-[5px] top-[21px] flex h-10 w-10 items-center justify-center rounded bg-grey-3 text-black opacity-0 transition-opacity duration-200 group-hover:opacity-100\",\"children\":[\"$\",\"$L2f5\",null,{\"text\":\"tailscale configure kubeconfig \u003chostname-or-fqdn\u003e\\n\"}]}],[\"$\",\"pre\",null,{\"className\":\"refractor language-shell\",\"children\":[\"$\",\"code\",null,{\"className\":\"language-shell\",\"children\":[\"tailscale configure kubeconfig \",[\"$\",\"span\",\"fract-0-1\",{\"className\":\"token operator\",\"children\":[\"\u003c\"]}],\"hostname-or-fqdn\",[\"$\",\"span\",\"fract-0-3\",{\"className\":\"token operator\",\"children\":[\"\u003e\"]}],\"\\n\"]}]}]]}],\"\\n\",[\"$\",\"ul\",null,{\"children\":[\"\\n\",[\"$\",\"li\",null,{\"children\":\"To configure Synology to enable outbound connections:\"}],\"\\n\"]}],\"\\n\",[\"$\",\"div\",null,{\"className\":\"group relative overflow-hidden\",\"children\":[[\"$\",\"div\",null,{\"className\":\"absolute right-[5px] top-[21px] flex h-10 w-10 items-center justify-center rounded bg-grey-3 text-black opacity-0 transition-opacity duration-200 group-hover:opacity-100\",\"children\":[\"$\",\"$L2f5\",null,{\"text\":\"tailscale configure synology\\n\"}]}],[\"$\",\"pre\",null,{\"className\":\"refractor language-shell\",\"children\":[\"$\",\"code\",null,{\"className\":\"language-shell\",\"children\":[\"tailscale configure synology\\n\"]}]}]]}],\"\\n\",[\"$\",\"$L2f3\",null,{\"id\":\"exit-node\",\"children\":\"exit-node\",\"level\":3}],\"\\n\",[\"$\",\"p\",null,{\"children\":[\"Get information about \",[\"$\",\"$L16\",null,{\"href\":\"/kb/1103/exit-nodes\",\"children\":\"exit-nodes\"}],\" in your tailnet.\"]}],\"\\n\",[\"$\",\"div\",null,{\"className\":\"group relative overflow-hidden\",\"children\":[[\"$\",\"div\",null,{\"className\":\"absolute right-[5px] top-[21px] flex h-10 w-10 items-center justify-center rounded bg-grey-3 text-black opacity-0 transition-opacity duration-200 group-hover:opacity-100\",\"children\":[\"$\",\"$L2f5\",null,{\"text\":\"tailscale exit-node \u003csubcommands\u003e\\n\"}]}],[\"$\",\"pre\",null,{\"className\":\"refractor language-shell\",\"children\":[\"$\",\"code\",null,{\"className\":\"language-shell\",\"children\":[\"tailscale exit-node \",[\"$\",\"span\",\"fract-0-1\",{\"className\":\"token operator\",\"children\":[\"\u003c\"]}],\"subcommands\",[\"$\",\"span\",\"fract-0-3\",{\"className\":\"token operator\",\"children\":[\"\u003e\"]}],\"\\n\"]}]}]]}],\"\\n\",[\"$\",\"p\",null,{\"children\":\"Available subcommands:\"}],\"\\n\",[\"$\",\"ul\",null,{\"children\":[\"\\n\",[\"$\",\"li\",null,{\"children\":[[\"$\",\"code\",null,{\"children\":\"list\"}],\" Lists the exit nodes in your tailnet.\"]}],\"\\n\",[\"$\",\"li\",null,{\"children\":[[\"$\",\"code\",null,{\"children\":\"suggest\"}],\" Suggests a \",[\"$\",\"$L16\",null,{\"href\":\"/kb/1392/auto-exit-nodes\",\"children\":\"recommended exit node\"}],\".\"]}],\"\\n\"]}],\"\\n\",[\"$\",\"$L2f3\",null,{\"id\":\"file\",\"children\":\"file\",\"level\":3}],\"\\n\",[\"$\",\"p\",null,{\"children\":[\"Access and make files available to \",[\"$\",\"$L16\",null,{\"href\":\"/kb/1106/taildrop\",\"children\":\"Taildrop\"}],\".\"]}],\"\\n\",[\"$\",\"p\",null,{\"children\":\"Available flags:\"}],\"\\n\",[\"$\",\"ul\",null,{\"children\":[\"\\n\",[\"$\",\"li\",null,{\"children\":[[\"$\",\"code\",null,{\"children\":\"cp\"}],\" Copy files to a host\"]}],\"\\n\",[\"$\",\"li\",null,{\"children\":[[\"$\",\"code\",null,{\"children\":\"get\"}],\" Move files out of the Tailscale file inbox\"]}],\"\\n\"]}],\"\\n\",[\"$\",\"$L2f3\",null,{\"id\":\"funnel\",\"children\":\"funnel\",\"level\":3}],\"\\n\",[\"$\",\"p\",null,{\"children\":\"Serve content and local servers from your Tailscale node to the internet.\"}],\"\\n\",[\"$\",\"p\",null,{\"children\":[\"To limit local service access to your tailnet, use the \",[\"$\",\"a\",null,{\"href\":\"#serve\",\"children\":[\"$\",\"code\",null,{\"children\":\"serve\"}]}],\" command.\"]}],\"\\n\",[\"$\",\"div\",null,{\"className\":\"group relative overflow-hidden\",\"children\":[[\"$\",\"div\",null,{\"className\":\"absolute right-[5px] top-[21px] flex h-10 w-10 items-center justify-center rounded bg-grey-3 text-black opacity-0 transition-opacity duration-200 group-hover:opacity-100\",\"children\":[\"$\",\"$L2f5\",null,{\"text\":\"tailscale funnel \u003ctarget\u003e\\ntailscale funnel \u003csubcommand\u003e [flags] \u003cargs\u003e\\n\"}]}],[\"$\",\"pre\",null,{\"className\":\"refractor language-shell\",\"children\":[\"$\",\"code\",null,{\"className\":\"language-shell\",\"children\":[\"tailscale funnel \",[\"$\",\"span\",\"fract-0-1\",{\"className\":\"token operator\",\"children\":[\"\u003c\"]}],\"target\",[\"$\",\"span\",\"fract-0-3\",{\"className\":\"token operator\",\"children\":[\"\u003e\"]}],\"\\ntailscale funnel \",[\"$\",\"span\",\"fract-0-5\",{\"className\":\"token operator\",\"children\":[\"\u003c\"]}],\"subcommand\",[\"$\",\"span\",\"fract-0-7\",{\"className\":\"token operator\",\"children\":[\"\u003e\"]}],\" \",[\"$\",\"span\",\"fract-0-9\",{\"className\":\"token punctuation\",\"children\":[\"[\"]}],\"flags\",[\"$\",\"span\",\"fract-0-11\",{\"className\":\"token punctuation\",\"children\":[\"]\"]}],\" \",[\"$\",\"span\",\"fract-0-13\",{\"className\":\"token operator\",\"children\":[\"\u003c\"]}],\"args\",[\"$\",\"span\",\"fract-0-15\",{\"className\":\"token operator\",\"children\":[\"\u003e\"]}],\"\\n\"]}]}]]}],\"\\n\",[\"$\",\"p\",null,{\"children\":\"Subcommands:\"}],\"\\n\",[\"$\",\"ul\",null,{\"children\":[\"\\n\",[\"$\",\"li\",null,{\"children\":[[\"$\",\"$L16\",null,{\"href\":\"/kb/1311/tailscale-funnel/#view-the-status\",\"children\":[\"$\",\"code\",null,{\"children\":\"status\"}]}],\" Shows the status\"]}],\"\\n\",[\"$\",\"li\",null,{\"children\":[[\"$\",\"$L16\",null,{\"href\":\"/kb/1311/tailscale-funnel/#reset-tailscale-funnel\",\"children\":[\"$\",\"code\",null,{\"children\":\"reset\"}]}],\" Resets the configuration\"]}],\"\\n\"]}],\"\\n\",[\"$\",\"p\",null,{\"children\":[\"For more information, refer to the \",[\"$\",\"$L16\",null,{\"href\":\"/kb/1311/tailscale-funnel\",\"children\":[\"$\",\"code\",null,{\"children\":\"tailscale funnel\"}]}],\" topic.\"]}],\"\\n\",[\"$\",\"$L2f3\",null,{\"id\":\"ip\",\"children\":\"ip\",\"level\":3}],\"\\n\",[\"$\",\"p\",null,{\"children\":\"Get a device's Tailscale IP address.\"}],\"\\n\",[\"$\",\"div\",null,{\"className\":\"group relative overflow-hidden\",\"children\":[[\"$\",\"div\",null,{\"className\":\"absolute right-[5px] top-[21px] flex h-10 w-10 items-center justify-center rounded bg-grey-3 text-black opacity-0 transition-opacity duration-200 group-hover:opacity-100\",\"children\":[\"$\",\"$L2f5\",null,{\"text\":\"tailscale ip [flags] [\u003chostname\u003e]\\n\"}]}],[\"$\",\"pre\",null,{\"className\":\"refractor language-shell\",\"children\":[\"$\",\"code\",null,{\"className\":\"language-shell\",\"children\":[\"tailscale \",[\"$\",\"span\",\"fract-0-1\",{\"className\":\"token function\",\"children\":[\"ip\"]}],\" \",[\"$\",\"span\",\"fract-0-3\",{\"className\":\"token punctuation\",\"children\":[\"[\"]}],\"flags\",[\"$\",\"span\",\"fract-0-5\",{\"className\":\"token punctuation\",\"children\":[\"]\"]}],\" \",[\"$\",\"span\",\"fract-0-7\",{\"className\":\"token punctuation\",\"children\":[\"[\"]}],[\"$\",\"span\",\"fract-0-8\",{\"className\":\"token operator\",\"children\":[\"\u003c\"]}],\"hostname\",[\"$\",\"span\",\"fract-0-10\",{\"className\":\"token operator\",\"children\":[\"\u003e\"]}],[\"$\",\"span\",\"fract-0-11\",{\"className\":\"token punctuation\",\"children\":[\"]\"]}],\"\\n\"]}]}]]}],\"\\n\",[\"$\",\"p\",null,{\"children\":[\"By default, this command returns both an \",[\"$\",\"$L16\",null,{\"href\":\"/kb/1033/ip-and-dns-addresses\",\"children\":[[\"$\",\"code\",null,{\"children\":\"100.x.y.z\"}],\" IPv4 address\"]}],\" and an IPv6 address for the current device. You can return only an IPv4 or IPv6 address by passing either the \",[\"$\",\"code\",null,{\"children\":\"-4\"}],\" or \",[\"$\",\"code\",null,{\"children\":\"-6\"}],\" flags.\"]}],\"\\n\",[\"$\",\"div\",null,{\"className\":\"group relative overflow-hidden\",\"children\":[[\"$\",\"div\",null,{\"className\":\"absolute right-[5px] top-[21px] flex h-10 w-10 items-center justify-center rounded bg-grey-3 text-black opacity-0 transition-opacity duration-200 group-hover:opacity-100\",\"children\":[\"$\",\"$L2f5\",null,{\"text\":\"$$ tailscale ip -4\\n100.121.112.23\\n\"}]}],[\"$\",\"pre\",null,{\"className\":\"refractor language-shell\",\"children\":[\"$\",\"code\",null,{\"className\":\"language-shell\",\"children\":[\"$$ tailscale \",[\"$\",\"span\",\"fract-0-1\",{\"className\":\"token function\",\"children\":[\"ip\"]}],\" -4\\n\",[\"$\",\"span\",\"fract-0-3\",{\"className\":\"token number\",\"children\":[\"100.121\"]}],\".112.23\\n\"]}]}]]}],\"\\n\",[\"$\",\"p\",null,{\"children\":\"You can also find the Tailscale IP for other devices on your network by adding the device hostname after the command. For example:\"}],\"\\n\",[\"$\",\"div\",null,{\"className\":\"group relative overflow-hidden\",\"children\":[[\"$\",\"div\",null,{\"className\":\"absolute right-[5px] top-[21px] flex h-10 w-10 items-center justify-center rounded bg-grey-3 text-black opacity-0 transition-opacity duration-200 group-hover:opacity-100\",\"children\":[\"$\",\"$L2f5\",null,{\"text\":\"$$ tailscale ip raspberrypi\\n100.126.153.111\\nfd7a:115c:a1e0:ab12:4843:cd96:627e:9975\\n\"}]}],[\"$\",\"pre\",null,{\"className\":\"refractor language-shell\",\"children\":[\"$\",\"code\",null,{\"className\":\"language-shell\",\"children\":[\"$$ tailscale \",[\"$\",\"span\",\"fract-0-1\",{\"className\":\"token function\",\"children\":[\"ip\"]}],\" raspberrypi\\n\",[\"$\",\"span\",\"fract-0-3\",{\"className\":\"token number\",\"children\":[\"100.126\"]}],\".153.111\\nfd7a:115c:a1e0:ab12:4843:cd96:627e:9975\\n\"]}]}]]}],\"\\n\",[\"$\",\"p\",null,{\"children\":\"Available flags:\"}],\"\\n\",[\"$\",\"ul\",null,{\"children\":[\"\\n\",[\"$\",\"li\",null,{\"children\":[[\"$\",\"code\",null,{\"children\":\"-4\"}],\" Only return an IPv4 address\"]}],\"\\n\",[\"$\",\"li\",null,{\"children\":[[\"$\",\"code\",null,{\"children\":\"-6\"}],\" Only return an IPv6 address\"]}],\"\\n\",[\"$\",\"li\",null,{\"children\":[[\"$\",\"code\",null,{\"children\":\"-1\"}],\" Only return one address, preferring IPv4\"]}],\"\\n\"]}],\"\\n\",[\"$\",\"$L2f3\",null,{\"id\":\"lock\",\"children\":\"lock\",\"level\":3}],\"\\n\",[\"$\",\"p\",null,{\"children\":[\"Manage \",[\"$\",\"$L16\",null,{\"href\":\"/kb/1226/tailnet-lock\",\"children\":\"tailnet lock\"}],\" for your tailnet.\"]}],\"\\n\",[\"$\",\"div\",null,{\"className\":\"group relative overflow-hidden\",\"children\":[[\"$\",\"div\",null,{\"className\":\"absolute right-[5px] top-[21px] flex h-10 w-10 items-center justify-center rounded bg-grey-3 text-black opacity-0 transition-opacity duration-200 group-hover:opacity-100\",\"children\":[\"$\",\"$L2f5\",null,{\"text\":\"tailscale lock \u003csubcommand\u003e [flags] \u003cargs\u003e\\n\"}]}],[\"$\",\"pre\",null,{\"className\":\"refractor language-shell\",\"children\":[\"$\",\"code\",null,{\"className\":\"language-shell\",\"children\":[\"tailscale lock \",[\"$\",\"span\",\"fract-0-1\",{\"className\":\"token operator\",\"children\":[\"\u003c\"]}],\"subcommand\",[\"$\",\"span\",\"fract-0-3\",{\"className\":\"token operator\",\"children\":[\"\u003e\"]}],\" \",[\"$\",\"span\",\"fract-0-5\",{\"className\":\"token punctuation\",\"children\":[\"[\"]}],\"flags\",[\"$\",\"span\",\"fract-0-7\",{\"className\":\"token punctuation\",\"children\":[\"]\"]}],\" \",[\"$\",\"span\",\"fract-0-9\",{\"className\":\"token operator\",\"children\":[\"\u003c\"]}],\"args\",[\"$\",\"span\",\"fract-0-11\",{\"className\":\"token operator\",\"children\":[\"\u003e\"]}],\"\\n\"]}]}]]}],\"\\n\",[\"$\",\"p\",null,{\"children\":\"Common subcommands:\"}],\"\\n\",[\"$\",\"ul\",null,{\"children\":[\"\\n\",[\"$\",\"li\",null,{\"children\":[[\"$\",\"$L16\",null,{\"href\":\"/kb/1243/tailscale-lock/#lock-init\",\"children\":[\"$\",\"code\",null,{\"children\":\"init\"}]}],\" Initializes tailnet lock.\"]}],\"\\n\",[\"$\",\"li\",null,{\"children\":[[\"$\",\"$L16\",null,{\"href\":\"/kb/1243/tailscale-lock/#lock-status\",\"children\":[\"$\",\"code\",null,{\"children\":\"status\"}]}],\" Outputs the state of tailnet lock.\"]}],\"\\n\",[\"$\",\"li\",null,{\"children\":[[\"$\",\"$L16\",null,{\"href\":\"/kb/1243/tailscale-lock/#lock-add\",\"children\":[\"$\",\"code\",null,{\"children\":\"add\"}]}],\" Adds one or more trusted signing keys to tailnet lock.\"]}],\"\\n\",[\"$\",\"li\",null,{\"children\":[[\"$\",\"$L16\",null,{\"href\":\"/kb/1243/tailscale-lock/#lock-remove\",\"children\":[\"$\",\"code\",null,{\"children\":\"remove\"}]}],\" Removes one or more trusted signing keys from tailnet lock.\"]}],\"\\n\",[\"$\",\"li\",null,{\"children\":[[\"$\",\"$L16\",null,{\"href\":\"/kb/1243/tailscale-lock/#lock-sign\",\"children\":[\"$\",\"code\",null,{\"children\":\"sign\"}]}],\" Signs a node key and transmits the signature to the coordination server.\"]}],\"\\n\"]}],\"\\n\",[\"$\",\"p\",null,{\"children\":[\"Running \",[\"$\",\"code\",null,{\"children\":\"tailnet lock\"}],\" with no subcommand and no arguments is equivalent to running \",[\"$\",\"$L16\",null,{\"href\":\"/kb/1243/tailscale-lock/#lock-status\",\"children\":[\"$\",\"code\",null,{\"children\":\"tailscale lock status\"}]}],\".\"]}],\"\\n\",[\"$\",\"p\",null,{\"children\":[\"For a complete list of subcommands and flags, refer to the \",[\"$\",\"$L16\",null,{\"href\":\"/kb/1243/tailscale-lock\",\"children\":[\"$\",\"code\",null,{\"children\":\"tailscale lock\"}]}],\" topic.\"]}],\"\\n\",[\"$\",\"$L2f3\",null,{\"id\":\"login\",\"children\":\"login\",\"level\":3}],\"\\n\",[\"$\",\"p\",null,{\"children\":[\"Log into Tailscale (and add this device to your Tailscale network). For more information about logging in, refer to \",[\"$\",\"$L16\",null,{\"href\":\"/kb/1225/fast-user-switching\",\"children\":\"fast-user-switching\"}],\".\"]}],\"\\n\",[\"$\",\"div\",null,{\"className\":\"group relative overflow-hidden\",\"children\":[[\"$\",\"div\",null,{\"className\":\"absolute right-[5px] top-[21px] flex h-10 w-10 items-center justify-center rounded bg-grey-3 text-black opacity-0 transition-opacity duration-200 group-hover:opacity-100\",\"children\":[\"$\",\"$L2f5\",null,{\"text\":\"tailscale login [flags]\\n\"}]}],[\"$\",\"pre\",null,{\"className\":\"refractor language-shell\",\"children\":[\"$\",\"code\",null,{\"className\":\"language-shell\",\"children\":[\"tailscale login \",[\"$\",\"span\",\"fract-0-1\",{\"className\":\"token punctuation\",\"children\":[\"[\"]}],\"flags\",[\"$\",\"span\",\"fract-0-3\",{\"className\":\"token punctuation\",\"children\":[\"]\"]}],\"\\n\"]}]}]]}],\"\\n\",[\"$\",\"p\",null,{\"children\":\"Available flags:\"}],\"\\n\",[\"$\",\"ul\",null,{\"children\":[\"\\n\",[\"$\",\"li\",null,{\"children\":[[\"$\",\"code\",null,{\"children\":\"--accept-dns\"}],\" Accept \",[\"$\",\"$L16\",null,{\"href\":\"/kb/1054/dns\",\"children\":\"DNS configuration\"}],\" from the admin console. Defaults to accepting DNS settings.\"]}],\"\\n\",[\"$\",\"li\",null,{\"children\":[[\"$\",\"code\",null,{\"children\":\"--accept-routes\"}],\" Accept \",[\"$\",\"$L16\",null,{\"href\":\"/kb/1019/subnets\",\"children\":\"subnet routes\"}],\" that other nodes advertise. Linux devices default to not accepting routes.\"]}],\"\\n\",[\"$\",\"li\",null,{\"children\":[[\"$\",\"code\",null,{\"children\":\"--advertise-exit-node\"}],\" Offer to be an \",[\"$\",\"$L16\",null,{\"href\":\"/kb/1103/exit-nodes\",\"children\":\"exit node\"}],\" for outbound internet traffic from the Tailscale network. Defaults to not offering to be an exit node.\"]}],\"\\n\",[\"$\",\"li\",null,{\"children\":[[\"$\",\"code\",null,{\"children\":\"--advertise-routes=\u003cip\u003e\"}],\" Expose physical \",[\"$\",\"$L16\",null,{\"href\":\"/kb/1019/subnets\",\"children\":\"subnet routes\"}],\" to your entire Tailscale network.\"]}],\"\\n\",[\"$\",\"li\",null,{\"children\":[[\"$\",\"code\",null,{\"children\":\"--advertise-tags=\u003ctags\u003e\"}],\" Give tagged permissions to this device. You must be \",[\"$\",\"$L16\",null,{\"href\":\"/kb/1337/acl-syntax/#tag-owners\",\"children\":[\"listed in \",[\"$\",\"code\",null,{\"children\":\"\\\"TagOwners\\\"\"}]]}],\" to be able to apply tags.\"]}],\"\\n\",[\"$\",\"li\",null,{\"children\":[[\"$\",\"code\",null,{\"children\":\"--auth-key=\u003ckey\u003e\"}],\" Provide an \",[\"$\",\"$L16\",null,{\"href\":\"/kb/1085/auth-keys\",\"children\":\"auth key\"}],\" to automatically authenticate the node as your user account.\"]}],\"\\n\",[\"$\",\"li\",null,{\"children\":[[\"$\",\"code\",null,{\"children\":\"--exit-node=\u003cip|name\u003e\"}],\" Provide a \",[\"$\",\"$L16\",null,{\"href\":\"/kb/1033/ip-and-dns-addresses\",\"children\":\"Tailscale IP\"}],\" or \",[\"$\",\"$L16\",null,{\"href\":\"/kb/1098/machine-names\",\"children\":\"machine name\"}],\" to use as an exit node. To disable the use of an exit node, pass the flag with an empty argument: \",[\"$\",\"code\",null,{\"children\":\"--exit-node=\"}],\".\"]}],\"\\n\",[\"$\",\"li\",null,{\"children\":[[\"$\",\"code\",null,{\"children\":\"--exit-node-allow-lan-access\"}],\" Allow the client node access to its own LAN while connected to an exit node. Defaults to not allowing access while connected to an exit node.\"]}],\"\\n\",[\"$\",\"li\",null,{\"children\":[[\"$\",\"code\",null,{\"children\":\"--hostname=\u003cname\u003e\"}],\" Provide a hostname to use for the device instead of the one provided by the OS. Note that this will change the machine name used in \",[\"$\",\"$L16\",null,{\"href\":\"/kb/1081/magicdns\",\"children\":\"MagicDNS\"}],\".\"]}],\"\\n\",[\"$\",\"li\",null,{\"children\":[[\"$\",\"code\",null,{\"children\":\"--login-server=\u003curl\u003e\"}],\" Provide the base URL of a control server instead of \",[\"$\",\"code\",null,{\"children\":\"https://controlplane.tailscale.com\"}],\". If you are using \",[\"$\",\"$L16\",null,{\"href\":\"/blog/opensource#the-open-source-coordination-server\",\"children\":\"Headscale\"}],\" for your control server, use your Headscale instance's URL.\"]}],\"\\n\",[\"$\",\"li\",null,{\"children\":[[\"$\",\"code\",null,{\"children\":\"--nickname=\u003cname\u003e\"}],\" \",[\"$\",\"$L16\",null,{\"href\":\"/kb/1225/fast-user-switching/#setting-a-nickname\",\"children\":\"Nickname\"}],\" for the current account.\"]}],\"\\n\",[\"$\",\"li\",null,{\"children\":[[\"$\",\"code\",null,{\"children\":\"--operator=\u003cuser\u003e\"}],\" Provide a Unix username other than \",[\"$\",\"code\",null,{\"children\":\"root\"}],\" to operate \",[\"$\",\"code\",null,{\"children\":\"tailscaled\"}],\".\"]}],\"\\n\",[\"$\",\"li\",null,{\"children\":[[\"$\",\"code\",null,{\"children\":\"--qr\"}],\" Generate a QR code for the web login URL. Defaults to not showing a QR code.\"]}],\"\\n\",[\"$\",\"li\",null,{\"children\":[[\"$\",\"code\",null,{\"children\":\"--stateful-filtering\"}],\" Enable stateful filtering for \",[\"$\",\"$L16\",null,{\"href\":\"/kb/1019/subnets\",\"children\":\"subnet routers\"}],\" and \",[\"$\",\"$L16\",null,{\"href\":\"/kb/1103/exit-nodes\",\"children\":\"exit nodes\"}],\". When enabled, inbound packets with another node's destination IP are dropped, unless they are a part of a tracked outbound connection from that node. Defaults to disabled.\"]}],\"\\n\",[\"$\",\"li\",null,{\"children\":[[\"$\",\"code\",null,{\"children\":\"--shields-up\"}],\" \",[\"$\",\"$L16\",null,{\"href\":\"/kb/1072/client-preferences\",\"children\":\"Block incoming connections\"}],\" from other devices on your Tailscale network. Useful for personal devices that only make outgoing connections.\"]}],\"\\n\",[\"$\",\"li\",null,{\"children\":[[\"$\",\"code\",null,{\"children\":\"--ssh\"}],\" Run a \",[\"$\",\"$L16\",null,{\"href\":\"/kb/1193/tailscale-ssh\",\"children\":\"Tailscale SSH\"}],\" server, permitting access per the tailnet admin's declared \",[\"$\",\"$L16\",null,{\"href\":\"/kb/1018/acls\",\"children\":\"access policy\"}],\", or the \",[\"$\",\"$L16\",null,{\"href\":\"/kb/1192/acl-samples/#allow-all-default-acl\",\"children\":\"default policy\"}],\" if none is defined. Defaults to false.\"]}],\"\\n\",[\"$\",\"li\",null,{\"children\":[[\"$\",\"code\",null,{\"children\":\"--timeout=\u003cduration\u003e\"}],\" Maximum amount of time to wait for the Tailscale service to initialize. \",[\"$\",\"code\",null,{\"children\":\"duration\"}],\" can be any value parseable by \",[\"$\",\"a\",null,{\"href\":\"https://pkg.go.dev/time#ParseDuration\",\"children\":[\"$\",\"code\",null,{\"children\":\"time.ParseDuration()\"}]}],\". Defaults to \",[\"$\",\"code\",null,{\"children\":\"0s\"}],\", which blocks forever.\"]}],\"\\n\",[\"$\",\"li\",null,{\"children\":[[\"$\",\"code\",null,{\"children\":\"--unattended\"}],\"(Windows only) Run in \",[\"$\",\"$L16\",null,{\"href\":\"/kb/1088/run-unattended\",\"children\":\"unattended mode\"}],\" where Tailscale keeps running even after the current user logs out.\"]}],\"\\n\"]}],\"\\n\",[\"$\",\"$L2f3\",null,{\"id\":\"logout\",\"children\":\"logout\",\"level\":3}],\"\\n\",[\"$\",\"p\",null,{\"children\":[\"Disconnect from Tailscale and expire the current log in. The next time you run \",[\"$\",\"code\",null,{\"children\":\"tailscale up\"}],\", you'll need to reauthenticate your device.\"]}],\"\\n\",[\"$\",\"div\",null,{\"className\":\"group relative overflow-hidden\",\"children\":[[\"$\",\"div\",null,{\"className\":\"absolute right-[5px] top-[21px] flex h-10 w-10 items-center justify-center rounded bg-grey-3 text-black opacity-0 transition-opacity duration-200 group-hover:opacity-100\",\"children\":[\"$\",\"$L2f5\",null,{\"text\":\"tailscale logout\\n\"}]}],[\"$\",\"pre\",null,{\"className\":\"refractor language-shell\",\"children\":[\"$\",\"code\",null,{\"className\":\"language-shell\",\"children\":[\"tailscale \",[\"$\",\"span\",\"fract-0-1\",{\"className\":\"token builtin class-name\",\"children\":[\"logout\"]}],\"\\n\"]}]}]]}],\"\\n\",[\"$\",\"p\",null,{\"children\":[\"If you run \",[\"$\",\"code\",null,{\"children\":\"tailscale logout\"}],\" on an \",[\"$\",\"$L16\",null,{\"href\":\"/kb/1111/ephemeral-nodes\",\"children\":\"ephemeral node\"}],\", the node will be removed from your tailnet immediately.\"]}],\"\\n\",[\"$\",\"$L2f3\",null,{\"id\":\"metrics\",\"children\":\"metrics\",\"level\":3}],\"\\n\",[\"$\",\"p\",null,{\"children\":[\"Expose and collect \",[\"$\",\"$L16\",null,{\"href\":\"/kb/1482/client-metrics\",\"children\":\"Tailscale client metrics\"}],\" for use with third-party monitoring systems.\"]}],\"\\n\",[\"$\",\"div\",null,{\"className\":\"group relative overflow-hidden\",\"children\":[[\"$\",\"div\",null,{\"className\":\"absolute right-[5px] top-[21px] flex h-10 w-10 items-center justify-center rounded bg-grey-3 text-black opacity-0 transition-opacity duration-200 group-hover:opacity-100\",\"children\":[\"$\",\"$L2f5\",null,{\"text\":\"tailscale metrics\\n\"}]}],[\"$\",\"pre\",null,{\"className\":\"refractor language-shell\",\"children\":[\"$\",\"code\",null,{\"className\":\"language-shell\",\"children\":[\"tailscale metrics\\n\"]}]}]]}],\"\\n\",[\"$\",\"p\",null,{\"children\":\"Subcommands:\"}],\"\\n\",[\"$\",\"ul\",null,{\"children\":[\"\\n\",[\"$\",\"li\",null,{\"children\":[[\"$\",\"code\",null,{\"children\":\"print\"}],\" Shows client metrics in the current terminal session\"]}],\"\\n\",[\"$\",\"li\",null,{\"children\":[[\"$\",\"code\",null,{\"children\":\"write\"}],\" Writes metric values to a text file\"]}],\"\\n\"]}],\"\\n\",[\"$\",\"$L2f3\",null,{\"id\":\"netcheck\",\"children\":\"netcheck\",\"level\":3}],\"\\n\",[\"$\",\"p\",null,{\"children\":\"Get a report on your current physical network conditions. This command is provided to help debug connection troubles.\"}],\"\\n\",[\"$\",\"div\",null,{\"className\":\"group relative overflow-hidden\",\"children\":[[\"$\",\"div\",null,{\"className\":\"absolute right-[5px] top-[21px] flex h-10 w-10 items-center justify-center rounded bg-grey-3 text-black opacity-0 transition-opacity duration-200 group-hover:opacity-100\",\"children\":[\"$\",\"$L2f5\",null,{\"text\":\"tailscale netcheck\\n\"}]}],[\"$\",\"pre\",null,{\"className\":\"refractor language-shell\",\"children\":[\"$\",\"code\",null,{\"className\":\"language-shell\",\"children\":[\"tailscale netcheck\\n\"]}]}]]}],\"\\n\",[\"$\",\"p\",null,{\"children\":[[\"$\",\"code\",null,{\"children\":\"netcheck\"}],\" will output a report like this:\"]}],\"\\n\",[\"$\",\"div\",null,{\"className\":\"group relative overflow-hidden\",\"children\":[[\"$\",\"div\",null,{\"className\":\"absolute right-[5px] top-[21px] flex h-10 w-10 items-center justify-center rounded bg-grey-3 text-black opacity-0 transition-opacity duration-200 group-hover:opacity-100\",\"children\":[\"$\",\"$L2f5\",null,{\"text\":\"Report:\\n\\t* Time: 2025-03-13T16:35:03.336481Z\\n\\t* UDP: true\\n\\t* IPv4: yes, \u003cipv4-address\u003e\\n\\t* IPv6: yes, \u003cipv6-address\u003e\\n\\t* MappingVariesByDestIP: false\\n\\t* PortMapping:\\n\\t* Nearest DERP: Seattle\\n\\t* DERP latency:\\n\\t\\t- sea: 24.2ms (Seattle)\\n\\t\\t- sfo: 50.5ms (San Francisco)\\n\\t\\t- lax: 57.2ms (Los Angeles)\\n\\t\\t- den: 58.5ms (Denver)\\n\\t\\t- dfw: 63ms (Dallas)\\n\\t\\t- ord: 73.3ms (Chicago)\\n\"}]}],[\"$\",\"pre\",null,{\"className\":\"refractor language-shell\",\"children\":[\"$\",\"code\",null,{\"className\":\"language-shell\",\"children\":[\"Report:\\n\\t* Time: \",[\"$\",\"span\",\"fract-0-1\",{\"className\":\"token number\",\"children\":[\"2025\"]}],\"-03-13T16:35:03.336481Z\\n\\t* UDP: \",[\"$\",\"span\",\"fract-0-3\",{\"className\":\"token boolean\",\"children\":[\"true\"]}],\"\\n\\t* IPv4: yes, \",[\"$\",\"span\",\"fract-0-5\",{\"className\":\"token operator\",\"children\":[\"\u003c\"]}],\"ipv4-address\",[\"$\",\"span\",\"fract-0-7\",{\"className\":\"token operator\",\"children\":[\"\u003e\"]}],\"\\n\\t* IPv6: yes, \",[\"$\",\"span\",\"fract-0-9\",{\"className\":\"token operator\",\"children\":[\"\u003c\"]}],\"ipv6-address\",[\"$\",\"span\",\"fract-0-11\",{\"className\":\"token operator\",\"children\":[\"\u003e\"]}],\"\\n\\t* MappingVariesByDestIP: \",[\"$\",\"span\",\"fract-0-13\",{\"className\":\"token boolean\",\"children\":[\"false\"]}],\"\\n\\t* PortMapping:\\n\\t* Nearest DERP: Seattle\\n\\t* DERP latency:\\n\\t\\t- sea: \",[\"$\",\"span\",\"fract-0-15\",{\"className\":\"token number\",\"children\":[\"24\"]}],\".2ms \",[\"$\",\"span\",\"fract-0-17\",{\"className\":\"token punctuation\",\"children\":[\"(\"]}],\"Seattle\",[\"$\",\"span\",\"fract-0-19\",{\"className\":\"token punctuation\",\"children\":[\")\"]}],\"\\n\\t\\t- sfo: \",[\"$\",\"span\",\"fract-0-21\",{\"className\":\"token number\",\"children\":[\"50\"]}],\".5ms \",[\"$\",\"span\",\"fract-0-23\",{\"className\":\"token punctuation\",\"children\":[\"(\"]}],\"San Francisco\",[\"$\",\"span\",\"fract-0-25\",{\"className\":\"token punctuation\",\"children\":[\")\"]}],\"\\n\\t\\t- lax: \",[\"$\",\"span\",\"fract-0-27\",{\"className\":\"token number\",\"children\":[\"57\"]}],\".2ms \",[\"$\",\"span\",\"fract-0-29\",{\"className\":\"token punctuation\",\"children\":[\"(\"]}],\"Los Angeles\",[\"$\",\"span\",\"fract-0-31\",{\"className\":\"token punctuation\",\"children\":[\")\"]}],\"\\n\\t\\t- den: \",[\"$\",\"span\",\"fract-0-33\",{\"className\":\"token number\",\"children\":[\"58\"]}],\".5ms \",[\"$\",\"span\",\"fract-0-35\",{\"className\":\"token punctuation\",\"children\":[\"(\"]}],\"Denver\",[\"$\",\"span\",\"fract-0-37\",{\"className\":\"token punctuation\",\"children\":[\")\"]}],\"\\n\\t\\t- dfw: 63ms \",[\"$\",\"span\",\"fract-0-39\",{\"className\":\"token punctuation\",\"children\":[\"(\"]}],\"Dallas\",[\"$\",\"span\",\"fract-0-41\",{\"className\":\"token punctuation\",\"children\":[\")\"]}],\"\\n\\t\\t- ord: \",[\"$\",\"span\",\"fract-0-43\",{\"className\":\"token number\",\"children\":[\"73\"]}],\".3ms \",[\"$\",\"span\",\"fract-0-45\",{\"className\":\"token punctuation\",\"children\":[\"(\"]}],\"Chicago\",[\"$\",\"span\",\"fract-0-47\",{\"className\":\"token punctuation\",\"children\":[\")\"]}],\"\\n\"]}]}]]}],\"\\n\",[\"$\",\"p\",null,{\"children\":[\"(In the example output, the list of \",[\"$\",\"$L16\",null,{\"href\":\"/kb/1232/derp-servers\",\"children\":\"DERP servers\"}],\" is truncated for brevity.)\"]}],\"\\n\",[\"$\",\"ul\",null,{\"children\":[\"\\n\",[\"$\",\"li\",null,{\"children\":[[\"$\",\"strong\",null,{\"children\":\"UDP\"}],\" shows whether UDP traffic is enabled on the current network. If this is false, it's unlikely Tailscale will be able to make point-to-point connections, and will instead rely on our \",[\"$\",\"$L16\",null,{\"href\":\"/kb/1232/derp-servers\",\"children\":\"encrypted TCP relays (DERP)\"}]]}],\"\\n\",[\"$\",\"li\",null,{\"children\":[[\"$\",\"strong\",null,{\"children\":\"IPv4\"}],\" and \",[\"$\",\"strong\",null,{\"children\":\"IPv6\"}],\" show your network public IP addresses and support for both protocols.\"]}],\"\\n\",[\"$\",\"li\",null,{\"children\":[[\"$\",\"strong\",null,{\"children\":\"MappingVariesByDestIP\"}],\" describes whether your device is behind a difficult NAT that varies the device's IP address depending on the destination.\"]}],\"\\n\",[\"$\",\"li\",null,{\"children\":[[\"$\",\"strong\",null,{\"children\":\"HairPinning\"}],\" describes whether your router can route connections from endpoints on your LAN back to your LAN using those endpoints' globally-mapped IPv4 addresses/ports.\"]}],\"\\n\",[\"$\",\"li\",null,{\"children\":[[\"$\",\"strong\",null,{\"children\":\"PortMapping\"}],\" describes a list of which three port-mapping services exist on your router. Possible values are \\\"UPnP\\\", \\\"NAT-PMP\\\", and \\\"PCP\\\".\"]}],\"\\n\",[\"$\",\"li\",null,{\"children\":[[\"$\",\"strong\",null,{\"children\":\"DERP latency\"}],\" and \",[\"$\",\"strong\",null,{\"children\":\"Nearest DERP\"}],\" describe latency from our \",[\"$\",\"$L16\",null,{\"href\":\"/kb/1232/derp-servers\",\"children\":\"encrypted TCP relays (DERP)\"}],\". The lowest latency (\\\"nearest\\\") server is used for traffic.\"]}],\"\\n\"]}],\"\\n\",[\"$\",\"p\",null,{\"children\":\"If any fields are blank, it means Tailscale wasn't able to measure that network property.\"}],\"\\n\",[\"$\",\"p\",null,{\"children\":[\"All the information from \",[\"$\",\"code\",null,{\"children\":\"tailscale netcheck\"}],\" is also available in the \",[\"$\",\"a\",null,{\"href\":\"https://login.tailscale.com/admin/machines\",\"children\":\"admin console\"}],\", by selecting a particular machine.\"]}],\"\\n\",[\"$\",\"$L2f3\",null,{\"id\":\"version\",\"children\":\"version\",\"level\":3}],\"\\n\",[\"$\",\"p\",null,{\"children\":\"Print the version of Tailscale.\"}],\"\\n\",[\"$\",\"div\",null,{\"className\":\"group relative overflow-hidden\",\"children\":[[\"$\",\"div\",null,{\"className\":\"absolute right-[5px] top-[21px] flex h-10 w-10 items-center justify-center rounded bg-grey-3 text-black opacity-0 transition-opacity duration-200 group-hover:opacity-100\",\"children\":[\"$\",\"$L2f5\",null,{\"text\":\"tailscale version [flags]\\n\"}]}],[\"$\",\"pre\",null,{\"className\":\"refractor language-shell\",\"children\":[\"$\",\"code\",null,{\"className\":\"language-shell\",\"children\":[\"tailscale version \",[\"$\",\"span\",\"fract-0-1\",{\"className\":\"token punctuation\",\"children\":[\"[\"]}],\"flags\",[\"$\",\"span\",\"fract-0-3\",{\"className\":\"token punctuation\",\"children\":[\"]\"]}],\"\\n\"]}]}]]}],\"\\n\",[\"$\",\"p\",null,{\"children\":\"Available flags:\"}],\"\\n\",[\"$\",\"ul\",null,{\"children\":[\"\\n\",[\"$\",\"li\",null,{\"children\":[[\"$\",\"code\",null,{\"children\":\"--daemon\"}],\" Also print local node's daemon version. Defaults to false.\"]}],\"\\n\",[\"$\",\"li\",null,{\"children\":[[\"$\",\"code\",null,{\"children\":\"--json\"}],\" Return a machine-readable JSON response.\"]}],\"\\n\",[\"$\",\"li\",null,{\"children\":[[\"$\",\"code\",null,{\"children\":\"--upstream\"}],\" Print the latest upstream release version from pkgs.tailscale.com. Defaults to false.\"]}],\"\\n\"]}],\"\\n\",[\"$\",\"div\",null,{\"className\":\"note relative mt-4 rounded border border-solid border-green-300 bg-green-50 pb-2 pl-9 pr-3 pt-3 text-base leading-normal tracking-tight md:text-sm\",\"children\":[[\"$\",\"span\",null,{\"className\":\"absolute left-3 top-3 inline-block h-[18px] w-[18px] text-green-700\",\"children\":[\"$\",\"svg\",null,{\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":\"18px\",\"height\":\"18px\",\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"children\":[[\"$\",\"path\",null,{\"d\":\"M22 11.08V12a10 10 0 1 1-5.93-9.14\"}],[\"$\",\"polyline\",null,{\"points\":\"22 4 12 14.01 9 11.01\"}]]}]}],[[\"$\",\"p\",null,{\"children\":[\"Running \",[\"$\",\"code\",null,{\"children\":\"tailscale version\"}],\" also prints other information, including the Go version. Here's an example of the output:\"]}],[\"$\",\"div\",null,{\"className\":\"group relative overflow-hidden\",\"children\":[[\"$\",\"div\",null,{\"className\":\"absolute right-[5px] top-[21px] flex h-10 w-10 items-center justify-center rounded bg-grey-3 text-black opacity-0 transition-opacity duration-200 group-hover:opacity-100\",\"children\":[\"$\",\"$L2f5\",null,{\"text\":\"tailscale version\\n1.72.0\\n tailscale commit: 9a0f00ea8ed08d1a94b357fb232ac9d44a512664\\n other commit: 387e0b40ad87031fb4444372ee80a97156e8deb9\\n go version: go1.22.5\\n\"}]}],[\"$\",\"pre\",null,{\"className\":\"refractor language-shell\",\"children\":[\"$\",\"code\",null,{\"className\":\"language-shell\",\"children\":[\"tailscale version\\n\",[\"$\",\"span\",\"fract-0-1\",{\"className\":\"token number\",\"children\":[\"1.72\"]}],\".0\\n tailscale commit: 9a0f00ea8ed08d1a94b357fb232ac9d44a512664\\n other commit: 387e0b40ad87031fb4444372ee80a97156e8deb9\\n go version: go1.22.5\\n\"]}]}]]}]]]}],\"\\n\",[\"$\",\"$L2f3\",null,{\"id\":\"ping\",\"children\":\"ping\",\"level\":3}],\"\\n\",[\"$\",\"p\",null,{\"children\":\"Attempt to ping another device exclusively over Tailscale.\"}],\"\\n\",[\"$\",\"p\",null,{\"children\":[\"The regular \",[\"$\",\"code\",null,{\"children\":\"ping\"}],\" command often works fine over Tailscale, but \",[\"$\",\"code\",null,{\"children\":\"tailscale ping\"}],\" provides more details about the connection over Tailscale that can be helpful when troubleshooting connectivity.\"]}],\"\\n\",[\"$\",\"div\",null,{\"className\":\"group relative overflow-hidden\",\"children\":[[\"$\",\"div\",null,{\"className\":\"absolute right-[5px] top-[21px] flex h-10 w-10 items-center justify-center rounded bg-grey-3 text-black opacity-0 transition-opacity duration-200 group-hover:opacity-100\",\"children\":[\"$\",\"$L2f5\",null,{\"text\":\"tailscale ping \u003chostname-or-ip\u003e\\n\"}]}],[\"$\",\"pre\",null,{\"className\":\"refractor language-shell\",\"children\":[\"$\",\"code\",null,{\"className\":\"language-shell\",\"children\":[\"tailscale \",[\"$\",\"span\",\"fract-0-1\",{\"className\":\"token function\",\"children\":[\"ping\"]}],\" \",[\"$\",\"span\",\"fract-0-3\",{\"className\":\"token operator\",\"children\":[\"\u003c\"]}],\"hostname-or-ip\",[\"$\",\"span\",\"fract-0-5\",{\"className\":\"token operator\",\"children\":[\"\u003e\"]}],\"\\n\"]}]}]]}],\"\\n\",[\"$\",\"p\",null,{\"children\":[\"You can call \",[\"$\",\"code\",null,{\"children\":\"tailscale ping\"}],\" using either a \",[\"$\",\"$L16\",null,{\"href\":\"/kb/1033/ip-and-dns-addresses\",\"children\":\"100.x.y.z address\"}],\" or a \",[\"$\",\"$L16\",null,{\"href\":\"/kb/1098/machine-names\",\"children\":\"machine name\"}],\".\"]}],\"\\n\",[\"$\",\"p\",null,{\"children\":\"Available flags:\"}],\"\\n\",[\"$\",\"ul\",null,{\"children\":[\"\\n\",[\"$\",\"li\",null,{\"children\":[[\"$\",\"code\",null,{\"children\":\"--c\"}],\" Maximum number of pings to send. Defaults to 10.\"]}],\"\\n\",[\"$\",\"li\",null,{\"children\":[[\"$\",\"code\",null,{\"children\":\"--icmp\"}],\", \",[\"$\",\"code\",null,{\"children\":\"--icmp=false\"}],\" Perform an ICMP-level ping (through WireGuard, but not the local host OS stack). Defaults to false.\"]}],\"\\n\",[\"$\",\"li\",null,{\"children\":[[\"$\",\"code\",null,{\"children\":\"--peerapi\"}],\", \",[\"$\",\"code\",null,{\"children\":\"--peerapi=false\"}],\" Try hitting the peer's PeerAPI HTTP server. Defaults to false.\"]}],\"\\n\",[\"$\",\"li\",null,{\"children\":[[\"$\",\"code\",null,{\"children\":\"--tsmp\"}],\", \",[\"$\",\"code\",null,{\"children\":\"--tsmp=false\"}],\" Perform a TSMP-level ping (through WireGuard, but not either host's OS stack). Defaults to false.\"]}],\"\\n\",[\"$\",\"li\",null,{\"children\":[[\"$\",\"code\",null,{\"children\":\"--timeout=\u003cduration\u003e\"}],\" Maximum amount of time to wait before giving up on a ping. \",[\"$\",\"code\",null,{\"children\":\"duration\"}],\" can be any value parseable by \",[\"$\",\"a\",null,{\"href\":\"https://pkg.go.dev/time#ParseDuration\",\"children\":[\"$\",\"code\",null,{\"children\":\"time.ParseDuration()\"}]}],\". Defaults to \",[\"$\",\"code\",null,{\"children\":\"5s\"}],\".\"]}],\"\\n\",[\"$\",\"li\",null,{\"children\":[[\"$\",\"code\",null,{\"children\":\"--until-direct\"}],\", \",[\"$\",\"code\",null,{\"children\":\"--until-direct=false\"}],\" Stop once a direct path is established. Defaults to true.\"]}],\"\\n\",[\"$\",\"li\",null,{\"children\":[[\"$\",\"code\",null,{\"children\":\"--verbose\"}],\", \",[\"$\",\"code\",null,{\"children\":\"--verbose=false\"}],\" Show verbose output. Defaults to false.\"]}],\"\\n\"]}],\"\\n\",[\"$\",\"div\",null,{\"className\":\"note relative mt-4 rounded border border-solid border-green-300 bg-green-50 pb-2 pl-9 pr-3 pt-3 text-base leading-normal tracking-tight md:text-sm\",\"children\":[[\"$\",\"span\",null,{\"className\":\"absolute left-3 top-3 inline-block h-[18px] w-[18px] text-green-700\",\"children\":[\"$\",\"svg\",null,{\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":\"18px\",\"height\":\"18px\",\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"children\":[[\"$\",\"path\",null,{\"d\":\"M22 11.08V12a10 10 0 1 1-5.93-9.14\"}],[\"$\",\"polyline\",null,{\"points\":\"22 4 12 14.01 9 11.01\"}]]}]}],[\"$\",\"p\",null,{\"children\":[\"There are \",[\"$\",\"$L16\",null,{\"href\":\"/kb/1465/ping-types\",\"children\":\"four types of ping messages\"}],\" supported by the \",[\"$\",\"code\",null,{\"children\":\"tailscale ping\"}],\" command.\"]}]]}],\"\\n\",[\"$\",\"$L2f3\",null,{\"id\":\"serve\",\"children\":\"serve\",\"level\":3}],\"\\n\",[\"$\",\"p\",null,{\"children\":\"Serve content and local servers from your Tailscale node to your tailnet.\"}],\"\\n\",[\"$\",\"p\",null,{\"children\":[\"To publicly share the local service to the internet, use the \",[\"$\",\"a\",null,{\"href\":\"#funnel\",\"children\":[\"$\",\"code\",null,{\"children\":\"funnel\"}]}],\" command.\"]}],\"\\n\",[\"$\",\"div\",null,{\"className\":\"group relative overflow-hidden\",\"children\":[[\"$\",\"div\",null,{\"className\":\"absolute right-[5px] top-[21px] flex h-10 w-10 items-center justify-center rounded bg-grey-3 text-black opacity-0 transition-opacity duration-200 group-hover:opacity-100\",\"children\":[\"$\",\"$L2f5\",null,{\"text\":\"tailscale serve \u003ctarget\u003e\\ntailscale serve \u003csubcommand\u003e [flags] \u003cargs\u003e\\n\"}]}],[\"$\",\"pre\",null,{\"className\":\"refractor language-shell\",\"children\":[\"$\",\"code\",null,{\"className\":\"language-shell\",\"children\":[\"tailscale serve \",[\"$\",\"span\",\"fract-0-1\",{\"className\":\"token operator\",\"children\":[\"\u003c\"]}],\"target\",[\"$\",\"span\",\"fract-0-3\",{\"className\":\"token operator\",\"children\":[\"\u003e\"]}],\"\\ntailscale serve \",[\"$\",\"span\",\"fract-0-5\",{\"className\":\"token operator\",\"children\":[\"\u003c\"]}],\"subcommand\",[\"$\",\"span\",\"fract-0-7\",{\"className\":\"token operator\",\"children\":[\"\u003e\"]}],\" \",[\"$\",\"span\",\"fract-0-9\",{\"className\":\"token punctuation\",\"children\":[\"[\"]}],\"flags\",[\"$\",\"span\",\"fract-0-11\",{\"className\":\"token punctuation\",\"children\":[\"]\"]}],\" \",[\"$\",\"span\",\"fract-0-13\",{\"className\":\"token operator\",\"children\":[\"\u003c\"]}],\"args\",[\"$\",\"span\",\"fract-0-15\",{\"className\":\"token operator\",\"children\":[\"\u003e\"]}],\"\\n\"]}]}]]}],\"\\n\",[\"$\",\"p\",null,{\"children\":\"Subcommands:\"}],\"\\n\",[\"$\",\"ul\",null,{\"children\":[\"\\n\",[\"$\",\"li\",null,{\"children\":[[\"$\",\"$L16\",null,{\"href\":\"/kb/1242/tailscale-serve/#view-the-status\",\"children\":[\"$\",\"code\",null,{\"children\":\"status\"}]}],\" Shows the status\"]}],\"\\n\",[\"$\",\"li\",null,{\"children\":[[\"$\",\"$L16\",null,{\"href\":\"/kb/1242/tailscale-serve/#reset-tailscale-serve\",\"children\":[\"$\",\"code\",null,{\"children\":\"reset\"}]}],\" Resets the configuration\"]}],\"\\n\"]}],\"\\n\",[\"$\",\"p\",null,{\"children\":[\"For more information, refer to the \",[\"$\",\"$L16\",null,{\"href\":\"/kb/1242/tailscale-serve\",\"children\":[\"$\",\"code\",null,{\"children\":\"tailscale serve\"}]}],\" topic.\"]}],\"\\n\",[\"$\",\"$L2f3\",null,{\"id\":\"set\",\"children\":\"set\",\"level\":3}],\"\\n\",[\"$\",\"p\",null,{\"children\":\"Change specified preferences.\"}],\"\\n\",[\"$\",\"p\",null,{\"children\":[\"Unlike \",[\"$\",\"a\",null,{\"href\":\"#up\",\"children\":[\"$\",\"code\",null,{\"children\":\"tailscale up\"}]}],\", this command does not require the complete set of desired settings. It only updates the settings you explicitly set. There are no default values. Note that when using \",[\"$\",\"$L16\",null,{\"href\":\"/kb/1225/fast-user-switching\",\"children\":\"Fast User Switching\"}],\", changes made are only for the currently connected tailnet.\"]}],\"\\n\",[\"$\",\"div\",null,{\"className\":\"group relative overflow-hidden\",\"children\":[[\"$\",\"div\",null,{\"className\":\"absolute right-[5px] top-[21px] flex h-10 w-10 items-center justify-center rounded bg-grey-3 text-black opacity-0 transition-opacity duration-200 group-hover:opacity-100\",\"children\":[\"$\",\"$L2f5\",null,{\"text\":\"tailscale set [flags]\\n\"}]}],[\"$\",\"pre\",null,{\"className\":\"refractor language-shell\",\"children\":[\"$\",\"code\",null,{\"className\":\"language-shell\",\"children\":[\"tailscale \",[\"$\",\"span\",\"fract-0-1\",{\"className\":\"token builtin class-name\",\"children\":[\"set\"]}],\" \",[\"$\",\"span\",\"fract-0-3\",{\"className\":\"token punctuation\",\"children\":[\"[\"]}],\"flags\",[\"$\",\"span\",\"fract-0-5\",{\"className\":\"token punctuation\",\"children\":[\"]\"]}],\"\\n\"]}]}]]}],\"\\n\",[\"$\",\"p\",null,{\"children\":\"Available flags:\"}],\"\\n\",[\"$\",\"ul\",null,{\"children\":[\"\\n\",[\"$\",\"li\",null,{\"children\":[[\"$\",\"code\",null,{\"children\":\"--accept-dns\"}],\" Accept \",[\"$\",\"$L16\",null,{\"href\":\"/kb/1054/dns\",\"children\":\"DNS configuration\"}],\" from the admin console.\"]}],\"\\n\",[\"$\",\"li\",null,{\"children\":[[\"$\",\"code\",null,{\"children\":\"--accept-risk=\u003crisk\u003e\"}],\" Accept risk and skip confirmation for risk type. This can be either \",[\"$\",\"code\",null,{\"children\":\"lose-ssh\"}],\" or \",[\"$\",\"code\",null,{\"children\":\"all\"}],\", or an empty string to not accept risk.\"]}],\"\\n\",[\"$\",\"li\",null,{\"children\":[[\"$\",\"code\",null,{\"children\":\"--accept-routes\"}],\", \",[\"$\",\"code\",null,{\"children\":\"--accept-routes=false\"}],\" Accept \",[\"$\",\"$L16\",null,{\"href\":\"/kb/1019/subnets\",\"children\":\"subnet routes\"}],\" that other nodes advertise.\"]}],\"\\n\",[\"$\",\"li\",null,{\"children\":[[\"$\",\"code\",null,{\"children\":\"--advertise-exit-node\"}],\", \",[\"$\",\"code\",null,{\"children\":\"--advertise-exit-node=false\"}],\" Offer to be an exit node for internet traffic for the tailnet.\"]}],\"\\n\",[\"$\",\"li\",null,{\"children\":[[\"$\",\"code\",null,{\"children\":\"--advertise-routes=\u003cip\u003e\"}],\" Expose physical \",[\"$\",\"$L16\",null,{\"href\":\"/kb/1019/subnets\",\"children\":\"subnet routes\"}],\" to your entire Tailscale network. This is a comma-separated string, such as \\\"10.0.0.0/8,192.168.0.0/24\\\"), or an empty string to not advertise routes.\"]}],\"\\n\",[\"$\",\"li\",null,{\"children\":[[\"$\",\"code\",null,{\"children\":\"--auto-update\"}],\", \",[\"$\",\"code\",null,{\"children\":\"--auto-update=false\"}],\" Enable or disable \",[\"$\",\"$L16\",null,{\"href\":\"/kb/1067/update/#auto-updates\",\"children\":\"auto-updates\"}],\" for the client.\"]}],\"\\n\",[\"$\",\"li\",null,{\"children\":[[\"$\",\"code\",null,{\"children\":\"--exit-node \u003cip|name\u003e\"}],\" A \",[\"$\",\"$L16\",null,{\"href\":\"/kb/1033/ip-and-dns-addresses\",\"children\":\"Tailscale IP\"}],\" or \",[\"$\",\"$L16\",null,{\"href\":\"/kb/1098/machine-names\",\"children\":\"machine name\"}],\" to use as an exit node, or an empty string to not use an exit node.\"]}],\"\\n\",[\"$\",\"li\",null,{\"children\":[[\"$\",\"code\",null,{\"children\":\"--exit-node-allow-lan-access\"}],\", \",[\"$\",\"code\",null,{\"children\":\"--exit-node-allow-lan-access=false\"}],\" Allow the client node access to its own LAN while connected to an exit node.\"]}],\"\\n\",[\"$\",\"li\",null,{\"children\":[[\"$\",\"code\",null,{\"children\":\"--hostname=\u003cname\u003e\"}],\" Hostname to use for the device instead of the one provided by the OS. Note that this will change the machine name used in \",[\"$\",\"$L16\",null,{\"href\":\"/kb/1081/magicdns\",\"children\":\"MagicDNS\"}],\".\"]}],\"\\n\",[\"$\",\"li\",null,{\"children\":[[\"$\",\"code\",null,{\"children\":\"--nickname=\u003cname\u003e\"}],\" \",[\"$\",\"$L16\",null,{\"href\":\"/kb/1225/fast-user-switching/#setting-a-nickname\",\"children\":\"Nickname\"}],\" for the current account.\"]}],\"\\n\",[\"$\",\"li\",null,{\"children\":[[\"$\",\"code\",null,{\"children\":\"--operator=\u003cuser\u003e\"}],\" A Unix username other than \",[\"$\",\"code\",null,{\"children\":\"root\"}],\" to operate \",[\"$\",\"code\",null,{\"children\":\"tailscaled\"}],\".\"]}],\"\\n\",[\"$\",\"li\",null,{\"children\":[[\"$\",\"code\",null,{\"children\":\"--shields-up\"}],\", \",[\"$\",\"code\",null,{\"children\":\"--shields-up=false\"}],\" \",[\"$\",\"$L16\",null,{\"href\":\"/kb/1072/client-preferences\",\"children\":\"Block incoming connections\"}],\" from other devices on your Tailscale network.\\nUseful for personal devices that only make outgoing connections.\"]}],\"\\n\",[\"$\",\"li\",null,{\"children\":[[\"$\",\"code\",null,{\"children\":\"--ssh\"}],\", \",[\"$\",\"code\",null,{\"children\":\"--ssh=false\"}],\" Run a \",[\"$\",\"$L16\",null,{\"href\":\"/kb/1193/tailscale-ssh\",\"children\":\"Tailscale SSH\"}],\" server, permitting access per the tailnet admin's declared\\n\",[\"$\",\"$L16\",null,{\"href\":\"/kb/1018/acls\",\"children\":\"access policy\"}],\", or the \",[\"$\",\"$L16\",null,{\"href\":\"/kb/1192/acl-samples/#allow-all-default-acl\",\"children\":\"default policy\"}],\" if none is defined.\"]}],\"\\n\",[\"$\",\"li\",null,{\"children\":[[\"$\",\"code\",null,{\"children\":\"--webclient\"}],\", \",[\"$\",\"code\",null,{\"children\":\"--webclient=false\"}],\" Expose the \",[\"$\",\"$L16\",null,{\"href\":\"/kb/1325/device-web-interface\",\"children\":\"web interface\"}],\" to your tailnet persistently in the background on port \",[\"$\",\"code\",null,{\"children\":\":5252.\"}]]}],\"\\n\"]}],\"\\n\",[\"$\",\"$L2f3\",null,{\"id\":\"ssh\",\"children\":\"ssh\",\"level\":3}],\"\\n\",[\"$\",\"p\",null,{\"children\":[\"Establish a \",[\"$\",\"$L16\",null,{\"href\":\"/kb/1193/tailscale-ssh\",\"children\":\"Tailscale SSH\"}],\" session to a Tailscale machine.\"]}],\"\\n\",[\"$\",\"p\",null,{\"children\":[\"You can often use the regular \",[\"$\",\"code\",null,{\"children\":\"ssh\"}],\" command or another SSH client to make an SSH session to a Tailscale machine. However, when your local node is in \",[\"$\",\"$L16\",null,{\"href\":\"/kb/1177/kernel-vs-userspace-routers/#userspace-netstack-mode\",\"children\":\"userspace-networking\"}],\" mode and can't make a direct connection, use \",[\"$\",\"code\",null,{\"children\":\"tailscale ssh\"}],\". This sets up an SSH \",[\"$\",\"code\",null,{\"children\":\"ProxyCommand\"}],\" to connect through the local \",[\"$\",\"code\",null,{\"children\":\"tailscaled\"}],\" daemon. You can also use \",[\"$\",\"code\",null,{\"children\":\"tailscale ssh\"}],\" when your local node is in \",[\"$\",\"$L16\",null,{\"href\":\"/kb/1177/kernel-vs-userspace-routers/#kernel-mode\",\"children\":\"kernel\"}],\" mode.\"]}],\"\\n\",[\"$\",\"p\",null,{\"children\":[\"The \",[\"$\",\"code\",null,{\"children\":\"tailscale ssh\"}],\" command automatically checks the destination server's SSH host key against the node's SSH host key as advertised via the Tailscale coordination server.\"]}],\"\\n\",[\"$\",\"div\",null,{\"className\":\"group relative overflow-hidden\",\"children\":[[\"$\",\"div\",null,{\"className\":\"absolute right-[5px] top-[21px] flex h-10 w-10 items-center justify-center rounded bg-grey-3 text-black opacity-0 transition-opacity duration-200 group-hover:opacity-100\",\"children\":[\"$\",\"$L2f5\",null,{\"text\":\"tailscale ssh \u003cargs\u003e\\n\"}]}],[\"$\",\"pre\",null,{\"className\":\"refractor language-shell\",\"children\":[\"$\",\"code\",null,{\"className\":\"language-shell\",\"children\":[\"tailscale \",[\"$\",\"span\",\"fract-0-1\",{\"className\":\"token function\",\"children\":[\"ssh\"]}],\" \",[\"$\",\"span\",\"fract-0-3\",{\"className\":\"token operator\",\"children\":[\"\u003c\"]}],\"args\",[\"$\",\"span\",\"fract-0-5\",{\"className\":\"token operator\",\"children\":[\"\u003e\"]}],\"\\n\"]}]}]]}],\"\\n\",[\"$\",\"p\",null,{\"children\":[[\"$\",\"code\",null,{\"children\":\"\u003cargs\u003e\"}],\" is one of the following forms:\"]}],\"\\n\",[\"$\",\"ul\",null,{\"children\":[\"\\n\",[\"$\",\"li\",null,{\"children\":[[\"$\",\"code\",null,{\"children\":\"host\"}],\" The destination server. An interactive session will prompt you for the user name to use for the session.\"]}],\"\\n\",[\"$\",\"li\",null,{\"children\":[[\"$\",\"code\",null,{\"children\":\"user@host\"}],\" The user name for the session and the destination server.\"]}],\"\\n\"]}],\"\\n\",[\"$\",\"p\",null,{\"children\":[\"For both forms, \",[\"$\",\"code\",null,{\"children\":\"host\"}],\" can be the destination server's \",[\"$\",\"$L16\",null,{\"href\":\"/kb/1081/magicdns\",\"children\":\"MagicDNS\"}],\" name (even if \",[\"$\",\"code\",null,{\"children\":\"--accept-dns=false\"}],\" was set on the local node) or the destination server's \",[\"$\",\"$L16\",null,{\"href\":\"/kb/1033/ip-and-dns-addresses\",\"children\":\"Tailscale IP address\"}],\".\"]}],\"\\n\",[\"$\",\"div\",null,{\"className\":\"note border-grey-200 relative mt-4 rounded border border-solid pb-2 pl-9 pr-3 pt-3 text-base leading-normal tracking-tight md:text-sm\",\"children\":[[\"$\",\"span\",null,{\"className\":\"absolute left-3 top-3 inline-block h-[18px] w-[18px]\",\"children\":[\"$\",\"svg\",null,{\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":\"18px\",\"height\":\"18px\",\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"children\":[[\"$\",\"circle\",null,{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"}],[\"$\",\"line\",null,{\"x1\":\"12\",\"y1\":\"16\",\"x2\":\"12\",\"y2\":\"12\"}],[\"$\",\"line\",null,{\"x1\":\"12\",\"y1\":\"8\",\"x2\":\"12.01\",\"y2\":\"8\"}]]}]}],[\"$\",\"p\",null,{\"children\":[[\"$\",\"code\",null,{\"children\":\"tailscale ssh\"}],\" is not available on sandboxed macOS builds—use the regular \",[\"$\",\"code\",null,{\"children\":\"ssh\"}],\" client instead.\"]}]]}],\"\\n\",[\"$\",\"$L2f3\",null,{\"id\":\"status\",\"children\":\"status\",\"level\":3}],\"\\n\",[\"$\",\"p\",null,{\"children\":\"Get the status of your connections to other Tailscale devices.\"}],\"\\n\",[\"$\",\"div\",null,{\"className\":\"group relative overflow-hidden\",\"children\":[[\"$\",\"div\",null,{\"className\":\"absolute right-[5px] top-[21px] flex h-10 w-10 items-center justify-center rounded bg-grey-3 text-black opacity-0 transition-opacity duration-200 group-hover:opacity-100\",\"children\":[\"$\",\"$L2f5\",null,{\"text\":\"tailscale status\\n\"}]}],[\"$\",\"pre\",null,{\"className\":\"refractor language-shell\",\"children\":[\"$\",\"code\",null,{\"className\":\"language-shell\",\"children\":[\"tailscale status\\n\"]}]}]]}],\"\\n\",[\"$\",\"p\",null,{\"children\":\"This command returns a table of information like so:\"}],\"\\n\",[\"$\",\"div\",null,{\"className\":\"group relative overflow-hidden\",\"children\":[[\"$\",\"div\",null,{\"className\":\"absolute right-[5px] top-[21px] flex h-10 w-10 items-center justify-center rounded bg-grey-3 text-black opacity-0 transition-opacity duration-200 group-hover:opacity-100\",\"children\":[\"$\",\"$L2f5\",null,{\"text\":\"1 2 3 4 5\\n100.1.2.3 device-a apenwarr@ linux active; direct \u003cip-port\u003e, tx 1116 rx 1124\\n100.4.5.6 device-b crawshaw@ macOS active; relay \u003crelay-server\u003e, tx 1351 rx 4262\\n100.7.8.9 device-c danderson@ windows idle; tx 1214 rx 50\\n100.0.1.2 device-d ross@ iOS —\\n\"}]}],[\"$\",\"pre\",null,{\"className\":\"refractor language-markup\",\"children\":[\"$\",\"code\",null,{\"className\":\"language-markup\",\"children\":[\"1 2 3 4 5\\n100.1.2.3 device-a apenwarr@ linux active; direct \",[\"$\",\"span\",\"fract-0-1\",{\"className\":\"token tag\",\"children\":[[\"$\",\"span\",\"fract-1-0\",{\"className\":\"token tag\",\"children\":[[\"$\",\"span\",\"fract-2-0\",{\"className\":\"token punctuation\",\"children\":[\"\u003c\"]}],\"ip-port\"]}],[\"$\",\"span\",\"fract-1-1\",{\"className\":\"token punctuation\",\"children\":[\"\u003e\"]}]]}],\", tx 1116 rx 1124\\n100.4.5.6 device-b crawshaw@ macOS active; relay \",[\"$\",\"span\",\"fract-0-3\",{\"className\":\"token tag\",\"children\":[[\"$\",\"span\",\"fract-1-0\",{\"className\":\"token tag\",\"children\":[[\"$\",\"span\",\"fract-2-0\",{\"className\":\"token punctuation\",\"children\":[\"\u003c\"]}],\"relay-server\"]}],[\"$\",\"span\",\"fract-1-1\",{\"className\":\"token punctuation\",\"children\":[\"\u003e\"]}]]}],\", tx 1351 rx 4262\\n100.7.8.9 device-c danderson@ windows idle; tx 1214 rx 50\\n100.0.1.2 device-d ross@ iOS —\\n\"]}]}]]}],\"\\n\",[\"$\",\"p\",null,{\"children\":\"From left-to-right, these columns represent:\"}],\"\\n\",[\"$\",\"ul\",null,{\"children\":[\"\\n\",[\"$\",\"li\",null,{\"children\":[\"Column 1 is a \",[\"$\",\"$L16\",null,{\"href\":\"/kb/1015/100.x-addresses\",\"children\":[\"$\",\"strong\",null,{\"children\":\"Tailscale IP\"}]}],\", which you can use to connect to the device.\"]}],\"\\n\",[\"$\",\"li\",null,{\"children\":[\"Column 2 is the \",[\"$\",\"$L16\",null,{\"href\":\"/kb/1098/machine-names\",\"children\":[\"$\",\"strong\",null,{\"children\":\"machine name\"}]}],\" of the device. If you use \",[\"$\",\"$L16\",null,{\"href\":\"/kb/1081/magicdns\",\"children\":\"MagicDNS\"}],\", you can also use this name to connect.\"]}],\"\\n\",[\"$\",\"li\",null,{\"children\":[\"Column 3 is the \",[\"$\",\"strong\",null,{\"children\":\"email address\"}],\" for the owner of the device.\"]}],\"\\n\",[\"$\",\"li\",null,{\"children\":[\"Column 4 is the \",[\"$\",\"strong\",null,{\"children\":\"device OS\"}],\".\"]}],\"\\n\",[\"$\",\"li\",null,{\"children\":[\"Column 5 shows the current \",[\"$\",\"strong\",null,{\"children\":\"connection status\"}],\".\"]}],\"\\n\"]}],\"\\n\",[\"$\",\"p\",null,{\"children\":\"Connection status (column 5) is shown using three terms:\"}],\"\\n\",[\"$\",\"ul\",null,{\"children\":[\"\\n\",[\"$\",\"li\",null,{\"children\":[[\"$\",\"code\",null,{\"children\":\"active\"}],\" means traffic is currently being sent/received from this device. You'll also see either (a) \\\"direct\\\" for peer-to-peer connections, along with the IP address used to connect or (b) \\\"relay\\\" for connections using a \",[\"$\",\"$L16\",null,{\"href\":\"/kb/1232/derp-servers\",\"children\":\"relay server\"}],\" along with a city code (nyc, fra, tok, syd) for the respective location.\"]}],\"\\n\",[\"$\",\"li\",null,{\"children\":[[\"$\",\"code\",null,{\"children\":\"idle\"}],\" means traffic is not currently being sent/received from this device.\"]}],\"\\n\",[\"$\",\"li\",null,{\"children\":[[\"$\",\"code\",null,{\"children\":\"–\"}],\" means no traffic has ever been sent/received from this device.\"]}],\"\\n\"]}],\"\\n\",[\"$\",\"p\",null,{\"children\":[[\"$\",\"code\",null,{\"children\":\"active\"}],\" and \",[\"$\",\"code\",null,{\"children\":\"idle\"}],\" connection statuses will also include tx/rx values indicating the number of bytes sent (tx) and received (rx) from this device.\"]}],\"\\n\",[\"$\",\"p\",null,{\"children\":[\"You can filter this list to only active connections by running \",[\"$\",\"code\",null,{\"children\":\"tailscale status --active\"}],\".\"]}],\"\\n\",[\"$\",\"p\",null,{\"children\":[\"Running \",[\"$\",\"code\",null,{\"children\":\"tailscale status\"}],\" with the \",[\"$\",\"code\",null,{\"children\":\"--json\"}],\" flag returns a machine-readable JSON response.\"]}],\"\\n\",[\"$\",\"div\",null,{\"className\":\"group relative overflow-hidden\",\"children\":[[\"$\",\"div\",null,{\"className\":\"absolute right-[5px] top-[21px] flex h-10 w-10 items-center justify-center rounded bg-grey-3 text-black opacity-0 transition-opacity duration-200 group-hover:opacity-100\",\"children\":[\"$\",\"$L2f5\",null,{\"text\":\"tailscale status --json\\n\"}]}],[\"$\",\"pre\",null,{\"className\":\"refractor language-shell\",\"children\":[\"$\",\"code\",null,{\"className\":\"language-shell\",\"children\":[\"tailscale status --json\\n\"]}]}]]}],\"\\n\",[\"$\",\"p\",null,{\"children\":[\"Combine this with \",[\"$\",\"a\",null,{\"href\":\"https://stedolan.github.io/jq\",\"children\":[\"$\",\"code\",null,{\"children\":\"jq\"}]}],\" to automate data collection about your network. For example, the following command counts and sorts the relay servers your Tailscale peers are connected to.\"]}],\"\\n\",[\"$\",\"div\",null,{\"className\":\"group relative overflow-hidden\",\"children\":[[\"$\",\"div\",null,{\"className\":\"absolute right-[5px] top-[21px] flex h-10 w-10 items-center justify-center rounded bg-grey-3 text-black opacity-0 transition-opacity duration-200 group-hover:opacity-100\",\"children\":[\"$\",\"$L2f5\",null,{\"text\":\"tailscale status --json | jq -r '.Peer[].Relay | select(.!=\\\"\\\")' | sort | uniq -c | sort -nr\\n\"}]}],[\"$\",\"pre\",null,{\"className\":\"refractor language-shell\",\"children\":[\"$\",\"code\",null,{\"className\":\"language-shell\",\"children\":[\"tailscale status --json \",[\"$\",\"span\",\"fract-0-1\",{\"className\":\"token operator\",\"children\":[\"|\"]}],\" jq -r \",[\"$\",\"span\",\"fract-0-3\",{\"className\":\"token string\",\"children\":[\"'.Peer[].Relay | select(.!=\\\"\\\")'\"]}],\" \",[\"$\",\"span\",\"fract-0-5\",{\"className\":\"token operator\",\"children\":[\"|\"]}],\" \",[\"$\",\"span\",\"fract-0-7\",{\"className\":\"token function\",\"children\":[\"sort\"]}],\" \",[\"$\",\"span\",\"fract-0-9\",{\"className\":\"token operator\",\"children\":[\"|\"]}],\" \",[\"$\",\"span\",\"fract-0-11\",{\"className\":\"token function\",\"children\":[\"uniq\"]}],\" -c \",[\"$\",\"span\",\"fract-0-13\",{\"className\":\"token operator\",\"children\":[\"|\"]}],\" \",[\"$\",\"span\",\"fract-0-15\",{\"className\":\"token function\",\"children\":[\"sort\"]}],\" -nr\\n\"]}]}]]}],\"\\n\",[\"$\",\"$L2f3\",null,{\"id\":\"switch\",\"children\":\"switch\",\"level\":3}],\"\\n\",[\"$\",\"p\",null,{\"children\":[\"Switch to a different Tailscale account. For more information about switching accounts, refer to \",[\"$\",\"$L16\",null,{\"href\":\"/kb/1225/fast-user-switching\",\"children\":\"fast-user-switching\"}],\".\"]}],\"\\n\",[\"$\",\"div\",null,{\"className\":\"group relative overflow-hidden\",\"children\":[[\"$\",\"div\",null,{\"className\":\"absolute right-[5px] top-[21px] flex h-10 w-10 items-center justify-center rounded bg-grey-3 text-black opacity-0 transition-opacity duration-200 group-hover:opacity-100\",\"children\":[\"$\",\"$L2f5\",null,{\"text\":\"tailscale switch \u003caccount\u003e [flags]\\n\"}]}],[\"$\",\"pre\",null,{\"className\":\"refractor language-shell\",\"children\":[\"$\",\"code\",null,{\"className\":\"language-shell\",\"children\":[\"tailscale switch \",[\"$\",\"span\",\"fract-0-1\",{\"className\":\"token operator\",\"children\":[\"\u003c\"]}],\"account\",[\"$\",\"span\",\"fract-0-3\",{\"className\":\"token operator\",\"children\":[\"\u003e\"]}],\" \",[\"$\",\"span\",\"fract-0-5\",{\"className\":\"token punctuation\",\"children\":[\"[\"]}],\"flags\",[\"$\",\"span\",\"fract-0-7\",{\"className\":\"token punctuation\",\"children\":[\"]\"]}],\"\\n\"]}]}]]}],\"\\n\",[\"$\",\"p\",null,{\"children\":\"Examples:\"}],\"\\n\",[\"$\",\"ul\",null,{\"children\":[\"\\n\",[\"$\",\"li\",null,{\"children\":[\"\\n\",[\"$\",\"p\",null,{\"children\":[\"To switch to the \",[\"$\",\"a\",null,{\"href\":\"mailto:alice@example.com\",\"children\":\"alice@example.com\"}],\" account:\"]}],\"\\n\",[\"$\",\"div\",null,{\"className\":\"group relative overflow-hidden\",\"children\":[[\"$\",\"div\",null,{\"className\":\"absolute right-[5px] top-[21px] flex h-10 w-10 items-center justify-center rounded bg-grey-3 text-black opacity-0 transition-opacity duration-200 group-hover:opacity-100\",\"children\":[\"$\",\"$L2f5\",null,{\"text\":\"tailscale switch alice@example.com\\n\"}]}],[\"$\",\"pre\",null,{\"className\":\"refractor language-shell\",\"children\":[\"$\",\"code\",null,{\"className\":\"language-shell\",\"children\":[\"tailscale switch alice@example.com\\n\"]}]}]]}],\"\\n\"]}],\"\\n\",[\"$\",\"li\",null,{\"children\":[\"\\n\",[\"$\",\"p\",null,{\"children\":[\"To switch to the account that has the \",[\"$\",\"$L16\",null,{\"href\":\"/kb/1225/fast-user-switching/#setting-a-nickname\",\"children\":\"nickname\"}],\" \\\"work\\\":\"]}],\"\\n\",[\"$\",\"div\",null,{\"className\":\"group relative overflow-hidden\",\"children\":[[\"$\",\"div\",null,{\"className\":\"absolute right-[5px] top-[21px] flex h-10 w-10 items-center justify-center rounded bg-grey-3 text-black opacity-0 transition-opacity duration-200 group-hover:opacity-100\",\"children\":[\"$\",\"$L2f5\",null,{\"text\":\"tailscale switch work\\n\"}]}],[\"$\",\"pre\",null,{\"className\":\"refractor language-shell\",\"children\":[\"$\",\"code\",null,{\"className\":\"language-shell\",\"children\":[\"tailscale switch work\\n\"]}]}]]}],\"\\n\"]}],\"\\n\"]}],\"\\n\",[\"$\",\"p\",null,{\"children\":\"Available flags:\"}],\"\\n\",[\"$\",\"ul\",null,{\"children\":[\"\\n\",[\"$\",\"li\",null,{\"children\":[[\"$\",\"code\",null,{\"children\":\"--list\"}],\" Lists available accounts.\"]}],\"\\n\"]}],\"\\n\",[\"$\",\"$L2f3\",null,{\"id\":\"syspolicy\",\"children\":\"syspolicy\",\"level\":3}],\"\\n\",[\"$\",\"p\",null,{\"children\":[\"List system policies, reload system policies, or view errors related to the \",[\"$\",\"$L16\",null,{\"href\":\"/kb/1315/mdm-keys\",\"children\":\"system policies\"}],\" configured in your tailnet.\"]}],\"\\n\",[\"$\",\"div\",null,{\"className\":\"group relative overflow-hidden\",\"children\":[[\"$\",\"div\",null,{\"className\":\"absolute right-[5px] top-[21px] flex h-10 w-10 items-center justify-center rounded bg-grey-3 text-black opacity-0 transition-opacity duration-200 group-hover:opacity-100\",\"children\":[\"$\",\"$L2f5\",null,{\"text\":\"tailscale syspolicy\\n\"}]}],[\"$\",\"pre\",null,{\"className\":\"refractor language-shell\",\"children\":[\"$\",\"code\",null,{\"className\":\"language-shell\",\"children\":[\"tailscale syspolicy\\n\"]}]}]]}],\"\\n\",[\"$\",\"p\",null,{\"children\":\"Subcommands:\"}],\"\\n\",[\"$\",\"ul\",null,{\"children\":[\"\\n\",[\"$\",\"li\",null,{\"children\":[[\"$\",\"code\",null,{\"children\":\"list\"}],\" Shows system policies, reload system policies, or view errors related to the \",[\"$\",\"$L16\",null,{\"href\":\"/kb/1315/mdm-keys\",\"children\":\"system policies\"}],\" configured on the device.\"]}],\"\\n\",[\"$\",\"li\",null,{\"children\":[[\"$\",\"code\",null,{\"children\":\"reload\"}],\" Forces the Tailscale client to reload and reapply system policy settings on the device.\"]}],\"\\n\"]}],\"\\n\",[\"$\",\"p\",null,{\"children\":\"Available flags:\"}],\"\\n\",[\"$\",\"ul\",null,{\"children\":[\"\\n\",[\"$\",\"li\",null,{\"children\":[[\"$\",\"code\",null,{\"children\":\"-json\"}],\" Return a machine-readable JSON response.\"]}],\"\\n\"]}],\"\\n\",[\"$\",\"$L2f3\",null,{\"id\":\"update\",\"children\":\"update\",\"level\":3}],\"\\n\",[\"$\",\"div\",null,{\"className\":\"note border-grey-200 relative mt-4 rounded border border-solid pb-2 pl-9 pr-3 pt-3 text-base leading-normal tracking-tight md:text-sm\",\"children\":[[\"$\",\"span\",null,{\"className\":\"absolute left-3 top-3 inline-block h-[18px] w-[18px]\",\"children\":[\"$\",\"svg\",null,{\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":\"18px\",\"height\":\"18px\",\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"children\":[[\"$\",\"circle\",null,{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"}],[\"$\",\"line\",null,{\"x1\":\"12\",\"y1\":\"16\",\"x2\":\"12\",\"y2\":\"12\"}],[\"$\",\"line\",null,{\"x1\":\"12\",\"y1\":\"8\",\"x2\":\"12.01\",\"y2\":\"8\"}]]}]}],[\"$\",\"p\",null,{\"children\":[\"The \",[\"$\",\"code\",null,{\"children\":\"update\"}],\" command is available in Tailscale v1.36 or later for Windows and Ubuntu/Debian Linux, in v1.48.0 or later for the Mac Apple Store version and Synology, and in v1.54.0 or later for QNAP and the \",[\"$\",\"a\",null,{\"href\":\"/kb/1065/macos-variants/\",\"children\":\"Standalone variant of the macOS application\"}],\". If you don't see this command and you are running one of these operating systems, consider \",[\"$\",\"a\",null,{\"href\":\"/kb/1067/update/\",\"children\":\"updating your Tailscale client\"}],\".\"]}]]}],\"\\n\",[\"$\",\"p\",null,{\"children\":\"Update the Tailscale client version to the latest version, or to a different version.\"}],\"\\n\",[\"$\",\"div\",null,{\"className\":\"group relative overflow-hidden\",\"children\":[[\"$\",\"div\",null,{\"className\":\"absolute right-[5px] top-[21px] flex h-10 w-10 items-center justify-center rounded bg-grey-3 text-black opacity-0 transition-opacity duration-200 group-hover:opacity-100\",\"children\":[\"$\",\"$L2f5\",null,{\"text\":\"tailscale update [flags]\\n\"}]}],[\"$\",\"pre\",null,{\"className\":\"refractor language-shell\",\"children\":[\"$\",\"code\",null,{\"className\":\"language-shell\",\"children\":[\"tailscale update \",[\"$\",\"span\",\"fract-0-1\",{\"className\":\"token punctuation\",\"children\":[\"[\"]}],\"flags\",[\"$\",\"span\",\"fract-0-3\",{\"className\":\"token punctuation\",\"children\":[\"]\"]}],\"\\n\"]}]}]]}],\"\\n\",[\"$\",\"p\",null,{\"children\":\"Available flags:\"}],\"\\n\",[\"$\",\"ul\",null,{\"children\":[\"\\n\",[\"$\",\"li\",null,{\"children\":[[\"$\",\"code\",null,{\"children\":\"--dry-run\"}],\" Show what update would do, without performing the update and without prompting to start the update.\"]}],\"\\n\",[\"$\",\"li\",null,{\"children\":[[\"$\",\"code\",null,{\"children\":\"--track\"}],\" The track to check for updates, either \\\"stable\\\" or \",[\"$\",\"$L16\",null,{\"href\":\"/kb/1083/install-unstable\",\"children\":\"\\\"unstable\\\"\"}],\". If not specified, the update uses the track currently in effect for the client.\"]}],\"\\n\",[\"$\",\"li\",null,{\"children\":[[\"$\",\"code\",null,{\"children\":\"--version\"}],\" An explicit version to use for the update or downgrade. You cannot specify both \",[\"$\",\"code\",null,{\"children\":\"--track\"}],\" and \",[\"$\",\"code\",null,{\"children\":\"--version\"}],\".\"]}],\"\\n\",[\"$\",\"li\",null,{\"children\":[[\"$\",\"code\",null,{\"children\":\"--yes\"}],\" Perform the update without interactive prompts. Defaults to false.\"]}],\"\\n\"]}],\"\\n\",[\"$\",\"p\",null,{\"children\":[\"If you downgrade to a version that does not have the \",[\"$\",\"code\",null,{\"children\":\"tailscale update\"}],\" functionality, you won't be able to run \",[\"$\",\"code\",null,{\"children\":\"tailscale update\"}],\" to return to the prior version. You would need to \",[\"$\",\"$L16\",null,{\"href\":\"/kb/1067/update\",\"children\":\"perform an update\"}],\" without using the Tailscale CLI.\"]}],\"\\n\",[\"$\",\"p\",null,{\"children\":[\"To determine the current version on a client, run \",[\"$\",\"a\",null,{\"href\":\"#version\",\"children\":[\"$\",\"code\",null,{\"children\":\"tailscale version\"}]}],\".\"]}],\"\\n\",[\"$\",\"p\",null,{\"children\":\"Examples:\"}],\"\\n\",[\"$\",\"p\",null,{\"children\":\"Update to the latest version within your current track (stable or unstable, depending on what you're running):\"}],\"\\n\",[\"$\",\"div\",null,{\"className\":\"group relative overflow-hidden\",\"children\":[[\"$\",\"div\",null,{\"className\":\"absolute right-[5px] top-[21px] flex h-10 w-10 items-center justify-center rounded bg-grey-3 text-black opacity-0 transition-opacity duration-200 group-hover:opacity-100\",\"children\":[\"$\",\"$L2f5\",null,{\"text\":\"tailscale update\\n\"}]}],[\"$\",\"pre\",null,{\"className\":\"refractor language-shell\",\"children\":[\"$\",\"code\",null,{\"className\":\"language-shell\",\"children\":[\"tailscale update\\n\"]}]}]]}],\"\\n\",[\"$\",\"p\",null,{\"children\":\"Update to the latest version within your current track without using interactive prompts:\"}],\"\\n\",[\"$\",\"div\",null,{\"className\":\"group relative overflow-hidden\",\"children\":[[\"$\",\"div\",null,{\"className\":\"absolute right-[5px] top-[21px] flex h-10 w-10 items-center justify-center rounded bg-grey-3 text-black opacity-0 transition-opacity duration-200 group-hover:opacity-100\",\"children\":[\"$\",\"$L2f5\",null,{\"text\":\"tailscale update --yes\\n\"}]}],[\"$\",\"pre\",null,{\"className\":\"refractor language-shell\",\"children\":[\"$\",\"code\",null,{\"className\":\"language-shell\",\"children\":[\"tailscale update --yes\\n\"]}]}]]}],\"\\n\",[\"$\",\"p\",null,{\"children\":\"Update to Tailscale v1.34:\"}],\"\\n\",[\"$\",\"div\",null,{\"className\":\"group relative overflow-hidden\",\"children\":[[\"$\",\"div\",null,{\"className\":\"absolute right-[5px] top-[21px] flex h-10 w-10 items-center justify-center rounded bg-grey-3 text-black opacity-0 transition-opacity duration-200 group-hover:opacity-100\",\"children\":[\"$\",\"$L2f5\",null,{\"text\":\"tailscale update --version=1.34.0\\n\"}]}],[\"$\",\"pre\",null,{\"className\":\"refractor language-shell\",\"children\":[\"$\",\"code\",null,{\"className\":\"language-shell\",\"children\":[\"tailscale update --version\",[\"$\",\"span\",\"fract-0-1\",{\"className\":\"token operator\",\"children\":[\"=\"]}],[\"$\",\"span\",\"fract-0-2\",{\"className\":\"token number\",\"children\":[\"1.34\"]}],\".0\\n\"]}]}]]}],\"\\n\",[\"$\",\"p\",null,{\"children\":\"Update to the latest unstable version:\"}],\"\\n\",[\"$\",\"div\",null,{\"className\":\"group relative overflow-hidden\",\"children\":[[\"$\",\"div\",null,{\"className\":\"absolute right-[5px] top-[21px] flex h-10 w-10 items-center justify-center rounded bg-grey-3 text-black opacity-0 transition-opacity duration-200 group-hover:opacity-100\",\"children\":[\"$\",\"$L2f5\",null,{\"text\":\"tailscale update --track=unstable\\n\"}]}],[\"$\",\"pre\",null,{\"className\":\"refractor language-shell\",\"children\":[\"$\",\"code\",null,{\"className\":\"language-shell\",\"children\":[\"tailscale update --track\",[\"$\",\"span\",\"fract-0-1\",{\"className\":\"token operator\",\"children\":[\"=\"]}],\"unstable\\n\"]}]}]]}],\"\\n\",[\"$\",\"$L2f3\",null,{\"id\":\"web\",\"children\":\"web\",\"level\":3}],\"\\n\",[\"$\",\"p\",null,{\"children\":[\"Start a web server for controlling the \",[\"$\",\"code\",null,{\"children\":\"tailscaled\"}],\" daemon. Starting a web server is useful when the CLI or a native app is impractical (such as on NAS devices).\"]}],\"\\n\",[\"$\",\"div\",null,{\"className\":\"group relative overflow-hidden\",\"children\":[[\"$\",\"div\",null,{\"className\":\"absolute right-[5px] top-[21px] flex h-10 w-10 items-center justify-center rounded bg-grey-3 text-black opacity-0 transition-opacity duration-200 group-hover:opacity-100\",\"children\":[\"$\",\"$L2f5\",null,{\"text\":\"tailscale web [flags]\\n\"}]}],[\"$\",\"pre\",null,{\"className\":\"refractor language-shell\",\"children\":[\"$\",\"code\",null,{\"className\":\"language-shell\",\"children\":[\"tailscale web \",[\"$\",\"span\",\"fract-0-1\",{\"className\":\"token punctuation\",\"children\":[\"[\"]}],\"flags\",[\"$\",\"span\",\"fract-0-3\",{\"className\":\"token punctuation\",\"children\":[\"]\"]}],\"\\n\"]}]}]]}],\"\\n\",[\"$\",\"p\",null,{\"children\":\"Available flags:\"}],\"\\n\",[\"$\",\"ul\",null,{\"children\":[\"\\n\",[\"$\",\"li\",null,{\"children\":[[\"$\",\"code\",null,{\"children\":\"--cgi=\u003ctrue|false\u003e\"}],\" Run the web server as a CGI script. Defaults to false.\"]}],\"\\n\",[\"$\",\"li\",null,{\"children\":[[\"$\",\"code\",null,{\"children\":\"--listen=\u003cip|name\u003e\"}],\" Set the listen address. Use port \",[\"$\",\"code\",null,{\"children\":\"0\"}],\" for automatic. Defaults to \",[\"$\",\"code\",null,{\"children\":\"localhost:8088\"}],\".\"]}],\"\\n\",[\"$\",\"li\",null,{\"children\":[[\"$\",\"code\",null,{\"children\":\"--prefix=\u003cstring\u003e\"}],\" Set the URL prefix added to requests (for CGI or reverse proxies)\"]}],\"\\n\",[\"$\",\"li\",null,{\"children\":[[\"$\",\"code\",null,{\"children\":\"--read-only\"}],\" Run the web server in read-only mode\"]}],\"\\n\"]}],\"\\n\",[\"$\",\"$L2f3\",null,{\"id\":\"whois\",\"children\":\"whois\",\"level\":3}],\"\\n\",[\"$\",\"p\",null,{\"children\":\"Get the machine and user associated with a Tailscale IP.\"}],\"\\n\",[\"$\",\"div\",null,{\"className\":\"group relative overflow-hidden\",\"children\":[[\"$\",\"div\",null,{\"className\":\"absolute right-[5px] top-[21px] flex h-10 w-10 items-center justify-center rounded bg-grey-3 text-black opacity-0 transition-opacity duration-200 group-hover:opacity-100\",\"children\":[\"$\",\"$L2f5\",null,{\"text\":\"tailscale whois ip[:port]\\n\"}]}],[\"$\",\"pre\",null,{\"className\":\"refractor language-shell\",\"children\":[\"$\",\"code\",null,{\"className\":\"language-shell\",\"children\":[\"tailscale whois ip\",[\"$\",\"span\",\"fract-0-1\",{\"className\":\"token punctuation\",\"children\":[\"[\"]}],\":port\",[\"$\",\"span\",\"fract-0-3\",{\"className\":\"token punctuation\",\"children\":[\"]\"]}],\"\\n\"]}]}]]}],\"\\n\",[\"$\",\"p\",null,{\"children\":\"For user devices, this command returns:\"}],\"\\n\",[\"$\",\"div\",null,{\"className\":\"group relative overflow-hidden\",\"children\":[[\"$\",\"div\",null,{\"className\":\"absolute right-[5px] top-[21px] flex h-10 w-10 items-center justify-center rounded bg-grey-3 text-black opacity-0 transition-opacity duration-200 group-hover:opacity-100\",\"children\":[\"$\",\"$L2f5\",null,{\"text\":\"Machine:\\n Name:\\n ID:\\n Addresses:\\n AllowedIPs:\\nUser:\\n Name:\\n ID:\\nCapabilities:\\n\"}]}],[\"$\",\"pre\",null,{\"className\":\"refractor language-markup\",\"children\":[\"$\",\"code\",null,{\"className\":\"language-markup\",\"children\":[\"Machine:\\n Name:\\n ID:\\n Addresses:\\n AllowedIPs:\\nUser:\\n Name:\\n ID:\\nCapabilities:\\n\"]}]}]]}],\"\\n\",[\"$\",\"p\",null,{\"children\":\"For devices that are tagged, this command returns:\"}],\"\\n\",[\"$\",\"div\",null,{\"className\":\"group relative overflow-hidden\",\"children\":[[\"$\",\"div\",null,{\"className\":\"absolute right-[5px] top-[21px] flex h-10 w-10 items-center justify-center rounded bg-grey-3 text-black opacity-0 transition-opacity duration-200 group-hover:opacity-100\",\"children\":[\"$\",\"$L2f5\",null,{\"text\":\"Machine:\\n Name:\\n ID:\\n Addresses:\\n AllowedIPs:\\n Tags:\\nCapabilities:\\n\"}]}],[\"$\",\"pre\",null,{\"className\":\"refractor language-markup\",\"children\":[\"$\",\"code\",null,{\"className\":\"language-markup\",\"children\":[\"Machine:\\n Name:\\n ID:\\n Addresses:\\n AllowedIPs:\\n Tags:\\nCapabilities:\\n\"]}]}]]}],\"\\n\",[\"$\",\"p\",null,{\"children\":\"For each of these fields:\"}],\"\\n\",[\"$\",\"ul\",null,{\"children\":[\"\\n\",[\"$\",\"li\",null,{\"children\":[[\"$\",\"code\",null,{\"children\":\"Machine\"}],\", \",[\"$\",\"code\",null,{\"children\":\"Name\"}],\" is the \",[\"$\",\"$L16\",null,{\"href\":\"/kb/1098/machine-names\",\"children\":\"machine name\"}],\" of the device. If you use \",[\"$\",\"$L16\",null,{\"href\":\"/kb/1081/magicdns\",\"children\":\"MagicDNS\"}],\", you can also use this name to connect.\"]}],\"\\n\",[\"$\",\"li\",null,{\"children\":[[\"$\",\"code\",null,{\"children\":\"Machine\"}],\", \",[\"$\",\"code\",null,{\"children\":\"ID\"}],\" is the \",[\"$\",\"$L16\",null,{\"href\":\"/kb/1155/terminology-and-concepts/#node\",\"children\":\"node id\"}],\" of the device.\"]}],\"\\n\",[\"$\",\"li\",null,{\"children\":[[\"$\",\"code\",null,{\"children\":\"Machine\"}],\", \",[\"$\",\"code\",null,{\"children\":\"Addresses\"}],\" are the \",[\"$\",\"$L16\",null,{\"href\":\"/kb/1015/100.x-addresses\",\"children\":\"Tailscale IP\"}],\", which you can use to connect to the device.\"]}],\"\\n\",[\"$\",\"li\",null,{\"children\":[[\"$\",\"code\",null,{\"children\":\"Machine\"}],\", \",[\"$\",\"code\",null,{\"children\":\"AllowedIPs\"}],\" are the subnet routes available to the device.\"]}],\"\\n\",[\"$\",\"li\",null,{\"children\":[[\"$\",\"code\",null,{\"children\":\"Machine\"}],\", \",[\"$\",\"code\",null,{\"children\":\"Tags\"}],\" are the tags to which the device belongs.\"]}],\"\\n\",[\"$\",\"li\",null,{\"children\":[[\"$\",\"code\",null,{\"children\":\"User\"}],\", \",[\"$\",\"code\",null,{\"children\":\"Name\"}],\" is the email address for the owner of the device.\"]}],\"\\n\",[\"$\",\"li\",null,{\"children\":[[\"$\",\"code\",null,{\"children\":\"User\"}],\", \",[\"$\",\"code\",null,{\"children\":\"ID\"}],\" is the unique ID of the user\"]}],\"\\n\",[\"$\",\"li\",null,{\"children\":[[\"$\",\"code\",null,{\"children\":\"Capabilities\"}],\" show the grants for the device.\"]}],\"\\n\"]}],\"\\n\",[\"$\",\"p\",null,{\"children\":[\"Running \",[\"$\",\"code\",null,{\"children\":\"tailscale whois\"}],\" with the \",[\"$\",\"code\",null,{\"children\":\"--json\"}],\" flag will return a machine-readable JSON response. (Note that the \",[\"$\",\"code\",null,{\"children\":\"--json\"}],\" option must come before the \",[\"$\",\"code\",null,{\"children\":\"ip[:port]\"}],\" argument.)\"]}],\"\\n\",[\"$\",\"div\",null,{\"className\":\"group relative overflow-hidden\",\"children\":[[\"$\",\"div\",null,{\"className\":\"absolute right-[5px] top-[21px] flex h-10 w-10 items-center justify-center rounded bg-grey-3 text-black opacity-0 transition-opacity duration-200 group-hover:opacity-100\",\"children\":[\"$\",\"$L2f5\",null,{\"text\":\"tailscale whois --json ip[:port]\\n\"}]}],[\"$\",\"pre\",null,{\"className\":\"refractor language-shell\",\"children\":[\"$\",\"code\",null,{\"className\":\"language-shell\",\"children\":[\"tailscale whois --json ip\",[\"$\",\"span\",\"fract-0-1\",{\"className\":\"token punctuation\",\"children\":[\"[\"]}],\":port\",[\"$\",\"span\",\"fract-0-3\",{\"className\":\"token punctuation\",\"children\":[\"]\"]}],\"\\n\"]}]}]]}]]}]}]}]]}],[\"$\",\"p\",null,{\"className\":\"mt-6 text-sm leading-snug text-gray-600\",\"children\":[\"Last updated \",\"Mar 20, 2025\"]}]]}]}],[\"$\",\"aside\",null,{\"className\":\"js-docHighlight col-span-10 h-full pb-8 md:col-span-8 md:col-start-4 xl:col-span-2 xl:col-start-auto\",\"children\":[\"$\",\"div\",null,{\"className\":\"sticky top-16 flex flex-col gap-8\",\"children\":[[\"$\",\"$L2f6\",null,{\"data\":[{\"id\":\"using-the-tailscale-cli\",\"text\":\"Using the Tailscale CLI\",\"level\":2},{\"id\":\"tab-completion\",\"text\":\"Tab completion\",\"level\":3},{\"id\":\"command-reference\",\"text\":\"Command Reference\",\"level\":2},{\"id\":\"up\",\"text\":\"up\",\"level\":3},{\"id\":\"down\",\"text\":\"down\",\"level\":3},{\"id\":\"bugreport\",\"text\":\"bugreport\",\"level\":3},{\"id\":\"cert\",\"text\":\"cert\",\"level\":3},{\"id\":\"dns\",\"text\":\"dns\",\"level\":3},{\"id\":\"completion\",\"text\":\"completion\",\"level\":3},{\"id\":\"configure\",\"text\":\"configure\",\"level\":3},{\"id\":\"exit-node\",\"text\":\"exit-node\",\"level\":3},{\"id\":\"file\",\"text\":\"file\",\"level\":3},{\"id\":\"funnel\",\"text\":\"funnel\",\"level\":3},{\"id\":\"ip\",\"text\":\"ip\",\"level\":3},{\"id\":\"lock\",\"text\":\"lock\",\"level\":3},{\"id\":\"login\",\"text\":\"login\",\"level\":3},{\"id\":\"logout\",\"text\":\"logout\",\"level\":3},{\"id\":\"metrics\",\"text\":\"metrics\",\"level\":3},{\"id\":\"netcheck\",\"text\":\"netcheck\",\"level\":3},{\"id\":\"version\",\"text\":\"version\",\"level\":3},{\"id\":\"ping\",\"text\":\"ping\",\"level\":3},{\"id\":\"serve\",\"text\":\"serve\",\"level\":3},{\"id\":\"set\",\"text\":\"set\",\"level\":3},{\"id\":\"ssh\",\"text\":\"ssh\",\"level\":3},{\"id\":\"status\",\"text\":\"status\",\"level\":3},{\"id\":\"switch\",\"text\":\"switch\",\"level\":3},{\"id\":\"syspolicy\",\"text\":\"syspolicy\",\"level\":3},{\"id\":\"update\",\"text\":\"update\",\"level\":3},{\"id\":\"web\",\"text\":\"web\",\"level\":3},{\"id\":\"whois\",\"text\":\"whois\",\"level\":3}]}],null]}]}]]}]\n"])</script></body></html>