LIVEReading: Connect Any Two Devices Privately with TailscaleTotal time: 8 minSteps: 6Worked first time: 92% LIVEReading: Connect Any Two Devices Privately with TailscaleTotal time: 8 minSteps: 6Worked first time: 92%
CBW
Connect Any Two Devices Privately with Tailscale
Easygithub.com/tailscale/tailscale2026-07-20

Connect Any Two Devices Privately with Tailscale

Tailscale creates a private, encrypted network between your devices in minutes — no port forwarding, no firewall rules, no IT degree required. Works on Linux, Mac, Windows, phones, and more.

// Build stats

  • Total time8 min
  • Number of steps6
  • DifficultyEasy
  • Worked first time92%
// Before you start

What you need

  • Two or more devices you want to connect (any OS)
  • A free Tailscale account at tailscale.com (sign up with Google, GitHub, or Microsoft)
  • Admin or sudo access on each device
  • Internet connection on each device
01
Step 1 of 6

Create your free Tailscale account

2 min

Tailscale needs a central account to track which devices belong to you. Go to tailscale.com and sign up for free using an existing Google, GitHub, or Microsoft account. No credit card needed. This creates your private 'tailnet' — the name for your personal network.

Terminal · mac
$ # No command needed — open your browser and go to:
$ https://tailscale.com/start
What you should see
You land on the Tailscale admin console at login.tailscale.com/admin/machines — it will show zero machines connected.
02
Step 2 of 6

Install Tailscale on your first device (Linux)

3 min

This one command downloads and runs the official Tailscale install script for Linux. It detects your distro automatically and installs the right package. If you are on Mac or Windows, skip this step and download the GUI app from tailscale.com/download instead — installation is a normal double-click installer.

Terminal · mac
$ curl -fsSL https://tailscale.com/install.sh | sh
What you should see
The script prints your distro name, adds the Tailscale package repo, installs tailscaled and tailscale, and ends with: 'Installation complete! Log in by running: sudo tailscale up'
This might happen

Script fails with 'curl: command not found'

Run 'sudo apt install curl' on Debian/Ubuntu or 'sudo yum install curl' on RHEL/CentOS, then retry.

03
Step 3 of 6

Log in and connect your first device

2 min

This command starts Tailscale and links this device to your account. It will print a URL — open that URL in any browser, log in with the same account you created in Step 1, and click Authorize. The device is now on your private network.

Terminal · mac
$ sudo tailscale up
What you should see
Terminal prints: 'To authenticate, visit:' followed by a long URL starting with https://login.tailscale.com/a/... After you authorize in the browser, the terminal returns to a prompt with no error. The admin console at login.tailscale.com/admin/machines now shows this device with a green dot.
This might happen

The URL expires before you click it, or the terminal just hangs

Press Ctrl+C and run 'sudo tailscale up' again to get a fresh URL.

04
Step 4 of 6

Install and connect your second device

5 min

Repeat the install and login process on every other device you want in your private network. On Mac or Windows, download the app from tailscale.com/download, install it, and click 'Log in' inside the app — no terminal needed. On a second Linux machine, run the same two commands from Steps 2 and 3. Each device gets a private IP address in the 100.x.x.x range that never changes.

Terminal · mac
$ # On a second Linux machine, run both commands again:
$ curl -fsSL https://tailscale.com/install.sh | sh
$ sudo tailscale up
What you should see
After authorizing the second device, the admin console shows two machines with green dots. Each has a 100.x.x.x IP address listed.
This might happen

Device shows as 'Expired' or 'Needs reauthentication' in the console

Run 'sudo tailscale up' on that device again and re-authorize in the browser.

05
Step 5 of 6

Test the private connection between devices

1 min

Find the 100.x.x.x IP address of your second device in the Tailscale admin console, then ping it from your first device. If you get replies, the encrypted tunnel is working. You can now use this IP address for SSH, file sharing, remote desktop, or any other service — as if both machines were on the same local network.

Terminal · mac
$ # Replace 100.x.x.x with the actual IP shown in your admin console:
$ ping 100.x.x.x
What you should see
You see lines like: '64 bytes from 100.x.x.x: icmp_seq=1 ttl=64 time=12.3 ms' — low latency means a direct peer-to-peer tunnel formed. Higher latency (100ms+) means traffic is relaying through Tailscale's servers, which still works but is slower.
This might happen

Ping times out with no reply

Check that Tailscale is running on both devices ('sudo tailscale status') and that both show as connected in the admin console. Firewalls blocking UDP port 41641 can prevent direct connections but relay should still work.

06
Step 6 of 6

Check the status of your network anytime

1 min

This command shows every device on your tailnet, their 100.x.x.x addresses, and whether they are currently online. Bookmark this — it is the fastest way to find a device's address when you need to connect to it.

Terminal · mac
$ tailscale status
What you should see
A table listing each device name, its 100.x.x.x IP, the OS, and a status like 'active; direct' or 'active; relay'. Example: '100.64.0.1 my-laptop linux active; direct'
// Status

cooked. baked. worked.

Two or more of your devices can reach each other over encrypted private IP addresses (100.x.x.x) from anywhere in the world, with no port forwarding or VPN configuration required. You can SSH, share files, or run any service between them as if they were on the same local network.

// the honest bit

The honest part

Tailscale's free plan supports up to 3 users and 100 devices, which is plenty for personal use. The relay servers (called DERP) are run by Tailscale — your traffic is encrypted end-to-end so they cannot read it, but you are trusting their infrastructure for relay when direct connections fail. For truly self-hosted relay, Tailscale offers a self-hosted DERP server option, but that requires extra setup. The admin console and identity system are cloud-based and not self-hostable on the free plan — if that matters to you, look at Headscale, an open-source Tailscale control server replacement.