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.

qWDTT ships with a bundled deploy.sh installer that sets up wdtt-server on any supported Linux VPS. The Deploy tab in the app uploads the script and the server binary over SSH and runs them automatically — no terminal required. You can also run the script manually if you prefer direct shell access.

Prerequisites

1

Supported Linux VPS

A VPS with a public IP address running one of:
  • Debian 11+
  • Ubuntu 20.04+
  • CentOS / RHEL / AlmaLinux / Rocky Linux
  • Fedora
  • Arch Linux / Manjaro / EndeavourOS
The VPS must have systemd available (systemctl).
2

Root or sudo SSH access

SSH access with the root account or a user that has sudo privileges. Both password and private key (OpenSSH / PEM) authentication are supported.
3

Open UDP ports in your firewall / security group

Allow inbound UDP traffic on:
  • 56000 — DTLS listener (client connections)
  • 56001 — WireGuard internal port
The deploy script automatically adds iptables / nftables rules for these ports, but cloud provider security groups (AWS, Hetzner, etc.) must be opened manually before deploying.
4

Telegram bot (optional)

A Telegram bot token from @BotFather and your numeric Telegram user ID if you want remote password management via the bot. This is optional — the server works without it.

Deploy from the app

1

Open the Deploy tab

In qWDTT, tap the Deploy tab at the bottom of the screen.
2

Fill in SSH connection details

FieldDescriptionDefault
IP / DomainPublic IP address or hostname of your VPS
LoginSSH usernameroot
SSH portSSH port (set in the Secrets dialog)22
PasswordSSH password — or switch to SSH key mode and pick a private key file
3

Set VPN secrets

Tap Secrets and fill in:
FieldDescription
VPN passwordMain tunnel password (required). This becomes main_password in passwords.json. Choose something strong.
Admin IDYour Telegram user ID for bot access (optional)
Bot tokenToken from @BotFather (optional)
SSH portSSH port used during deployment
Toggle Manual port control to override the default DTLS port (56000) and WireGuard port (56001) if needed.
4

Configure DNS (optional)

DNS1 and DNS2 are passed to WireGuard clients as their DNS servers. Defaults are 1.1.1.1 and 1.0.0.1.
5

Tap Deploy

Tap Install. The app connects over SSH, uploads deploy.sh and the wdtt-server binary to /tmp/, runs the installer as root, and streams progress. When finished, the progress bar reaches 100% and a success banner appears.You can also uninstall the server at any time by tapping Remove and confirming with “да”.

Manual install

You can run deploy.sh directly on the VPS. Configure it via environment variables before running:
VariableDefaultDescription
WDTT_MAIN_PASSWORDMain VPN password (passed to wdtt-server via WDTT_ARGS)
WDTT_BOT_TOKENTelegram bot token
WDTT_ADMIN_IDTelegram admin user ID
WDTT_DTLS_PORT56000DTLS listen port
WDTT_WG_PORT56001WireGuard internal port
WDTT_SSH_PORT22SSH port (added to firewall allow-list)
WDTT_ARGSExtra command-line arguments forwarded verbatim to wdtt-server
Example:
export WDTT_MAIN_PASSWORD="YourStrongPassword"
export WDTT_BOT_TOKEN="123456:ABC-..."
export WDTT_ADMIN_ID="987654321"
bash deploy.sh
The script accepts an optional action argument: install (default), uninstall, or status.
bash deploy.sh status       # check current state
bash deploy.sh uninstall    # remove wdtt-server (passwords.json is preserved)

What the script does

deploy.sh (v3.2) performs the following steps in order:
1

Detects OS and package manager

Reads /etc/os-release and selects apt, dnf, yum, or pacman accordingly.
2

Installs prerequisites

Installs ca-certificates, iproute2, iptables, nftables, procps, and psmisc using the detected package manager.
3

Enables IP forwarding

Writes net.ipv4.ip_forward = 1 to /etc/sysctl.d/99-wdtt.conf and applies it immediately.
4

Configures NAT and firewall rules

  • Opens UDP 56000 (DTLS) and 56001 (WireGuard) in iptables / nftables
  • Adds MASQUERADE POSTROUTING rule for 10.66.0.0/16 on the detected WAN interface
  • Adds FORWARD rules for the wdtt0 interface
  • Applies TCP MSS clamping for the 10.66.0.0/16 subnet to fix MTU issues
5

Installs the wdtt-server binary

Moves /tmp/wdtt-server to /usr/local/bin/wdtt-server with chmod 755. Creates /etc/wdtt/ if it does not exist.
6

Creates systemd service

Writes /etc/systemd/system/wdtt.service, runs systemctl daemon-reload, enables, and starts the wdtt service. The service restarts automatically on failure (Restart=always, RestartSec=5).
7

Starts wdtt-server

Runs systemctl restart wdtt and confirms active status. Logs are available via journalctl -u wdtt -f.

Port reference

PortProtocolPurpose
56000UDPDTLS — client connections from Android
56000TCPHTTP Control API (/api/profile/status, /api/profile/unbind)
56001UDPWireGuard (internal, server-side only)
9000UDPDefault local Android listen port (not on the server)
The WireGuard interface created by wdtt-server is named wdtt0, not wg0. This is intentional — it avoids any conflict with an existing WireGuard VPN you may already have running on the same server.

Build docs developers (and LLMs) love