Why Won't .local Addresses Open on iPhone?
You type printer.local or nas.local into Safari and get "Safari cannot open the page" - even though the device is on, connected, and worked fine yesterday. This is one of the most common and most confusing local-network problems, mostly because the error message gives you nothing to go on. Here's what's actually happening and how to work around it.
Quick Answer: It's Almost Never the Device
.local hostnames are resolved by mDNS (multicast DNS / Bonjour), a real-time protocol where the device itself answers a broadcast query on the local network - there's no central server involved. That real-time, broadcast-based design is exactly what makes it fragile compared to regular DNS. (See What Is mDNS/Bonjour? for how the protocol works end to end.) In practice, a failed .local lookup is almost always one of a handful of network-level causes, not a broken device.
The Usual Causes
1. AP (Client) Isolation Is On
Many routers, and almost all guest networks, have a setting that stops devices on the same WiFi from talking to each other directly - usually called "AP isolation," "client isolation," or "guest network isolation." Since mDNS depends on devices reaching each other, isolation kills it outright. The tell: every .local address fails, not just one, and it's especially common if you're on a guest SSID or public/office WiFi rather than your own home network.
2. Mesh WiFi Isn't Forwarding Multicast Properly
Some mesh systems don't reliably relay mDNS multicast traffic between nodes, or between the 2.4GHz and 5GHz bands. Two devices can both show as connected to the same network name while sitting on different physical nodes or bands that don't bridge multicast traffic between them - so they simply never see each other's announcements.
3. The Device Is Asleep or Just Reconnected
mDNS announcements happen when a device joins the network and periodically afterward. A device in deep sleep, or one that just rejoined after a WiFi drop, may not have re-announced itself yet. Waking the device or waiting 10-30 seconds after it reconnects often resolves this on its own.
4. Local Network Permission Is Off
iOS requires apps to request permission before they can discover and connect to devices on your local network - you'll see a "[App] would like to find and connect to devices on your local network" prompt the first time an app needs it. Check Settings › Privacy & Security › Local Network and confirm the relevant app has permission if a specific app (rather than Safari generally) can't reach a .local address.
5. A Stale or Duplicate .local Name
If two devices on the network ever announced the same hostname, or a device's name changed (a new router, a factory reset, a renamed printer), your iPhone may have cached the old mDNS record. Restarting WiFi on your iPhone (toggle it off and on) clears the local resolver cache and forces a fresh lookup.
What it's not, usually: a firewall on the device itself, a bad cable, or an ISP issue. mDNS is entirely local-network scoped - it never touches your ISP or the internet - so if your internet connection is otherwise fine, the cause is almost always one of the five above.
The Reliable Workaround: Connect by IP Instead
The most dependable fix isn't fixing mDNS - it's not depending on it. Every device that advertises itself via mDNS also has a normal IP address, and connecting directly to that IP works regardless of any of the issues above.
- Open PingKit's Bonjour Browser.
- Find the device by its advertised name (printer, NAS, AirPlay receiver, whatever it identifies as).
- PingKit shows the device's actual resolved IP address alongside its
.localname. - Use that IP address directly -
http://192.168.1.42instead ofhttp://printer.local- to connect without depending on mDNS resolution at all.
For a device you connect to often, pairing this with a static IP reservation in your router means the address never changes, so you only need to look it up once.
Frequently Asked Questions
Why does my .local address work sometimes but not other times?
mDNS depends on real-time multicast packets, unlike cached, centrally-served regular DNS. A sleeping device, a recent reconnect, or one dropped packet is enough to fail a lookup that worked minutes earlier.
Does AP isolation break .local addresses?
Yes, completely. AP isolation blocks devices on the same WiFi from reaching each other directly, which mDNS requires. This shows up as every .local address failing at once, not just one.
Do mesh WiFi systems cause .local problems?
They can - some mesh systems don't reliably forward mDNS multicast between nodes or WiFi bands, so devices on different nodes may never see each other's announcements even on the same network name.
What's a reliable workaround if .local won't resolve?
Connect by IP address instead. PingKit's Bonjour Browser shows the resolved IP for every advertised device, so you can bypass the .local lookup entirely.
See Every Device's Real IP Address
PingKit's Bonjour Browser shows every mDNS service on your network with its resolved IP - free, no ads.
Download PingKit Free