Real-world conditions
See where the app's traffic goes
Read every DNS lookup, point a name at a staging server, and find far servers and wasted connections in the routes.
Why: a slow screen is often not the app but the network around it: a CDN on another continent, a name that doesn’t exist, a new TLS connection for every request. And to test against staging you shouldn’t need a special build.
What happens
Section titled “What happens”- The DNS tab lists every name the device looks up, as it happens.
- Marks show what stands out: NXDOMAIN for a name that doesn’t exist, far when every address is on another continent than the VPN exit, and DoH blocked for encrypted DNS that would skip the log.
- A row’s details show the
CNAMEchain and each address with its country and network. - Rewrite this name answers it with your own address, blocks it or makes it not exist.
- The Routes tab follows the connections from the device through the VPN to each server, with no reuse, far, bypass and HTTP flags.
- Flagged leaves only the names that look off.
Examples
Section titled “Examples”- Production app against staging. Rewrite
api.example.comto the staging server’s IP address and restart the app. Turn the rule off to go back; with TTL 0 it applies at once. - What if analytics is down? Rewrite the analytics domain to Doesn’t exist or Block and check that the app still opens and doesn’t hang on a spinner.
- Why are images slow in Kazakhstan? Switch the country to Kazakhstan and look for far in Routes: an image CDN without an edge nearby shows up right away.
- Too many handshakes. no reuse on your API means every request opens a new TCP and TLS connection. Send the connection list from the details to the backend team.
Good to know
Section titled “Good to know”- Both tabs need a session with a VPN location: its sidecar sees the device’s DNS and connections.
- Rewrites clear Android’s DNS cache, but a WebView can keep a name for up to a minute. Restart the app when a rewrite must apply to everything.
- Save a set of rewrites under Sets and load it into another session later.
- Recordings keep both tabs, so a link to a recording shows the DNS answers and connections at the moment of the bug.
If it doesn’t work
Section titled “If it doesn’t work”- There is no DNS or Routes tab: the session has no VPN location. Physical phones have Routes but no DNS tab yet.
- A rewrite has no effect: the app hard-codes an IP address or resolves names over its own DNS over HTTPS.
- Countries are missing: this Holtdroid has no geolocation databases configured.
More details: DNS log and rewrites, Routes.