Documentation Python quickstart Blog Free tools Enterprise solutions hello@quanticdata.ioLog in

Shadowrocket proxy setup on iPhone: add the server, route the traffic, test the exit

Shadowrocket proxy setup on iPhone in four steps: generate a Japanese sticky line in the QuanticData endpoint generator, add it with Add Server as Type HTTP on port 8080 or Socks5 on port 1080 with Address, Port, User and Password, set Global Routing to Proxy and run the Connectivity Test, then switch on and check the exit; the card lists the three things to check when the test shows timeout.
Shadowrocket proxy setup on iPhone in four steps: generate a Japanese sticky line in the QuanticData endpoint generator, add it with Add Server as Type HTTP on port 8080 or Socks5 on port 1080 with Address, Port, User and Password, set Global Routing to Proxy and run the Connectivity Test, then switch on and check the exit; the card lists the three things to check when the test shows timeout.

Shadowrocket proxy setup takes four fields and one switch: tap + on the Home tab, set Type to HTTP (or Socks5), fill Address, Port, User and Password, and tap Save. Then tap the server, set Global Routing to Proxy, run the Connectivity Test and switch Shadowrocket on. Below: every field, the routing modes, ISP and mobile proxies, and a fix for each error.

Shadowrocket is a rule-based proxy client for iPhone and iPad, made by Shadow Launch Technology Limited. It takes the traffic of the apps on the phone, on Wi-Fi and on cellular, and sends it to the proxy server you add. It comes with no servers of its own: its App Store notes say users provide their own configuration. Everything below happens inside the app. The field names are the ones in Shadowrocket's own App Store screenshots, and the values come from the QuanticData endpoint generator.

What you need before you start

  • Shadowrocket on the iPhone. It is a paid app on the App Store and needs iOS 13.0 or later; the same listing covers iPad, Mac and Apple TV.
  • A proxy plan. Residential Premium, ISP or mobile. The table further down says which one fits which job.
  • Four values: host, port, username and password. In the QuanticData dashboard they are under My proxies, on the plan's page, in the Endpoint generator. Open Connection details there and each value has its own copy button, so the four Shadowrocket fields can be filled by copy and paste on the iPhone itself.

From the generator line to Shadowrocket's four fields

The generator gives one line in the format host:port:user:pass. Shadowrocket has no single field for it: the line splits at the colons into the fields of the Add Server screen.

# the line from the generator (output format host:port:user:pass)
residentialpremium.quantumproxies.io:8080:USER-country-jp-sid-p01-ttl-60m:PASS

# the same proxy in Shadowrocket's Add Server screen
Type      HTTP
Address   residentialpremium.quantumproxies.io
Port      8080
User      USER-country-jp-sid-p01-ttl-60m
Password  PASS

User takes the whole username, with everything after the first dash: -country-jp picks Japan as the exit country, -sid-p01 names the session and -ttl-60m keeps the same IP for 60 minutes. Cut it at the first dash and the proxy still answers, but the phone leaves from a random country on a new IP at every connection. USER and PASS stand for your own credentials.

Step by step: add a proxy in Shadowrocket

The QuanticData Endpoint generator for a Residential Premium plan: Japan selected, Session set to Sticky with a 30-minute TTL, HTTP protocol, output format host:port:user:pass and the preview line with -country-jp, the username and password blurred
Step 1 in the QuanticData dashboard: country, sticky session, protocol and format give the four values.
  1. Generate the line. In the QuanticData dashboard open My proxies, then your Residential Premium plan. In the Endpoint generator choose the Country (Japan in this guide, plus a Region or City if you need one), set Session to Sticky, set Session TTL (minutes) to at least the time you will use the phone, choose the Protocol and keep Output format on host:port:user:pass.
  2. Open Shadowrocket and tap + in the top right corner of the Home tab, or tap Add Server.
  3. Set Type. Tap Type and choose HTTP for port 8080, or Socks5 for port 1080. The list is long; these are the two to use.
  4. Fill Address and Port. Address takes a domain or an IP: residentialpremium.quantumproxies.io. Port is 8080 for HTTP and 1080 for Socks5.
  5. Fill User and Password. Paste the whole username into User and the password into Password, with no space before or after.
  6. Leave the other rows as they are. Method, Plugin, TCP Fast Open and Proxy Pass stay on their defaults. Remarks is an optional name for the server.
  7. Tap Save. The server appears on the Home tab, under Local Servers.
Shadowrocket Add Server screen on iPhone, redrawn, filled with a QuanticData Residential Premium line: Type HTTP, Address residentialpremium.quantumproxies.io, Port 8080, User USER-country-jp-sid-p01-ttl-60m, the password as dots, Remarks optional; seven numbered steps beside the screen, ending with Save
Steps 2 to 7 in Shadowrocket's Add Server screen, redrawn with our values.

