Skip to main content

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.

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.

workersPerHash — Workers per hash

Number of concurrent Go client worker threads allocated per VK hash.
ModeMaximumDefault
Anonymous27 per hash (9 per group × 3 groups)16
Account4 per hash (VK relay per-call limit)16
More workers means more parallel TURN channels and higher potential throughput, but also more load on the VK relay and the server. Start with the default and increase if you need more bandwidth.

listenPort — Local listen port

UDP port that the Go client binds on the Android device. This is the local WireGuard endpoint.Default: 9000

manualPortsEnabled / 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.
KeyDefault
serverDtlsPort56000
serverWgPort56001
Use manual ports only if your wdtt-server is running on non-standard ports.

connectionMode — Connection mode

Controls how qWDTT delivers traffic to the device:
ValueDescription
vpnCreates an Android VpnService interface. All device traffic is routed through WireGuard (subject to split-tunnel exclusions). Requires the one-time VPN permission dialog.
socksStarts a local SOCKS5 proxy at 127.0.0.1:<socksPort>. No VPN interface or permission required. Configure individual apps to use the proxy manually.
Default: vpn

socksPort — SOCKS5 listen port

The port for the local SOCKS5 listener when connectionMode is socks.Default: 1080 — valid range 1–65535

vkAuthMode — VK authentication mode

How qWDTT obtains TURN credentials from VK:
ValueDescription
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.
accountOn 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.
ValueDescription
vkcalls (default)Newer VK Calls API path. Recommended.
legacyOriginal 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:
ValueDescription
auto (default)Tries solvers in sequence: Go RJS solver → Go WebView auto-attempt → manual WebView if all automatic attempts fail.
wvSkips RJS; uses only the WebView solver (auto first, manual fallback).
rjsPrefers 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.
ValueServers
yandex (default)77.88.8.8, 77.88.8.1
cloudflare1.1.1.1, 1.0.0.1
google8.8.8.8, 8.8.4.4
doh-yandexcommon.dot.dns.yandex.net (DoH)
doh-cloudflarecloudflare-dns.com (DoH)
doh-googledns.google (DoH)
customYour own DNS server IPs (comma-separated)
doh-customYour own DoH URL(s) (must start with https://)
If the DNS pre-flight check fails before the Go client starts, qWDTT aborts the connection attempt and shows a hint to change DNS.

obfsMode — Obfuscation mode

Selects the RTP payload type used to disguise TURN traffic as WebRTC media:
ValueDescription
audio (default)Wraps packets as OPUS audio RTP, payload type 111. Resembles a voice call.
videoWraps packets as H.264 video RTP, payload type 96. Resembles a video call.
Both modes use WRAP (ChaCha20-Poly1305) encryption inside the RTP stream. The choice affects which WebRTC traffic pattern DPI sees; use audio unless your network specifically blocks audio call patterns.

App exclusion list

The Exclusions tab inside Settings lets you choose which apps bypass the WireGuard VPN tunnel. This only applies when connectionMode is vpn.Two modes are available:
ModeBehaviour
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: false
This option was reset to false in version 1.3.5 for all users due to instability on some devices. You can re-enable it manually if needed.

themeMode — Theme

ValueDescription
system (default)Follows the system dark/light mode setting
lightAlways light
darkAlways 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: false

themePalette — Color palette

The named color palette to use when dynamic colors are disabled. Example values: indigo, teal, rose, etc.Default: indigo

autoSwitchToLogs — 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: true

detailedLogs — 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: false

stopOnWifi — 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: false

connectionPipelineEnabled — 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: true

sortProfilesByPing — 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: false

subscriptionAutoRefreshHours — Subscription auto-refresh interval

How often qWDTT silently refreshes all subscriptions in the background (when the tunnel is not running):
ValueBehaviour
-1Never auto-refresh
0Refresh every time the app is opened
6Every 6 hours
12 (default)Every 12 hours
24Every 24 hours

interfaceRole — Interface role

ValueDescription
admin (default)Shows the Deploy tab, which allows installing wdtt-server on a VPS via SSH from the device.
userHides the Deploy tab for a cleaner UI when you don’t need server management.

Build docs developers (and LLMs) love