154 lines
4.7 KiB
Markdown
154 lines
4.7 KiB
Markdown
# 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 **Settings** → **Proxy 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
|
|
|
|
## Recommended Approach
|
|
|
|
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 **Settings** → **Proxy 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!
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|