Global Routing: what goes through the proxy

A saved server does nothing until Shadowrocket is told what to send through it. That is Global Routing, the second row of the Home tab, and the setting behind most "connected but nothing changed" questions. Tap it and four modes appear, one ticked:

Shadowrocket Global Routing screen, redrawn: Enable Fallback off, then Config, Proxy (ticked), Direct and Scene with their descriptions, numbered notes explaining that Proxy sends every app through the QuanticData server and that Config follows the config file rules, which send local addresses and listed sites direct
Global Routing on Proxy: every app on the phone goes through the selected server.
ModeWhat it doesWhen to pick it
ProxyEvery app's traffic goes through the selected serverTo send the whole phone through QuanticData, and for the first check
ConfigThe rules of the active config file decide, site by site, proxy or directWhen only some sites or apps should use the proxy
DirectNothing goes through the serverTo pause the proxy without switching Shadowrocket off
SceneA different mode per network type, Wi-Fi or cellularWhen the phone should use the proxy on one network only
  1. Tap Global Routing on the Home tab.
  2. Tick Proxy to send everything through the QuanticData server. This is the mode to start with: nothing is decided by rules, so the exit check shows the proxy or a real error.
  3. Leave Enable Fallback off with one server. When it is on and the server fails, Shadowrocket moves to another saved server, which may be a different exit.
  4. Go back to the Home tab. The Global Routing row now reads Proxy.

Config is the default, and it is why a fresh setup can look half-working. In Config mode Shadowrocket follows the active config file, on the Config tab. The built-in one, default.conf, sends local network addresses and its list of sites direct and only the rest through the proxy, so a site on that list keeps seeing your own IP while others see the proxy. Keep Config when you want that split, with your own rules; pick Proxy when everything should leave from the QuanticData exit.

Switch it on and check where it exits

  1. Tap the server. The dot next to it marks the default server, the one Shadowrocket uses.
  2. Check that Global Routing reads Proxy.
  3. Run the Connectivity Test. A time in milliseconds next to the server means it answered; timeout means it did not. In the Settings tab, set Test Method to CONNECT: the test then sends a request through the proxy, so a wrong username fails it. With TCP it only opens a connection to the gateway, and a wrong password can still show a time.
  4. Switch Shadowrocket on with the switch at the top of the Home tab. The first time, iOS asks to add a VPN configuration: tap Allow and confirm with your passcode or Face ID. That is how Shadowrocket takes over the phone's traffic; the proxy itself is not a VPN.
  5. Check the exit. Open Safari and load ipinfo.io/json. The country, region and time zone have to match the country in User.
Shadowrocket Home tab, redrawn, connected through the QuanticData server residentialpremium.quantumproxies.io:8080 with Global Routing on Proxy and the default dot on the server, numbered steps beside it and a real exit check from ipinfo.io: Sapporo, Hokkaido, Japan, time zone Asia/Tokyo
Connected and checked: the result in the strip is a real check of a QuanticData Japanese line on 23 October 2026.

Our check, on 23 October 2026, through a Residential Premium sticky line with -country-jp: the site saw an address in Sapporo, Hokkaido, with the time zone Asia/Tokyo. With only the country in the username, the city is wherever in Japan the session lands; choose a Region or City in the generator when the city matters. More Japanese exits are on the page for proxies in Japan.

Do not judge the exit by the flag next to the server. Shadowrocket takes the flag from the server's name or from its address, which is the gateway, so a Japanese line can show another country's flag. The IP page is the check that counts.

HTTP, HTTPS or Socks5 in Shadowrocket

Type in ShadowrocketQuanticData portUse it for
HTTP8080The default: web pages and most apps. HTTPS sites stay encrypted end to end, because the proxy relays them with the CONNECT method without reading them.
Socks51080Apps that open connections other than web pages.
HTTPSnot usedIn Shadowrocket this type means an encrypted connection to the proxy itself, which ports 8080 and 1080 do not speak. Choosing it is a common cause of timeout.

Both HTTP and Socks5 work on every QuanticData network. What breaks a server is never the choice itself, only a Type that does not match its Port.

One sticky session per iPhone

A phone that stays logged in to apps should look like one person on one connection. A rotating proxy changes IP on every connection, which is wrong for that. A sticky session keeps one IP for as long as the session lives, and the session lives in the username, so the server never has to change once it is saved.

# the iPhone, all day in Japan
User  USER-country-jp-sid-p01-ttl-1440m

