Can Split DNS Fix a Self-Hosted App That Fails Only Inside Your Home?

Eva Wong is the Technical Writer and resident tinkerer at ZimaSpace. A lifelong geek with a passion for homelabs and open-source software, she specializes in translating complex technical concepts into accessible, hands-on guides. Eva believes that self-hosting should be fun, not intimidating. Through her tutorials, she empowers the community to demystify hardware setups, from building their first NAS to mastering Docker containers.

Yes, split DNS can fix an inside-only failure when the public hostname should resolve to a different local address at home.

A self-hosted app may work from mobile data because public DNS points to the home WAN address, while devices inside the LAN fail because the router cannot hairpin that connection back through the public NAT rule. Split DNS avoids that loop by returning the local reverse-proxy or app address to home clients, but it succeeds only when the same hostname, certificate, proxy route, and application base URL remain valid on both paths.

Prove That the Public Name Works From Outside First

Test the exact application URL from mobile data or another external network. Confirm DNS resolution, TLS, reverse-proxy routing, login, redirects, and the application function that currently fails inside the home.

Tailscale describes split DNS as a way to give clients different DNS answers by context rather than forcing internal and external users through one identical route.

If the app also fails externally, split DNS is not the first repair. Fix public DNS, the tunnel or port forward, proxy routing, TLS, or application configuration before creating a second answer that may hide the original fault.

Check Whether the Inside Failure Is Hairpin NAT

From a home client, query the public hostname and record the returned address. If it resolves to the home public IP, trace whether the router supports NAT loopback or hairpin NAT for that forwarded service.

A Level1Techs troubleshooting thread recommends a local DNS override that points the domain to the internal server address when hairpin NAT is unreliable.

Compare the public-name failure with direct access to the local reverse-proxy address. If direct local access reaches the intended proxy or app, while the public IP fails only from inside, split DNS is a strong fit.

Point the Internal Answer to the Same Logical Entry Point

Create an internal DNS record for the existing public hostname, but point it to the LAN address of the reverse proxy or controlled local entry point. Avoid pointing directly to a backend when external users normally pass through the proxy.

A split-DNS comparison explains that local clients can resolve the same domain to a private internal address while external clients continue receiving the public address.

Keeping both paths on the same proxy preserves hostname-based routing, access policy, headers, and certificates. Pointing home clients around the proxy may load the page but break authentication, callbacks, WebSockets, or security controls that exist only at the proxy.

Verify That Every Required Client Uses the Internal Resolver

Check the DNS server used by phones, laptops, TVs, containers, and VPN clients that should receive the internal answer. Browser secure DNS, mobile Private DNS, a VPN resolver, or a hard-coded public DNS server can bypass the home resolver.

Self-hosting guidance on split DNS warns that outages often occur when the VPN or client continues using the wrong resolver context despite being on the internal network.

Query the internal DNS server directly, then compare that answer with the normal client lookup. If the server returns the local address but the client does not, fix DHCP DNS distribution, encrypted DNS, VPN policy, or client overrides before editing the record again.

Keep the Same Hostname for TLS and Application Callbacks

Access the app by its normal domain after the internal record is active. Do not replace it with a bookmark to the private IP, because HTTPS certificates and reverse-proxy routes are commonly tied to the hostname.

The internal path must also preserve the application’s public base URL, OAuth redirect URI, webhook address, and forwarded headers. Split DNS changes the destination address, not the hostname the browser or provider should use.

If the app redirects back to the public IP, generates an internal hostname, or rejects the host header, fix the proxy and app URL settings. DNS alone cannot repair a service that is configured with inconsistent identities.

Keep Split DNS Only When Both Paths Stay Predictable

Test from home Wi-Fi, guest Wi-Fi, VPN, mobile data, and one device using Private DNS. Confirm that each client receives the intended address and reaches the same application identity.

The ZimaSpace guide to why a private cloud works on one network only provides the reverse symptom and helps verify that the two DNS views remain intentionally different.

Split DNS is the right fix when it removes a broken public loop while preserving the same domain, TLS certificate, proxy route, and application behavior. Use hairpin NAT instead when the router handles it reliably and maintaining two DNS views would add more risk than value.

Support & Tips

More to Read

Get More Builds Like This

Stay in the Loop

Get updates from Zima - new products, exclusive deals, and real builds from the community.

Stay in the Loop preferences

We respect your inbox. Unsubscribe anytime.