Files
nas-tools/shadowrocket_correct_setup.md
T

4.7 KiB

Shadowrocket Correct Setup - Working with Tailscale

Understanding Shadowrocket Architecture

Shadowrocket works as a local proxy server on your iPhone:

  • Apps connect to Shadowrocket's local proxy (127.0.0.1:80)
  • Shadowrocket forwards traffic to your configured server (server2)
  • This way it doesn't need VPN mode!

Step-by-Step Setup

Step 1: Add Server2 as a Server (NOT in Proxy Settings)

  1. Open Shadowrocket app
  2. Go to the "Home" tab (house icon at bottom)
  3. Tap the "+" button in the top right corner
  4. Select "HTTP" or "HTTPS"
  5. Fill in:
    • Remark: server2-proxy
    • Address: 100.70.115.1 (your Tailscale IP)
    • Port: 7890 (HTTP) or 7892 (Mixed)
    • Username: (leave empty)
    • Password: (leave empty)
  6. Tap "Done"

Step 2: Enable the Server

  1. Go back to "Home" tab
  2. You should see server2-proxy in the server list
  3. Tap on it to select it
  4. Toggle the switch at the top to ON

Step 3: Configure Proxy Settings (What You Saw)

The "Proxy Settings" you saw (127.0.0.1:80) is Shadowrocket's local proxy that apps connect to. You can configure it:

  1. Go to "Settings" tab (gear icon)
  2. Tap "Proxy"
  3. In "Proxy Settings" section:
    • Proxy Type: HTTP (or leave as is)
    • Proxy Port: 80 (or any port, this is local)
    • Proxy Address: 127.0.0.1 (localhost - this is correct)

Important: These settings are for Shadowrocket's LOCAL proxy. Your apps will connect to this, and Shadowrocket will forward to server2.

Step 4: Configure Apps to Use Shadowrocket's Local Proxy

Now you need to tell your apps to use Shadowrocket's local proxy:

Option A: System-Wide (Limited)

  1. Settings → Wi-Fi
  2. Tap ⓘ next to your Wi-Fi
  3. Scroll to HTTP Proxy
  4. Select Manual
  5. Enter:
    • Server: 127.0.0.1 (or localhost)
    • Port: 80 (or whatever you set in Proxy Settings)
  6. Save

Option B: Use Shadowrocket's VPN Mode (But Configured Correctly)

Actually, Shadowrocket's "VPN mode" is how it intercepts traffic. Here's the trick:

  1. In Shadowrocket "Home" tab
  2. Make sure your server2-proxy is selected
  3. Toggle the switch ON
  4. This will create a VPN connection BUT it's Shadowrocket's VPN, not a conflict
  5. Shadowrocket's VPN intercepts traffic and routes it through server2

The key: Shadowrocket's VPN mode is fine - it's a different VPN than Tailscale. However, iOS only allows ONE VPN at a time, so:

Solution: Use Shadowrocket's VPN Mode (Disable Tailscale VPN)

Since iOS only allows one VPN:

  1. Disable Tailscale's VPN mode (but keep Tailscale app running for network access)
  2. Enable Shadowrocket's VPN mode
  3. Shadowrocket will route through Tailscale's network to reach server2

Wait - that won't work because Tailscale needs VPN mode to provide network access...

Better Solution: Use Proxy Chain Feature

Looking at your screenshot, I see "Proxy Chain" option! This might be the solution:

  1. Go to SettingsProxy Chain
  2. Enable "Enable Chain" toggle
  3. Configure:
    • Type: HTTP
    • Address: 100.70.115.1
    • Port: 7890
  4. This might allow Shadowrocket to use Tailscale's network without VPN conflict

Based on your screenshots, here's what to do:

Method 1: Use Proxy Chain (Try This First)

  1. Keep Tailscale VPN ON
  2. In Shadowrocket:
    • Go to SettingsProxy Chain
    • Enable "Enable Chain"
    • Set Type: HTTP, Address: 100.70.115.1, Port: 7890
  3. In Shadowrocket Home tab:
    • Add a "Direct" or "Reject" server (or use existing)
    • Enable Shadowrocket
  4. Configure apps to use Shadowrocket's local proxy (127.0.0.1:80)

Method 2: Use Shadowrocket VPN Mode (Disable Tailscale)

  1. Disable Tailscale VPN (but app can stay installed)
  2. In Shadowrocket Home tab:
    • Add server2: 100.70.115.1:7890
    • Enable Shadowrocket VPN mode
  3. Shadowrocket will handle routing

Problem: You'll lose direct Tailscale network access, but proxy will work.

Method 3: Use System Proxy Settings

  1. Keep Tailscale ON
  2. Don't use Shadowrocket VPN mode
  3. Configure system proxy:
    • Settings → Wi-Fi → ⓘ → HTTP Proxy → Manual
    • Server: 100.70.115.1
    • Port: 7890
  4. This works for some apps but not all

Testing

After setup:

  1. Open Safari
  2. Visit: https://api.ipify.org
  3. Should show: 158.101.140.85 (server2's IP)

Which Method Should You Use?

Try Proxy Chain first - it might allow both Tailscale and Shadowrocket to work together!

If that doesn't work, you'll need to choose:

  • Tailscale VPN = Direct network access, but no proxy
  • Shadowrocket VPN = Proxy works, but no direct Tailscale network

Let me know which method works for you!