# an iPad on the same plan: its own session, never p01
User  USER-country-jp-sid-p02-ttl-1440m
  • A lifetime longer than the day. The generator accepts up to 1440 minutes. When the session ends, the next connection gets a new IP, and an app can read that as a new login location.
  • A new IP when you want one. Change the value after -sid-: tap the (i) next to the server, edit User and save. Or keep two or three servers with different session IDs and tap the one you want; the dot moves and the exit moves with it.
  • One session per device. Two devices on the same line share one IP.

With Session set to Sticky, the generator makes as many lines as the Quantity field says, ten by default, each with its own session ID, and Copy all or Download takes them out together.

The Generate 10 sessions button in the QuanticData Endpoint generator with Copy all and Download, and the list of Japanese sticky lines ready to copy, credentials blurred
Ten sticky lines, each with its own session ID: one per device, or one per server to switch between.

Residential Premium, ISP and mobile proxies in Shadowrocket

Proxy typeIn ShadowrocketGood for
Residential PremiumOne server per sticky session; HTTP 8080 or Socks5 1080; country, region, city or ISP in User; username and password onlyMost uses: a home IP in Japan or in the country you choose
ISPThe fixed IP from Assigned IPs in Address, its own User and Password; HTTP on port 50100, Socks5 on port 50101Accounts that should keep the same address for the whole plan
MobileThe gateway host in Address (Global, USA, EU or Asia); HTTP 8080 or Socks5 1080; a sticky session in User, with -type-mobileApps that expect a phone on a carrier network
DatacenterThe same four fields, from the plan's pageQuick tests where the type of IP matters less

Residential Premium

The steps above are the Residential Premium setup. The targeting goes in User: country, region and city, or country and ISP. The Premium generator authenticates by username and password only, which is also what a phone needs. More on the network on the page for QuanticData residential proxies.

ISP proxies

ISP plans give fixed IPs, listed on the plan's page under Proxy endpoints, Assigned IPs. Keep Output format on IP:Port:Username:Password and every line maps to Shadowrocket the same way as the generator line: the IP goes in Address, then Port, User and Password.

The Assigned IPs panel of a QuanticData ISP plan: Protocol HTTP / HTTPS or SOCKS5, Output format IP:Port:Username:Password, a table of five fixed IPs masked as 45.x.x.180 and 82.x.x.203 on port 50100 with user USER, and the formatted output lines IP:50100:USER:PASS
Assigned IPs: one line per fixed IP, in the format Shadowrocket needs. IPs masked.
# one line from Assigned IPs (IP:Port:Username:Password)
82.•••.•••.203:50100:USER:PASS

# the same IP in Shadowrocket's Add Server screen
Type      HTTP
Address   82.•••.•••.203
Port      50100
User      USER
Password  PASS
Shadowrocket Add Server screen, redrawn, filled with a QuanticData ISP IP: Type HTTP, Address 82.x.x.203 (masked), Port 50100, User USER and the password, five numbered steps beside the screen ending with Save and one IP per phone
An ISP IP in Add Server: the address does not change. Redrawn screen, IP masked.

Each IP has its own login. Type HTTP goes with port 50100; for Socks5, switch the panel's Protocol to SOCKS5 and the list shows the same IPs on port 50101. The address does not change, so there is nothing to rotate: one IP per phone, for as long as the plan runs. Japanese addresses are on the page for ISP proxies in Japan.

Mobile proxies

Mobile plans go in exactly the same way. In the Mobile Endpoint generator choose the Proxy host (gateway), Global, USA, EU or Asia, then the Session and the Protocol, HTTP on 8080 or SOCKS5 on 1080, and copy the four values from Connection details. The Global gateway is mobile.quantumproxies.io. Keep Session on Sticky for a phone that stays logged in: the username then carries -type-mobile and the session, and a new session ID gives a new carrier IP.

# a mobile sticky line in Shadowrocket's Add Server screen
Type      HTTP
Address   mobile.quantumproxies.io
Port      8080
User      USER-country-jp-type-mobile-sid-m01-ttl-60m
Password  PASS
The Mobile Endpoint generator: Global, USA, EU and Asia gateways, Rotating or Sticky session, HTTP 8080 or SOCKS5 1080, output format and preview with -type-mobile, and the IP whitelist section below, credentials blurred
Mobile: the gateway, the two ports and the IP whitelist.

Mobile plans also offer an IP whitelist: the proxy recognises your public IP and no login is sent. In Shadowrocket, User and Password are optional, so they stay empty. It only suits a connection whose public IP never changes. An iPhone that moves between Wi-Fi and cellular changes its public IP with every network, so on the phone keep username and password. Japanese carriers are on the page for mobile proxies in Japan.

