{"slug":"connect-to-devices","title":"Connect to devices","tags":["tailscale","devices"],"agent_summary":"Last validated: Jan 5, 2026","trigger_phrases":[],"runnable":false,"markdown":"\r\n# Connect to devices\r\n\r\nLast validated: Jan 5, 2026\r\n\r\nTailscale automatically assigns each device on your network a unique [Tailscale IP address](https://tailscale.com/docs/concepts/tailscale-ip-addresses) and [MagicDNS](https://tailscale.com/docs/features/magicdns) name so that you can establish stable connections between devices anywhere in the world, even if they're behind a firewall or change networks. This guide covers connecting to devices in your tailnet after you've installed Tailscale on two or more devices.\r\n\r\nBefore you explore the connection process, it's crucial to understand that Tailscale provides network connectivity between devices, but you must run a specific [service](https://tailscale.com/docs/features/services) (like SSH or a web server) on the destination device. Tailscale does not provide these services automatically.\r\n\r\n## [Prerequisites](https://tailscale.com/docs/how-to/connect-to-devices\\#prerequisites)\r\n\r\n- Tailscale installed on at least two devices.\r\n- [Access control policies](https://tailscale.com/docs/features/access-control/acls) that allow the devices to connect. If you're using the [default access control policies](https://tailscale.com/docs/reference/examples/acls#allow-all-default-acl), all connections will be allowed between any device in your tailnet.\r\n- At least one [service](https://tailscale.com/docs/features/services) running on one of the devices.\r\n\r\n## [Connect to devices in your tailnet](https://tailscale.com/docs/how-to/connect-to-devices\\#connect-to-devices-in-your-tailnet)\r\n\r\nTo connect to another device in your tailnet:\r\n\r\n1. [Identify the device to connect to](https://tailscale.com/docs/how-to/connect-to-devices#identify-your-devices).\r\n2. [Make sure the device is running a service you can access](https://tailscale.com/docs/how-to/connect-to-devices#ensure-services-are-running).\r\n3. [Connect to the service](https://tailscale.com/docs/how-to/connect-to-devices#connect-to-a-service).\r\n\r\n### [Identify your devices](https://tailscale.com/docs/how-to/connect-to-devices\\#identify-your-devices)\r\n\r\nOpen the [Machines](https://login.tailscale.com/admin/machines) page of the admin console. You'll find a list of all devices in your tailnet, along with their hostnames ( [device names](https://tailscale.com/docs/concepts/machine-names)) and [Tailscale IP addresses](https://tailscale.com/docs/concepts/tailscale-ip-addresses).\r\n\r\n### [Ensure services are running](https://tailscale.com/docs/how-to/connect-to-devices\\#ensure-services-are-running)\r\n\r\nRemember, you can only connect to services running on your devices. Common services include:\r\n\r\n- SSH (usually on port `22`)\r\n\r\n\r\nYou can also use [Tailscale SSH](https://tailscale.com/docs/features/tailscale-ssh).\r\n- Web servers (often on port `80` or `443`)\r\n- File sharing services (such as SFTP)\r\n- Remote access tools (such as RDP)\r\n\r\nEnsure the [service](https://tailscale.com/docs/features/services) you want to access runs on the target device. You can do so by checking the [Services](https://login.tailscale.com/admin/services) page of the admin console, or by confirming the service is running on the destination device.\r\n\r\n### [Connect to a service](https://tailscale.com/docs/how-to/connect-to-devices\\#connect-to-a-service)\r\n\r\nTailscale offers a feature called [MagicDNS](https://tailscale.com/docs/features/magicdns), which allows you to use [device names](https://tailscale.com/docs/concepts/machine-names) instead of Tailscale IP addresses. It's enabled by default, so you can use it right away.\r\n\r\nTo connect to a service on a device in your tailnet:\r\n\r\n- Use the [device name](https://tailscale.com/docs/concepts/machine-names) or [Tailscale IP address](https://tailscale.com/docs/concepts/tailscale-ip-addresses) of the target device.\r\n- Specify the port of the service you're trying to access.\r\n\r\nFor example, if you want to SSH into a device with the [MagicDNS](https://tailscale.com/docs/features/magicdns) [name](https://tailscale.com/docs/concepts/machine-names)`dev-build-server`, you can use the following command in a terminal emulator:\r\n\r\n```shell\r\nssh username@dev-build-server\r\n```\r\n\r\nVisit the following topics to find more information more about connecting to different types of services:\r\n\r\n- [Connect to a database](https://tailscale.com/docs/database).\r\n- [Connect to a Windows server using RDP](https://tailscale.com/docs/solutions/access-remote-desktops-using-windows-rdp).\r\n- [Connect to a cloud server](https://tailscale.com/docs/cloud-server).\r\n- [Connect to a remote development environment](https://tailscale.com/docs/remote-code).\r\n- [Connect to a network attached storage (NAS)](https://tailscale.com/docs/integrations/nas).\r\n\r\n## [Troubleshooting](https://tailscale.com/docs/how-to/connect-to-devices\\#troubleshooting)\r\n\r\nIf you can't connect to a service:\r\n\r\n- Check if you can reach the device using [`tailscale ping`](https://tailscale.com/docs/reference/tailscale-cli#ping).\r\n- Verify that you're using the correct connection information.\r\n- Ensure the service is running on the target device at the expected port number.\r\n- Check if any [firewalls](https://tailscale.com/docs/integrations/firewalls) (including the built-in firewall on the target device) are blocking the connection.\r\n- Ensure that your [tailnet policy file](https://tailscale.com/docs/features/tailnet-policy-file/manage-tailnet-policies) doesn't contain any [grants](https://tailscale.com/docs/features/access-control/grants) or [ACLs](https://tailscale.com/docs/features/access-control/acls) that prevent a connection between the two devices.\r\n- Visit [troubleshooting device connectivity](https://tailscale.com/docs/reference/device-connectivity).\r\n\r\n## [Advanced topics](https://tailscale.com/docs/how-to/connect-to-devices\\#advanced-topics)\r\n\r\nThe following sections cover other ways you can manage connections to devices in your tailnet.\r\n\r\n### [Access control](https://tailscale.com/docs/how-to/connect-to-devices\\#access-control)\r\n\r\nWhen you create a tailnet, Tailscale automatically applies a [default access control policy](https://tailscale.com/docs/reference/examples/acls#allow-all-default-acl) that lets you connect to all devices you own. You can customize [access control policies](https://tailscale.com/docs/features/access-control) (such as [ACLs](https://tailscale.com/docs/features/access-control/acls) or [grants](https://tailscale.com/docs/features/access-control/grants)) in the [tailnet policy file](https://tailscale.com/docs/features/tailnet-policy-file/manage-tailnet-policies) to create policies that control how devices in your tailnet connect to each other and other devices on the internet.\r\n\r\n### [Tailscale SSH](https://tailscale.com/docs/how-to/connect-to-devices\\#tailscale-ssh)\r\n\r\nTailscale offers a built-in SSH feature that extends and simplifies SSH connections between your devices. When enabled, [Tailscale SSH](https://tailscale.com/docs/features/tailscale-ssh) manages the authentication and authorization of SSH connections in your tailnet, letting you add additional security checks and providing a web console interface.\r\n\r\n### [Sharing devices](https://tailscale.com/docs/how-to/connect-to-devices\\#sharing-devices)\r\n\r\nYou can [share devices](https://tailscale.com/docs/features/sharing) or [specific services](https://tailscale.com/docs/features/tailscale-serve) with other Tailscale users, allowing collaboration while maintaining security.\r\n\r\n### [Routing](https://tailscale.com/docs/how-to/connect-to-devices\\#routing)\r\n\r\nYou can configure a device to route outbound traffic by running it as an [exit node](https://tailscale.com/docs/features/exit-nodes) or inbound traffic by running it as a [subnet router](https://tailscale.com/docs/features/subnet-routers). Using a device as a subnet router lets you access devices without installing the Tailscale client.\r\n\r\n![Project Logo](https://cdn.brandfetch.io/tailscale.com/fallback/lettermark/theme/dark/h/256/w/256/icon?c=1bfwsmEH20zzEfSNTed)\r\n\r\nAsk AI\r\n\r\nreCAPTCHA\r\n\r\nRecaptcha requires verification.\r\n\r\nprotected by **reCAPTCHA**\r\n","html":"<h1>Connect to devices</h1>\n<p>Last validated: Jan 5, 2026</p>\n<p>Tailscale automatically assigns each device on your network a unique <a href=\"https://tailscale.com/docs/concepts/tailscale-ip-addresses\">Tailscale IP address</a> and <a href=\"https://tailscale.com/docs/features/magicdns\">MagicDNS</a> name so that you can establish stable connections between devices anywhere in the world, even if they're behind a firewall or change networks. This guide covers connecting to devices in your tailnet after you've installed Tailscale on two or more devices.</p>\n<p>Before you explore the connection process, it's crucial to understand that Tailscale provides network connectivity between devices, but you must run a specific <a href=\"https://tailscale.com/docs/features/services\">service</a> (like SSH or a web server) on the destination device. Tailscale does not provide these services automatically.</p>\n<h2><a href=\"https://tailscale.com/docs/how-to/connect-to-devices#prerequisites\">Prerequisites</a></h2>\n<ul>\n<li>Tailscale installed on at least two devices.</li>\n<li><a href=\"https://tailscale.com/docs/features/access-control/acls\">Access control policies</a> that allow the devices to connect. If you're using the <a href=\"https://tailscale.com/docs/reference/examples/acls#allow-all-default-acl\">default access control policies</a>, all connections will be allowed between any device in your tailnet.</li>\n<li>At least one <a href=\"https://tailscale.com/docs/features/services\">service</a> running on one of the devices.</li>\n</ul>\n<h2><a href=\"https://tailscale.com/docs/how-to/connect-to-devices#connect-to-devices-in-your-tailnet\">Connect to devices in your tailnet</a></h2>\n<p>To connect to another device in your tailnet:</p>\n<ol>\n<li><a href=\"https://tailscale.com/docs/how-to/connect-to-devices#identify-your-devices\">Identify the device to connect to</a>.</li>\n<li><a href=\"https://tailscale.com/docs/how-to/connect-to-devices#ensure-services-are-running\">Make sure the device is running a service you can access</a>.</li>\n<li><a href=\"https://tailscale.com/docs/how-to/connect-to-devices#connect-to-a-service\">Connect to the service</a>.</li>\n</ol>\n<h3><a href=\"https://tailscale.com/docs/how-to/connect-to-devices#identify-your-devices\">Identify your devices</a></h3>\n<p>Open the <a href=\"https://login.tailscale.com/admin/machines\">Machines</a> page of the admin console. You'll find a list of all devices in your tailnet, along with their hostnames ( <a href=\"https://tailscale.com/docs/concepts/machine-names\">device names</a>) and <a href=\"https://tailscale.com/docs/concepts/tailscale-ip-addresses\">Tailscale IP addresses</a>.</p>\n<h3><a href=\"https://tailscale.com/docs/how-to/connect-to-devices#ensure-services-are-running\">Ensure services are running</a></h3>\n<p>Remember, you can only connect to services running on your devices. Common services include:</p>\n<ul>\n<li>SSH (usually on port <code>22</code>)</li>\n</ul>\n<p>You can also use <a href=\"https://tailscale.com/docs/features/tailscale-ssh\">Tailscale SSH</a>.</p>\n<ul>\n<li>Web servers (often on port <code>80</code> or <code>443</code>)</li>\n<li>File sharing services (such as SFTP)</li>\n<li>Remote access tools (such as RDP)</li>\n</ul>\n<p>Ensure the <a href=\"https://tailscale.com/docs/features/services\">service</a> you want to access runs on the target device. You can do so by checking the <a href=\"https://login.tailscale.com/admin/services\">Services</a> page of the admin console, or by confirming the service is running on the destination device.</p>\n<h3><a href=\"https://tailscale.com/docs/how-to/connect-to-devices#connect-to-a-service\">Connect to a service</a></h3>\n<p>Tailscale offers a feature called <a href=\"https://tailscale.com/docs/features/magicdns\">MagicDNS</a>, which allows you to use <a href=\"https://tailscale.com/docs/concepts/machine-names\">device names</a> instead of Tailscale IP addresses. It's enabled by default, so you can use it right away.</p>\n<p>To connect to a service on a device in your tailnet:</p>\n<ul>\n<li>Use the <a href=\"https://tailscale.com/docs/concepts/machine-names\">device name</a> or <a href=\"https://tailscale.com/docs/concepts/tailscale-ip-addresses\">Tailscale IP address</a> of the target device.</li>\n<li>Specify the port of the service you're trying to access.</li>\n</ul>\n<p>For example, if you want to SSH into a device with the <a href=\"https://tailscale.com/docs/features/magicdns\">MagicDNS</a> <a href=\"https://tailscale.com/docs/concepts/machine-names\">name</a><code>dev-build-server</code>, you can use the following command in a terminal emulator:</p>\n<pre><code class=\"language-shell\">ssh username@dev-build-server\n</code></pre>\n<p>Visit the following topics to find more information more about connecting to different types of services:</p>\n<ul>\n<li><a href=\"https://tailscale.com/docs/database\">Connect to a database</a>.</li>\n<li><a href=\"https://tailscale.com/docs/solutions/access-remote-desktops-using-windows-rdp\">Connect to a Windows server using RDP</a>.</li>\n<li><a href=\"https://tailscale.com/docs/cloud-server\">Connect to a cloud server</a>.</li>\n<li><a href=\"https://tailscale.com/docs/remote-code\">Connect to a remote development environment</a>.</li>\n<li><a href=\"https://tailscale.com/docs/integrations/nas\">Connect to a network attached storage (NAS)</a>.</li>\n</ul>\n<h2><a href=\"https://tailscale.com/docs/how-to/connect-to-devices#troubleshooting\">Troubleshooting</a></h2>\n<p>If you can't connect to a service:</p>\n<ul>\n<li>Check if you can reach the device using <a href=\"https://tailscale.com/docs/reference/tailscale-cli#ping\"><code>tailscale ping</code></a>.</li>\n<li>Verify that you're using the correct connection information.</li>\n<li>Ensure the service is running on the target device at the expected port number.</li>\n<li>Check if any <a href=\"https://tailscale.com/docs/integrations/firewalls\">firewalls</a> (including the built-in firewall on the target device) are blocking the connection.</li>\n<li>Ensure that your <a href=\"https://tailscale.com/docs/features/tailnet-policy-file/manage-tailnet-policies\">tailnet policy file</a> doesn't contain any <a href=\"https://tailscale.com/docs/features/access-control/grants\">grants</a> or <a href=\"https://tailscale.com/docs/features/access-control/acls\">ACLs</a> that prevent a connection between the two devices.</li>\n<li>Visit <a href=\"https://tailscale.com/docs/reference/device-connectivity\">troubleshooting device connectivity</a>.</li>\n</ul>\n<h2><a href=\"https://tailscale.com/docs/how-to/connect-to-devices#advanced-topics\">Advanced topics</a></h2>\n<p>The following sections cover other ways you can manage connections to devices in your tailnet.</p>\n<h3><a href=\"https://tailscale.com/docs/how-to/connect-to-devices#access-control\">Access control</a></h3>\n<p>When you create a tailnet, Tailscale automatically applies a <a href=\"https://tailscale.com/docs/reference/examples/acls#allow-all-default-acl\">default access control policy</a> that lets you connect to all devices you own. You can customize <a href=\"https://tailscale.com/docs/features/access-control\">access control policies</a> (such as <a href=\"https://tailscale.com/docs/features/access-control/acls\">ACLs</a> or <a href=\"https://tailscale.com/docs/features/access-control/grants\">grants</a>) in the <a href=\"https://tailscale.com/docs/features/tailnet-policy-file/manage-tailnet-policies\">tailnet policy file</a> to create policies that control how devices in your tailnet connect to each other and other devices on the internet.</p>\n<h3><a href=\"https://tailscale.com/docs/how-to/connect-to-devices#tailscale-ssh\">Tailscale SSH</a></h3>\n<p>Tailscale offers a built-in SSH feature that extends and simplifies SSH connections between your devices. When enabled, <a href=\"https://tailscale.com/docs/features/tailscale-ssh\">Tailscale SSH</a> manages the authentication and authorization of SSH connections in your tailnet, letting you add additional security checks and providing a web console interface.</p>\n<h3><a href=\"https://tailscale.com/docs/how-to/connect-to-devices#sharing-devices\">Sharing devices</a></h3>\n<p>You can <a href=\"https://tailscale.com/docs/features/sharing\">share devices</a> or <a href=\"https://tailscale.com/docs/features/tailscale-serve\">specific services</a> with other Tailscale users, allowing collaboration while maintaining security.</p>\n<h3><a href=\"https://tailscale.com/docs/how-to/connect-to-devices#routing\">Routing</a></h3>\n<p>You can configure a device to route outbound traffic by running it as an <a href=\"https://tailscale.com/docs/features/exit-nodes\">exit node</a> or inbound traffic by running it as a <a href=\"https://tailscale.com/docs/features/subnet-routers\">subnet router</a>. Using a device as a subnet router lets you access devices without installing the Tailscale client.</p>\n<p><img src=\"https://cdn.brandfetch.io/tailscale.com/fallback/lettermark/theme/dark/h/256/w/256/icon?c=1bfwsmEH20zzEfSNTed\" alt=\"Project Logo\"></p>\n<p>Ask AI</p>\n<p>reCAPTCHA</p>\n<p>Recaptcha requires verification.</p>\n<p>protected by <strong>reCAPTCHA</strong></p>\n"}