etc/hosts
An /etc/hosts file for your iPhone.
Point *.mysite.com at any machine you like, so you can open a dev server in mobile Safari using the same hostnames it uses in production — or point a production domain at a staging box.
Coming to the App Store
SupportRequires iOS 17 or later. A physical iPhone or iPad — not the Simulator.
How it works
A packet tunnel Network Extension installs a VPN profile whose DNS server exists only inside the tunnel. The profile is scoped to just your rule domains, so only lookups for those names are routed into the app.
The extension answers them itself and forwards everything else to the resolvers your device was already using. No real traffic goes through the tunnel — only DNS. The connection that follows is an ordinary direct one, routed however it normally would be.
Safari iOS resolver Extension | | | | api.mysite.com | scoped domain | |-------------------->|----------------->| | | A -> 192.168.1.42| |<--------------------|<-----------------| | '-- HTTP(S) direct to 192.168.1.42, not tunneled
Three steps
- 1
Add a redirect
A domain, and where it should go: a server discovered on your network, or any IP address or hostname.
- 2
Flip the switch
iOS asks once to allow the VPN configuration. That is the whole setup.
- 3
Open the site
Mobile Safari resolves the domain to your machine. Remember the port —
http://mysite.com:3000for a dev server on 3000.
Details
Only your domains are touched
The VPN profile scopes itself to the domains in your rules. Every other lookup on the phone uses the normal resolver and the normal network path — this code never sees it.
Finds servers on your network
Destinations on the local network are discovered over Bonjour and picked by name, address and port. Or type an IP; your iPhone's subnet is prefilled as a shortcut.
Tells you which end is broken
Check Reachability opens a TCP connection to ports 443, 80, 8080 and 3000, so a server bound to 127.0.0.1 stops looking identical to DNS that isn't working.
Shows its work
A live list of every lookup that reached the extension, marked redirected or forwarded, so you can see what is actually happening instead of guessing.
Remote destinations too
A rule can point a production domain at a staging box anywhere. The request still carries the original Host header, so the far end just has to answer for it.
Nothing leaves the device
No account, no analytics, no servers of ours to talk to. Rules live on your iPhone; lookups are answered on it.
Matching
Each rule picks how much of the namespace it claims.
| Mode | mysite.com covers | Plan |
|---|---|---|
| Exact | mysite.com only | Free |
| Subdomains | mysite.com and everything under it — www., api.staging. | Pro |
| Pattern | whatever the *s line up with — api-*.mysite.com, *.dev.mysite.com | Pro |
Where rules overlap, the most specific one answers: an exact name beats a subdomain root beats a pattern. Going over the free limit never touches your data — extra rules stay in the list exactly as written and are marked paused, so a lapsed subscription, or one picked up again later, turns them all back on untouched.
Pricing
Free
$0
- 1 redirect
- Exact hostname matching
- Bonjour discovery and reachability checks
Pro
$2.99
per month, or $19.99 per year
- Unlimited redirects
- Subdomain matching — mysite.com and everything under it
- Pattern matching — api-*.mysite.com, *.dev.mysite.com
- 7-day free trial
Lifetime
$39.99
once
- Every Pro feature, no subscription
- Covers this version and the updates that follow it
- A future major version may be sold separately
Prices in USD. The App Store shows the price in your own currency, and it is the one that applies. Lifetime is a separate one-time purchase — it does not cancel an active subscription. See Terms for the subscription details.
Your browsing stays yours
The extension only ever sees lookups for the domains you list. It collects nothing, sends nothing, and has nowhere to send it — there is no Pterobit server in this app.
Read the privacy policy