Tailscale Home Assistant: Remote Access Without Port Forwarding
Install the right Tailscale App, choose a private URL, connect the Companion App, and diagnose direct, peer-relay, or DERP paths.
Quick answer
Install the Tailscale App on Home Assistant OS or Green, authenticate it into the same tailnet as your remote phone or computer, then open http://<Tailscale-IP>:8123. Use MagicDNS for a readable name or Tailscale Serve for private HTTPS. You do not need router port forwarding, even behind CGNAT; use Funnel only when a remote device cannot run Tailscale and public access is intentional.
No router rule
Works through CGNAT without forwarding port 8123
Private by default
Use a Tailscale IP, MagicDNS, or Serve
Path-aware fixes
Separate direct, peer-relay, and DERP behavior
Install the App for access—not the Integration
How to set up Tailscale remote access for Home Assistant
Install Tailscale on the correct Home Assistant host, authenticate both endpoints, choose a private URL, configure the Companion App, and verify the connection path without router port forwarding.
- 1
Choose the Home Assistant install path
Use the Tailscale App on Home Assistant OS or Green. For Container or Core, run Tailscale on the Linux host or a deliberately designed network sidecar.
- 2
Install and authenticate Tailscale
Start the Tailscale App or tailscaled, complete authentication, and confirm the Home Assistant node appears online in the Tailscale admin console.
- 3
Choose a private Home Assistant URL
Test the 100.x Tailscale IP with port 8123 first, then use MagicDNS for a readable name or Tailscale Serve for a private HTTPS ts.net URL.
- 4
Configure the Companion App
Keep Tailscale connected on the phone, set the verified private address as the Companion App external URL, and test it over mobile data with Wi-Fi off.
- 5
Verify the service and connection path
Run tailscale ping or tailscale status, identify direct, peer-relay, or DERP behavior, and troubleshoot DNS, port 8123, or proxy settings at the layer that failed.
Build the right Tailscale Home Assistant path
Pick your Home Assistant install and access goal. The result separates installation, URL, proxy, and public-exposure decisions.
Install path
Install the Tailscale App in Home Assistant
- 1Open Settings → Apps, select Install app, and search for Tailscale.
- 2Install and start the app, then select Open Web UI and sign in.
- 3Confirm the homeassistant machine is online in your tailnet.
Recommended access
Use Tailscale Serve for private HTTPS
A stable HTTPS URL remains restricted to identities allowed by your tailnet policy.
https://homeassistant.<tailnet>.ts.net- Use Share Home Assistant with Serve in the Home Assistant Tailscale App, or tailscale serve --bg 8123 on a suitable host.
- Copy the current trusted proxy block from the Tailscale App Documentation tab.
- Restart Home Assistant and test the generated ts.net URL from mobile data.
Choose where to install Tailscale
Home Assistant OS and Home Assistant Green use the Tailscale App. Container and Core installs normally place Tailscale on the Linux host. The monitoring Integration is optional and does not create the remote-access path.
| Home Assistant edition | Installation path | Best for | Important detail |
|---|---|---|---|
| Home Assistant OS / Green | Settings → Apps → Install app → Tailscale | The supported, lowest-friction path | Apps were previously called add-ons |
| Home Assistant Container | Install Tailscale on the Docker host or use a deliberate sidecar design | Existing Docker deployments | Publish Home Assistant port 8123 to the Tailscale host |
| Home Assistant Core | Install Tailscale on the Linux host | Python environment managed on Linux | Keep tailscaled enabled across reboots |
| Home Assistant Supervised | Use the Home Assistant Tailscale App when available | Managed app workflow on a supported host | Follow the current app documentation for proxy settings |
Install, authenticate, and prove the private path
- 1
Install and start Tailscale
On HA OS/Green, use Settings → Apps → Install app. Search for Tailscale, install it, then enable Start on boot and Watchdog if those controls are available.
- 2
Authenticate the Home Assistant node
Select Open Web UI, allow the login pop-up, and approve the node. Confirm a machine named homeassistant (or your chosen name) is online in the Tailscale admin console.
- 3
Sign in on the remote device
Install Tailscale on the phone, tablet, or computer and join the same tailnet. Tailnet policy still decides which identity can reach Home Assistant.
- 4
Test IP before DNS or HTTPS
Open http://<Home-Assistant-Tailscale-IP>:8123 from mobile data or a different network. A working IP test proves installation, authentication, routing, and port 8123 before extra layers are added.
What success looks like
Verify one layer at a time instead of changing the router, DNS, and proxy together.
Home Assistant is online in the Tailscale Machines list.
The remote device can tailscale ping the Home Assistant node.
http://100.x.y.z:8123 opens away from home Wi-Fi.
Only then do you add MagicDNS, Serve, or the Companion App URL.
Choose the Home Assistant URL
Start with the private 100.x address. MagicDNS makes it memorable; Serve adds private HTTPS. Funnel changes the audience to the public internet and is only appropriate when the remote device cannot run Tailscale.
| Method | Example | Who can reach it | Use it for |
|---|---|---|---|
| Tailscale IP | http://100.x.y.z:8123 | Tailnet only | First connectivity test |
| MagicDNS name | http://homeassistant:8123 | Tailnet only | Memorable private URL |
| Tailscale Serve | https://homeassistant.<tailnet>.ts.net | Tailnet only | Private HTTPS and Companion App |
| Tailscale Funnel | https://homeassistant.<tailnet>.ts.net | Public internet | Only when a client cannot run Tailscale |
Serve is the private HTTPS default
Serve keeps the ts.net URL inside your tailnet and applies tailnet access rules.
In the Tailscale App, use Share Home Assistant with Serve. For Core or a suitable host, tailscale serve --bg 8123 proxies the local service. Use the current proxy block from the App Documentation tab; this example reflects the official Home Assistant walkthrough.
http:
use_x_forwarded_for: true
trusted_proxies:
- 127.0.0.1Funnel is a clientless exception
Funnel makes the selected service publicly reachable; it is not a private remote-access upgrade.
Use Funnel only when the remote browser cannot install Tailscale and public reachability is intentional. Keep Home Assistant authentication strong, expose only the required service, and turn Funnel off when the need ends. Tailscale currently documents Funnel as beta and restricts its listening ports and HTTPS behavior.
Connect the Home Assistant Companion App
Use the same URL that already worked in the phone browser.
- 1Connect Tailscale on the phone.
- 2Test the private IP or Serve URL in a browser.
- 3Set that value as the Companion App external URL.
- 4Turn off Wi-Fi and verify again over mobile data.
Private access should stay boring
If every remote device can run Tailscale, there is no reason to open TCP 8123 on the home router. The old approach fails under CGNAT, depends on changing public IPs, and exposes an application login to internet scans. Tailscale gives each approved device a private identity and address, so the user gets remote Home Assistant access with fewer public-network dependencies.
Use the site's CGNAT check workflow if you want to prove why a conventional router forward cannot work. It is diagnostic context, not a prerequisite for Tailscale.
Read Tailscale status or ping output
Paste the Home Assistant peer result. The checker detects a final direct, peer-relay, DERP, DNS, refusal, or offline signal without sending the text anywhere.
Analysis
Paste output to identify the path
Use output for the Home Assistant peer from tailscale ping or tailscale status.
Next three checks
- 1Run tailscale ping homeassistant.
- 2Or copy the homeassistant row from tailscale status.
- 3Paste it here; analysis stays in this browser.
This page cannot probe a private 100.x address from the public web. The analyzer interprets only the text you paste; verification still happens from your signed-in remote device.
Check NAT, ports, and connection path in that order
Tailscale usually needs no manually opened firewall port. It tries a direct UDP path first, can use a configured peer relay, and falls back to DERP when necessary. All three Tailscale path types remain end-to-end encrypted; the practical difference is usually latency and throughput.
If the UI fails on a direct path, verify Home Assistant port 8123 and the selected URL. If it works but feels slow on DERP, inspect UDP and NAT behavior with the direct, peer-relay, and DERP guide. The broader Tailscale port and publishing guide explains when Serve or Funnel changes the application boundary.
Do not confuse transport with Home Assistant
A Tailscale route and a listening web service are separate checks.
Ping fails: start with Tailscale node state, authentication, policy, DNS, and path.
Ping works, :8123 fails: check Home Assistant service, container publishing, and host firewall.
IP works, name fails: fix MagicDNS or the hostname.
Serve fails: validate the proxy block and restart Home Assistant.
Tailscale Home Assistant troubleshooting
Match the visible symptom before changing the network. These fixes cover the high-intent login, NXDOMAIN, refused connection, trusted proxy, Companion App, and relay queries.
Continue the right diagnostic branch
Run a NAT type check
See the public-side conditions that influence peer-to-peer path selection.
Check whether your home is behind CGNAT
Confirm why conventional inbound port forwarding is unavailable.
Understand Tailscale ports, Serve, and Funnel
Separate private tailnet access from deliberate public publishing.
Diagnose direct, peer-relay, and DERP paths
Improve a slow fallback only after identifying the actual path.
Tailscale Home Assistant FAQ
Official sources checked
Product names, installation wording, connection types, firewall behavior, Serve, and Funnel requirements were checked against current first-party documentation.
- Tailscale: current Home Assistant remote-access guide
- Home Assistant: Tailscale integration and its limits
- Tailscale: direct, peer relay, and DERP connection types
- Tailscale: firewall ports and NAT traversal
- Tailscale: Serve examples and private HTTPS behavior
- Tailscale: Funnel requirements and public exposure
- Home Assistant Companion: networking troubleshooting