Shadowrocket proxy not working: errors and fixes

Shadowrocket shows a problem in three ways: the Connectivity Test prints timeout next to the server instead of a time, the switch is on and pages do not load, or everything loads but the IP is still yours. These are the cases behind them, in the order to check.

Shadowrocket Home tab, redrawn, with timeout in red next to the QuanticData server after the Connectivity Test, and the notes beside it giving the checks in order: the type matches the port, the username whole and the password exact, the plan active with traffic left, and Global Routing on Proxy when the IP did not change
Timeout after the Connectivity Test, and the order of the checks. Redrawn screen.
What you seeUsual causeFix
timeout after the Connectivity TestThe Type does not match the Port: HTTP on 1080, Socks5 on 8080, or HTTPS chosenHTTP with 8080, Socks5 with 1080
timeout with the right Type, or a time but no pagesUser cut at the first dash, a typo in Password, or a space from the pasteCopy each value again from Connection details; set Test Method to CONNECT so the test checks the login
It worked yesterday, fails todayThe plan expired or its traffic is used upCheck the plan in My proxies: status, remaining traffic, expiry date
Connected, but the IP did not changeGlobal Routing is on Config and the config rules send that site direct, or on Direct; or another server has the dotGlobal Routing: Proxy; tap the QuanticData server so the dot is on it; reload the page
Wrong countryNo -country- in User, or Worldwide chosen in the generatorGenerate the line with a country; the flag next to the server does not count
The IP changes during the dayThe session lifetime endedA longer -ttl-, up to 1440m; a new -sid- only when you want a new IP

If the switch turns itself off right after you turn it on, Shadowrocket could not start the connection: run the Connectivity Test with Test Method CONNECT and go down the table from the first row.

Before you use it

A proxy changes where the phone's traffic comes from, not what its apps allow. Keep to each app's terms and to the law where you are. With Global Routing on Proxy every app on the phone goes through the server and every byte counts against the plan's traffic; when the phone does not need the exit, switch Shadowrocket off or set Global Routing to Config with your own rules.

Sources & further reading

FAQ

Quick answers on shadowrocket proxy setup.

Something else? Ask us

How do I set up a proxy in Shadowrocket?

Tap + on the Home tab (or Add Server), set Type to HTTP for port 8080 or Socks5 for port 1080, fill Address, Port, User and Password with the values from your proxy dashboard and tap Save. Then tap the server so the dot marks it, set Global Routing to Proxy, run the Connectivity Test and turn on the switch at the top of the Home tab, allowing the VPN configuration the first time.

Which Global Routing mode should I choose in Shadowrocket?

Proxy, to send every app on the phone through the server; it is also the mode for the first check. Config follows the rules of the active config file, and the built-in default.conf sends local addresses and a list of sites direct. Direct sends nothing through the proxy, and Scene picks a mode per network type.

Why is my IP the same after connecting Shadowrocket?

Shadowrocket is on, but that traffic is not going through the proxy. Usually Global Routing is on Config and the config rules send that site direct, or it is on Direct, or another server has the dot. Set Global Routing to Proxy, tap the QuanticData server and reload the IP page.

Should I choose HTTP, HTTPS or Socks5 in Shadowrocket?

HTTP on port 8080 for web pages and most apps, Socks5 on port 1080 for apps that use other kinds of connection. Not HTTPS: in Shadowrocket it means an encrypted connection to the proxy itself, which a standard HTTP proxy port does not speak. Websites in HTTPS stay encrypted through an HTTP proxy anyway.

Why does Shadowrocket show timeout?

The Connectivity Test got no answer through the server. Check, in this order: the Type matches the Port (HTTP with 8080, Socks5 with 1080, never HTTPS), the username in User is whole and the password exact with no spaces, and the plan is active with traffic left. Set Test Method to CONNECT in Settings so the test also checks the login.

Is Shadowrocket a VPN?

No. It is a proxy client: it sends the iPhone's traffic to a proxy server that you add, and it comes with no servers of its own. iOS asks to add a VPN configuration because that is how an app takes over the phone's traffic. Where the traffic exits depends on the server you add.

How do I change the IP in Shadowrocket?

Change the session ID in the username: tap the (i) next to the server, edit the value after -sid- in User and save; the next connection leaves from a new IP. Or keep a few servers with different session IDs and tap the one you want. ISP proxies are fixed addresses and do not change.

One sticky IP for the iPhone, in the country you pick

Residential Premium, ISP and mobile proxies with country targeting and sticky sessions up to 1440 minutes, HTTP and SOCKS5, copied from the endpoint generator straight into Shadowrocket.

Related reading