MagicDNS automatically registers DNS names for devices in your network.
If you add a new webserver called
my-server to your network, you no longer
need to use its Tailscale IP: using the name
my-server in your
browser’s address bar or on the command line will work.
Tailnets created on or after October 20, 2022 have MagicDNS enabled by default.
If not already enabled, you can enable MagicDNS in the DNS page of the admin console:
Once MagicDNS is enabled, any device signed in to your network can access other devices by using their machine name. For example, if you have a server named “monitoring”:
- To SSH into it, run
- To ping it, run
- To open it in your browser, type
monitoringin your address bar.
nslookupcircumvent system DNS resolution, and will not work with MagicDNS. For example,
host johns-iphone-6swill not work on macOS, even if
ping webserver.example2.ts.net. We will relax this restriction in future versions.
MagicDNS automatically uses a device’s machine name as part of the DNS entry. If you change your device’s name, the MagicDNS entry will automatically change.
If you have a specific name you’d like to use to reference your device, then edit the machine name of the device.
Under the hood, MagicDNS generates a fully qualified domain name for every device on your network. The fully qualified domain name is made up of two parts:
- A machine name, which you can change.
- Your Tailscale network’s tailnet name. You can view your tailnet name in the DNS page of the admin console.
.beta.tailscale.net. If so, migrate to the new tailnet name ending in
.ts.net. The existing
beta.tailscale.netname remains supported until at least November 1, 2023.
The table below shows how some example machine names and domains combine to create the full domain name.
|Machine Name||Tailnet Name||Fully Qualified Domain Name|
Full domain names can be cumbersome to type, so when you enable MagicDNS, Tailscale automatically adds search domains to your network. With these search domains you only need to type the machine name to access a device.
For the yak-bebop network, the following two commands are equivalent:
ping monitoring ping monitoring.yak-bebop.ts.net
In most situations, you’ll want to use the machine name. But for security reasons, accessing devices shared with you requires using the full domain name.
You can see the full domain name of any device in your network by opening its machine page in the admin console.
MagicDNS can be disabled for your whole network by toggling the same button you used to enable it in the admin console.
If you are experiencing trouble with MagicDNS on a particular device and wish to disable it only there, the current solution is to stop accepting network DNS settings in general.
On Linux, stop accepting DNS with:
tailscale up [...] --accept-dns=false
On macOS, stop accepting DNS by clicking on the Tailscale menubar icon. From here, click Preferences, and then you can uncheck Use Tailscale DNS settings from the menu.
On Windows, stop accepting DNS by holding shift while right clicking on the Tailscale system tray icon, and unchecking Use Tailscale DNS from the menu.
In the future, we will have robust enough DNS configuration and resolution logic that disabling MagicDNS separately will never be necessary. At this point, the toggle will disappear.