The Settings tab controls every aspect of how qWDTT connects to VK TURN, obfuscates traffic, and behaves on the device. Changes take effect on the next connection attempt unless noted otherwise. Settings are persisted in Android DataStore and sensitive values (passwords, keys) are encrypted with Android Keystore.Documentation Index
Fetch the complete documentation index at: https://mintlify.com/SpaceNeuroX/proxy-turn-vk-android/llms.txt
Use this file to discover all available pages before exploring further.
Connection
Connection
workersPerHash — Workers per hash
Number of concurrent Go client worker threads allocated per VK hash.| Mode | Maximum | Default |
|---|---|---|
| Anonymous | 27 per hash (9 per group × 3 groups) | 16 |
| Account | 4 per hash (VK relay per-call limit) | 16 |
listenPort — Local listen port
UDP port that the Go client binds on the Android device. This is the local WireGuard endpoint.Default: 9000manualPortsEnabled / serverDtlsPort / serverWgPort — Manual port override
By default, qWDTT uses standard server ports (56000 for DTLS, 56001 for WireGuard) and derives them from the peer address. Enable Manual ports to override both values explicitly.| Key | Default |
|---|---|
serverDtlsPort | 56000 |
serverWgPort | 56001 |
wdtt-server is running on non-standard ports.connectionMode — Connection mode
Controls how qWDTT delivers traffic to the device:| Value | Description |
|---|---|
vpn | Creates an Android VpnService interface. All device traffic is routed through WireGuard (subject to split-tunnel exclusions). Requires the one-time VPN permission dialog. |
socks | Starts a local SOCKS5 proxy at 127.0.0.1:<socksPort>. No VPN interface or permission required. Configure individual apps to use the proxy manually. |
vpnsocksPort — SOCKS5 listen port
The port for the local SOCKS5 listener when connectionMode is socks.Default: 1080 — valid range 1–65535VK & TURN
VK & TURN
vkAuthMode — VK authentication mode
How qWDTT obtains TURN credentials from VK:| Value | Description |
|---|---|
anonymous (default) | The Go client calls the VK API anonymously (client_id 6287487 / 8202606). Handles Smart Captcha automatically through a solver chain, with a WebView fallback. Supports up to 27 workers per hash. |
account | On each connection, a WebView opens a VK call page and intercepts the turn_server response directly. Requires a one-time VK login. TURN credentials are cached for ~9 minutes before automatic refresh. Capped at ~4 workers per hash. |
vkAnonPath — Anonymous VK API path
Selects which anonymous VK API endpoint the Go client uses to obtain TURN credentials. Only applies when vkAuthMode is anonymous.| Value | Description |
|---|---|
vkcalls (default) | Newer VK Calls API path. Recommended. |
legacy | Original legacy API path. Use only if the newer path is blocked on your network. |
captchaMode — Captcha solve mode
Controls how VK Smart Captcha challenges are handled during anonymous auth:| Value | Description |
|---|---|
auto (default) | Tries solvers in sequence: Go RJS solver → Go WebView auto-attempt → manual WebView if all automatic attempts fail. |
wv | Skips RJS; uses only the WebView solver (auto first, manual fallback). |
rjs | Prefers the Go RJS solver; falls back to WebView auto on failure. |
goDnsPreset — Go client DNS
DNS used by the Go client when resolving VK API hostnames (login.vk.ru, api.vk.me). This is separate from your system DNS or the WireGuard tunnel DNS.| Value | Servers |
|---|---|
yandex (default) | 77.88.8.8, 77.88.8.1 |
cloudflare | 1.1.1.1, 1.0.0.1 |
google | 8.8.8.8, 8.8.4.4 |
doh-yandex | common.dot.dns.yandex.net (DoH) |
doh-cloudflare | cloudflare-dns.com (DoH) |
doh-google | dns.google (DoH) |
custom | Your own DNS server IPs (comma-separated) |
doh-custom | Your own DoH URL(s) (must start with https://) |
Obfuscation
Obfuscation
obfsMode — Obfuscation mode
Selects the RTP payload type used to disguise TURN traffic as WebRTC media:| Value | Description |
|---|---|
audio (default) | Wraps packets as OPUS audio RTP, payload type 111. Resembles a voice call. |
video | Wraps packets as H.264 video RTP, payload type 96. Resembles a video call. |
audio unless your network specifically blocks audio call patterns.Split Tunneling (Exclusions)
Split Tunneling (Exclusions)
App exclusion list
The Exclusions tab inside Settings lets you choose which apps bypass the WireGuard VPN tunnel. This only applies whenconnectionMode is vpn.Two modes are available:| Mode | Behaviour |
|---|---|
Blacklist (isWhitelist = false, default) | All apps go through the VPN except the ones you add to the list. Excluded apps use the regular internet connection. |
Whitelist (isWhitelist = true) | Only the apps you add to the list go through the VPN; all other apps use the regular internet connection. |
runetDirect — Russian IP ranges direct
When enabled, Russian IPv4 subnets are added to the AllowedIPs exclusion list for WireGuard, so traffic to Russian IP addresses bypasses the tunnel and goes directly through the regular connection.Default: falseAppearance & Behaviour
Appearance & Behaviour
themeMode — Theme
| Value | Description |
|---|---|
system (default) | Follows the system dark/light mode setting |
light | Always light |
dark | Always dark |
isDynamicColor — Material You dynamic colors
When enabled, the app palette is derived from your wallpaper (Android 12+). When disabled, the palette set in themePalette is used.Default: falsethemePalette — Color palette
The named color palette to use when dynamic colors are disabled. Example values: indigo, teal, rose, etc.Default: indigoautoSwitchToLogs — Auto-switch to Logs on connect
Automatically activates the Logs sub-tab in the Tunnel tab as soon as you tap Connect, so you can watch the connection pipeline without navigating manually.Default: truedetailedLogs — Detailed logs
Enables verbose output from the Go client. Unhandled lines that are normally suppressed are shown in the Logs tab with a [Go] prefix.Default: falsestopOnWifi — Stop on Wi-Fi
Disconnects the tunnel automatically when the device switches to a validated Wi-Fi network. Useful if you only need the tunnel on mobile data.Default: falseconnectionPipelineEnabled — Connection pipeline
Shows the staged connection progress display (DNS → VK → WRAP → TURN → DTLS → Workers → VPN/SOCKS) while connecting. Disable to see only the raw log stream.Default: truesortProfilesByPing — Sort profiles by ping
After measuring latency, the profile list is automatically sorted in ascending order of ping. Profiles that have not been pinged yet appear at the bottom.Default: falsesubscriptionAutoRefreshHours — Subscription auto-refresh interval
How often qWDTT silently refreshes all subscriptions in the background (when the tunnel is not running):| Value | Behaviour |
|---|---|
-1 | Never auto-refresh |
0 | Refresh every time the app is opened |
6 | Every 6 hours |
12 (default) | Every 12 hours |
24 | Every 24 hours |
interfaceRole — Interface role
| Value | Description |
|---|---|
admin (default) | Shows the Deploy tab, which allows installing wdtt-server on a VPS via SSH from the device. |
user | Hides the Deploy tab for a cleaner UI when you don’t need server management. |