How to use Shadowrocket with Trump Proxies on iPhone
The exact Shadowrocket SOCKS5 setup for a Trump Proxies mobile line, including global routing, remote DNS, UDP and STUN leak controls, connection testing, and the settings that should stay off.
Trump Proxies · Network operations
Shadowrocket is the strongest mainstream iPhone client for a proxy you already own. It accepts raw host, port, username and password details, creates an iOS Network Extension tunnel, and can route the whole phone through one SOCKS5 node. It does not include proxy servers: the app is the client and your Trump Proxies line is the connection.
Install the genuine Shadowrocket by Shadow Launch Technology Limited. There are similarly named apps in some stores, but this guide follows the paid iPhone/iPad utility with bundle ID id932747118. Its App Store description identifies it as a rule-based client for HTTP, HTTPS, TCP and DNS traffic.
Have these four values ready
- Address — the proxy hostname from your customer portal, without
https://orsocks5://. - Port — the exact numeric port attached to that line.
- User — the proxy username, preserving capitalization.
- Password — the proxy password, not your Apple ID or Trump Proxies portal password.
The ideal Shadowrocket settings
| Shadowrocket field | Set it to | Why |
|---|---|---|
| Type | Socks5 | The general TCP proxy mode; it is the best fit for whole-phone app traffic. |
| Address / Port | Portal host and port | Enter them in separate fields with no protocol prefix. |
| User / Password | Proxy credentials | The node is authenticated; anonymous mode will fail. |
| Plugin | none | Plugins are for other server protocols and will break a plain SOCKS5 line. |
| TCP Fast Open | Off | It needs end-to-end support and can behave badly through middleboxes; normal TCP is more predictable. |
| Padding | Off | A plain SOCKS5 line does not need Shadowrocket protocol padding. |
| UDP Relay | Off | The standard endpoint does not support SOCKS5 UDP ASSOCIATE. |
| Proxy Pass | None / blank | Proxy chaining adds another hop and another failure point. |
| Remarks | TP – country – account | A clear label prevents the wrong identity from using the wrong line. |
| Global Routing | Proxy | Every captured connection uses the selected node instead of a ruleset silently sending some traffic direct. |
| HTTPS Decryption | Off | It is unnecessary for proxying and would install a local interception certificate. |
Add the SOCKS5 node
- 01Open Shadowrocket and tap Add Server or the + button.
- 02Tap Type and select Socks5. Do not choose Shadowsocks: despite the similar name, it is a different encrypted protocol and a standard SOCKS5 username/password will not work in it.
- 03Paste the portal hostname into Address and enter the supplied numeric Port.
- 04Paste the proxy User and Password.
- 05Leave Plugin at
none, TCP Fast Open off, Padding off and Proxy Pass empty. - 06Switch UDP Relay off. If the switch is already grey, leave it that way.
- 07Add a specific Remarks label and tap Save.
- 08Back on Home, tap the node so its selection indicator is active.
Set routing and UDP to fail closed
A correct node can still leak if Shadowrocket's global rules send some traffic direct. On the Home screen, set Global Routing to Proxy for the first clean setup. Config obeys a ruleset and is useful later, but any DIRECT rule becomes an intentional path around the mobile line.
- 01Open Settings → UDP and leave Enable Forwarding off.
- 02Turn Disable STUN on. STUN is the WebRTC mechanism commonly used to discover a public address over UDP.
- 03If your version shows an unsupported-UDP behaviour or fallback, choose REJECT, never
DIRECT. An unsupported packet should fail, not leave through your real IP. - 04Keep the node-level UDP Relay off as well. The global and node switches control different parts of the path; both should agree.
The maintained Shadowrocket manual documents Proxy as the all-traffic global route, exposes the separate global and node UDP forwarding switches, and supports rejecting UDP when a policy cannot carry it. That is the right shape for a standard Trump Proxies TCP line: carry TCP, block unsupported UDP and let QUIC-capable apps fall back to HTTP/2 over TCP.
Keep DNS on the proxy path
With Global Routing: Proxy, proxy-class domains are resolved through the selected proxy. For the first setup, leave DNS overrides at their defaults and do not add your home router, mobile carrier or a direct-only resolver. If you already maintain a custom Shadowrocket config, use its DNS-over-PROXY form so the resolver request itself follows the selected node.
Connect and grant iOS permission
- 01Return to Home, confirm the intended node is selected and Global Routing says Proxy.
- 02Switch the main connection toggle on.
- 03The first time, iOS asks whether Shadowrocket may add VPN configurations. Tap Allow, then approve with Face ID, Touch ID or the device passcode.
- 04Wait for the iOS
VPNindicator and Shadowrocket's connected state. That proves the local tunnel started, not that the remote node is correct—run the checks below.
iOS allows one active personal VPN/Network Extension tunnel. Temporarily disable iCloud Private Relay for the Safari test, and disconnect commercial VPN clients or any other app using the VPN slot. Competing routes can replace Shadowrocket or make the result impossible to interpret.
Run a real connection test
- 01Before connecting, open api.ipify.org in Safari and note the current IP.
- 02Connect Shadowrocket, open a new Private tab and load the same URL. The public IP should change.
- 03Confirm the country matches the purchased line. The exact mobile IP may change after a rotation; the expected country and carrier path are what matter.
- 04Run Shadowrocket's connectivity test if you like, but treat it as a preliminary check. A green latency number does not prove the intended app is following the route.
- 05Open the actual approved platform and complete a normal page load. On a destination-restricted plan, unrelated sites may be rejected by design.
- 06Run a WebRTC/DNS leak test. Your normal public IP should not appear, and a failed STUN test is expected with UDP/STUN blocked.
Global Proxy or Config mode?
| Mode | Use it when | Risk |
|---|---|---|
| Proxy | A dedicated phone or one identity should use the mobile line everywhere | Lowest configuration risk; all captured traffic uses the selected node. |
| Config | You deliberately maintain reviewed routing rules | Any DIRECT or bad rule can expose the real connection for that destination. |
| Direct | You are intentionally disconnected from the proxy | Traffic uses the phone's normal connection. |
| Scene | You have tested separate Wi-Fi/cellular behaviours | A scene can silently select another route when the network changes. |
Start with Proxy. Only move to Config or Scene after you can explain every direct rule and have tested both Wi-Fi and cellular. For account work, simplicity is a security feature: one phone, one selected node, one clear route.
Troubleshooting by symptom
| Symptom | Likely cause | Fix |
|---|---|---|
| Node test times out | Wrong host/port/type or credentials | Re-paste all four values and confirm Type is Socks5, not Shadowsocks. |
| Connected, but real IP remains | Global Routing is Config/Direct or a different node is selected | Select the intended node and set Global Routing to Proxy. |
| Browser works, one app stalls | UDP/QUIC retry or cached direct connection | Keep UDP off, force-close the target app and reopen it after Shadowrocket connects. |
| WebRTC shows the real public IP | STUN is not blocked or UDP fallback is Direct | Enable Disable STUN and set unsupported UDP to Reject. |
| DNS country looks wrong | Direct/custom DNS override | Remove the local override or use DNS-over-PROXY, then reconnect. |
| Google shows a CAPTCHA | The proxy can be live while Google challenges that exit IP | Do not diagnose it as an outage; rotate between sessions, reconnect and retry privately. |
| Approved app works but generic test fails | Destination-restricted line | Test the approved platform or the explicitly allowed IP-check endpoint. |
Rotate between sessions, not inside one
Use your portal rotation control only after closing the target app or ending the account session. Wait for the line to return, reconnect Shadowrocket if necessary, verify the new public IP, then begin the next session. The Shadowrocket node remains unchanged: rotation happens behind the same host and port.
Should I choose Socks5 or Shadowsocks?
Choose Socks5. Shadowsocks is a different protocol with a cipher and server password; it is not another spelling of SOCKS5 and it will not accept a standard Trump Proxies profile.
Why are both UDP Relay and UDP Forwarding off?
They control different scopes in Shadowrocket. A standard Trump Proxies proxy is TCP-only, so the node should not request SOCKS5 UDP and the app should not forward unsupported UDP globally.
Should I enable HTTPS Decryption?
No. It is a debugging/interception feature that requires trusting a local certificate. It is not needed to route HTTPS through SOCKS5.
Can I use per-app routing in Shadowrocket?
Yes, through reviewed Config rules, but start in Global Routing: Proxy. Per-app/direct rules deliberately create traffic outside the mobile line, so test every target and leak path before using them for a live account.
Ready to try real mobile proxies?
Assigned real-SIM mobile endpoints in the USA, Austria and Germany. 7-day trial, unlimited data, self-serve portal.
Keep reading
A field-by-field Super Proxy setup for a Trump Proxies SOCKS5 line: the right DNS mode, why experimental UDP stays off, Android's kill switch, and the checks to run before you trust the connection.
A complete Tun2Socks setup for an authenticated Trump Proxies SOCKS5 line: Global versus Per-App mode, Remote DNS and MapDNS, IPv4/IPv6 capture, UDP-over-TCP, LAN sharing, MTU, and leak checks.