etc/hosts

An /etc/hosts file for your iPhone.

Point *.mysite.com at any machine you like. Every app on the phone resolves it there — Safari, Chrome, the app you are building — so you can reach a dev server using the same hostnames it uses in production, or point a production domain at a staging box.

Coming to the App Store

Support

Requires 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.

Any app            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. 1

    Add a redirect

    A domain, and where it should go: a server discovered on your network, or any IP address or hostname.

  2. 2

    Flip the switch

    iOS asks once to allow the VPN configuration. That is the whole setup.

  3. 3

    Open the site

    Whatever makes the request — a browser, a native app — resolves the domain to your machine. Put the port in the rule's destination and http://mysite.com reaches a dev server on 3000 with no port in the URL.

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.

  • Every app, not just the browser

    Names are resolved by iOS, below the app layer, so the native app you are testing, a WebView, or an API client gets the same answer Safari does.

  • 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.

  • Drop the port from the URL

    Give a rule's destination a port — 192.168.1.42:3000 — and http://mysite.com reaches your dev server with no :3000 to type. HTTP and HTTPS clients that follow the system proxy are relayed inside the extension; everything else stays direct.

  • No certificate to install

    Nothing here decrypts or inspects your traffic, so there is no root CA to add to your phone and nothing reading what you send. Debugging proxies need one; a DNS answer does not.

  • 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.

Modemysite.com coversPlan
Exactmysite.com onlyFree
Subdomainsmysite.com and everything under it — www., api.staging.Pro
Pattern whatever the *s line up with — api-*.mysite.com, *.dev.mysite.comPro

Where rules overlap, the most specific one answers: an exact name beats a subdomain root beats a pattern. A rule the free plan can't run never touches your data — it stays in the list exactly as written and is marked paused, so a lapsed subscription, or one picked up again later, turns them all back on untouched.

Pricing

  • Free

    $0

    • 3 redirects
    • Exact hostname matching
    • Bonjour discovery and reachability checks
  • Pro

    $4.99

    per month, or $24.99 per year

    • Unlimited redirects
    • Subdomain matching — mysite.com and everything under it
    • Pattern matching — api-*.mysite.com, *.dev.mysite.com
    • 14-day free trial — no payment method
  • Lifetime

    $49.99

    once

    • Every Pro feature, no subscription
    • Covers this version and the updates that follow it
    • No server involved — it keeps working if updates stop

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. It covers this version and the updates that follow it; a future major version may be sold separately. See Terms for the subscription details.

Your traffic 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