VPN & Proxy Modes
Choose between VPN and Proxy only mode, pick which apps use Throne, share the proxy with other devices, and adjust the TUN and inbound settings.
Throne for Android has two service modes. VPN sends the traffic of your apps through Throne. Proxy only runs a local proxy that only the apps you configure will use. This page explains both modes, per-app proxy, sharing the proxy with other devices, and the TUN and inbound settings.
Choose a service mode
Set the mode in Settings → General → Service mode.
| Mode | What it does | Use it when |
|---|---|---|
VPN (default) |
Android creates a VPN. Throne receives the traffic of all apps, or only of the apps you choose, through a virtual network interface (TUN). | You want every app to use Throne. This is the normal choice. |
Proxy only |
Throne opens only a local proxy (SOCKS5 and HTTP) on 127.0.0.1, port 2080 by default. No VPN is created. |
Another VPN app must stay connected, you only need Throne in apps that have proxy settings, or your device cannot grant VPN access. |
Changing the mode stops a running connection. Tap the connect button again to start in the new mode.
VPN mode
In VPN mode, Android sends the network traffic of your apps to Throne. Throne then sends each connection through a proxy, sends it directly, or blocks it, as your routing profile says.
- The first time you connect, Android asks you to allow the VPN. See VPN permission.
- Android runs only one VPN at a time. When Throne connects in VPN mode, the VPN of any other app disconnects.
- Devices connected to your phone's hotspot do not use the VPN, because Android does not send their traffic through VPN apps. To give them the proxy, use LAN sharing.
- To keep some apps out of the VPN, or to send only some apps through it, use per-app proxy.
HTTP proxy of the VPN
On Android 10 and later, Throne also sets its local proxy (127.0.0.1 and the Proxy port) as the HTTP proxy of the VPN network. Apps that follow the system proxy settings, such as most browsers, then send their web traffic to this proxy directly. This traffic still follows your routing profile.
- To exclude domains from this proxy, add them to
Settings→Inbound→HTTP proxy bypass list. Write one entry per line, for example*example.com. Lines that start with#are comments. Apps connect to these domains without the proxy. Disable mixed inboundremoves this HTTP proxy.
Proxy only mode
In Proxy only mode, Throne runs a local proxy and nothing else. Android does not ask for VPN permission, and no VPN key icon appears in the status bar. Only apps that you point at the proxy use Throne. The TUN settings and per-app proxy have no effect in this mode.
- Open
Settings→General→Service modeand chooseProxy only. - Go back to the profile list and tap the connect button.
- In the app that should use Throne, set a SOCKS5 or HTTP proxy with server
127.0.0.1and port2080(or theProxy portyou set). - If
Enable authorizationis on, also enter the username and password.
The local proxy accepts SOCKS5 and HTTP on the same port.
In this mode, Throne also sends its own requests through the local proxy, as if Settings → Subscriptions → Use proxy were on. Subscription updates and WARP registration therefore need a running profile. Without one, they fail with "Request with proxy but no profile started."
Disable mixed inbound has no effect in Proxy only mode, because the local proxy is the only way into Throne.
Per-app proxy
Per-app proxy decides which apps use the VPN. It works only in VPN mode.
Open Settings → TUN / VPN → Apps VPN mode. The app list opens. Choose a mode at the top of the list:
| Mode | Effect |
|---|---|
Off |
Per-app proxy is off and all apps use the VPN. Choosing it closes the list. |
Proxy |
Only the selected apps use the VPN. All other apps connect directly. |
Bypass |
The selected apps skip the VPN and connect directly. All other apps use the VPN. |
Opening the list turns per-app proxy on, with Bypass preselected the first time. To turn it off, open the list again and choose Off. If no app is selected, all apps use the VPN in both modes.
To select apps:
- Tap an app to select it. Tap it again to clear it.
- Use
Search…to find an app by name, package name or user ID. - Turn off
Show system appsto hide system apps. They are shown by default.
Each row shows the app name, the package name and the user ID in parentheses. Apps that share a user ID are selected together. Selected apps are listed first when you open the list. Selected packages that are not installed stay in the list and are marked "(not installed)".
Auto select proxy apps selects apps from a built-in list of about 390 apps that often need a proxy, such as Google apps, YouTube, Facebook, Instagram and Netflix. It replaces the selection of the installed apps. Packages that you added by name, or that are not installed, stay selected. In Proxy mode it selects the apps on that list. In Bypass mode it selects all other apps. In both cases, the apps on that list use the VPN and other apps do not. Apps with user ID 1000 (the Android system) count as apps on the list. Throne asks "Auto select proxy apps?" first. Tap Replace to continue.
The toolbar and the ⋮ menu of the list have these actions:
| Action | What it does |
|---|---|
Invert selections |
Selects every app that is not selected and clears the others. |
Clear selections |
Clears the whole selection. |
Add package name… |
Adds apps by package name, for example apps that the list cannot show. Separate several names with spaces, commas or new lines. |
Export to clipboard |
Copies the mode and the selected package names. |
Import from clipboard |
Replaces the mode and the selection with the copied list. |
The clipboard format is plain text. The first line is true for Bypass or false for Proxy. Each following line is one package name:
false
com.google.android.youtube
org.telegram.messenger
When you import, upper and lower case do not matter in the first line. Any first line other than true selects Proxy.
If Throne is connected, the new selection applies after the connection reloads. Stop and start the connection, or tap Apply when Throne shows "Reload proxy service to apply changes".
If the list stays empty, see Installed apps.
To send an app to a specific outbound while it stays in the VPN, use a routing rule with the Apps condition instead. The desktop app has no app list. On the desktop, you use routing rules by process name. See Routing.
LAN sharing
LAN sharing lets other devices on the same network, such as a laptop or a TV, use Throne on your phone as a proxy. It works in both service modes, and it also works for devices connected to your phone's hotspot.
- Open
Settings→Inboundand turn onAllow connections from the LAN. Throne then listens on all network interfaces instead of only on127.0.0.1. - Turn on
Enable authorizationand set aUsernameand aPassword. - Note the
Proxy port. It is2080by default. - If Throne is connected, tap
Applywhen Throne shows "Reload proxy service to apply changes", or reconnect. - Find the IP address of the phone. It is shown in the Android Wi-Fi settings, in the details of the connected network. For devices on your hotspot, use the router (gateway) address that the other device shows for its connection.
- On the other device, set a SOCKS5 or HTTP proxy with the phone's IP address, the port, the username and the password.
When you restore the Settings part of a backup that allows LAN connections, Throne turns Allow connections from the LAN off, unless it was already on, and shows a warning.
On the desktop, the same feature is called Allow other devices to connect. See System Proxy, TUN & LAN sharing.
TUN / VPN settings
These settings are in Settings → TUN / VPN. They apply only in VPN mode. If Throne is connected when you change a setting, tap Apply when Throne shows "Reload proxy service to apply changes".
| Setting | Default | What it does |
|---|---|---|
TUN implementation |
gVisor |
The network stack that handles the traffic of the VPN interface: gVisor, System or Mixed. If some apps do not work, try another one. |
MTU |
9000 |
The largest packet size of the VPN interface. Choose 1500 or 9000 from the list, or long-press the setting to enter any value from 1000 to 10000. |
Tun IPv6 |
Off | Gives the VPN interface an IPv6 address and routes IPv6 through it. When it is off, IPv6 connections fail at once while Throne runs, so apps use IPv4. Turn it on only if your server supports IPv6. |
Tun routing |
Off | Keeps the IP ranges that your routing profile sends direct outside the VPN interface, so this traffic does not pass through Throne. |
Bypass private ranges |
On | Keeps the Private ranges outside the VPN interface, so devices on your local network are reached directly. |
Private ranges |
8 ranges | The ranges that stay outside. One address or CIDR per line. Available while Bypass private ranges is on. |
Restore default ranges |
— | Puts back the default list of private ranges. |
Apps VPN mode |
Off | Per-app proxy. See Per-app proxy. |
IPv4 CIDR |
172.19.0.1/24 |
The IPv4 address of the VPN interface. |
IPv6 CIDR |
fdfe:dcba:9876::1/96 |
The IPv6 address of the VPN interface, used when Tun IPv6 is on. |
Restore default addresses |
— | Puts back both default addresses. |
The default private ranges are 10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16, 169.254.0.0/16, 224.0.0.0/4, fc00::/7, fe80::/10 and ff00::/8. If a routing rule sends addresses in a private range to an outbound other than direct, or rejects them, Throne keeps that whole private range inside the VPN interface so that the rule works.
Strict route is always on in the Android app and has no setting. On the desktop it is a setting. See TUN Mode.
MTU
The Android default MTU is 9000. The desktop default is 1500. Keep the default unless you have problems. If some apps or websites fail while others work, set MTU to 1500 and reconnect. When you restore the settings of a desktop backup, the desktop MTU comes with them. It is 1500 unless you changed it there.
Inbound settings
Settings → Inbound controls the local proxy of Throne, called the mixed inbound. It accepts SOCKS5 and HTTP on one port.
| Setting | Default | What it does |
|---|---|---|
Disable mixed inbound |
Off | In VPN mode, Throne does not open the local proxy. This also removes the HTTP proxy of the VPN and LAN sharing. It has no effect in Proxy only mode. |
Proxy port |
2080 |
The port of the local proxy. In a work profile or another Android user, the default is 2080 plus the number of that user. |
Random port |
Off | Picks a free port each time the connection starts and saves it as Proxy port. |
Allow connections from the LAN |
Off | Listens on all network interfaces instead of 127.0.0.1. See LAN sharing. |
HTTP proxy bypass list |
Empty | Domains that do not use the HTTP proxy of the VPN. One entry per line. |
Enable authorization |
Off | Clients must send the Username and Password. This applies to every client, including apps on this phone that use the HTTP proxy of the VPN. |
Custom inbound |
{"inbounds": []} |
Extra sing-box inbounds as JSON. Throne adds the inbounds array to its configuration unchanged. |
When Disable mixed inbound is on, all other settings on this screen except Custom inbound are disabled.
The desktop has similar settings. See Inbound settings.