Hey everyone,
like many of you, I ran into the issue that my existing TS3 tools stopped working after switching to TeamSpeak 6 – since the classic raw ServerQuery protocol (port 10011) has been replaced by SSH-based
queries (port 10022).
Instead of rewriting all my tools, I built a small proxy that bridges the gap:
What does it do?
ts3-query-proxy is a lightweight translation layer that accepts connections using the classic TS3 raw query protocol and forwards them to your TS6 server via SSH query. Your existing tools connect to the
proxy as if it were a TS3 server – no code changes needed.
How it works
TS3 Tool/Bot —(raw query, port 10011)—> ts3-query-proxy —(SSH, port 10022)—> TS6 Server
- Your tool connects to the proxy on port 10011
- The proxy returns the standard TS3 welcome banner
- On
login, the proxy captures the credentials and opens an SSH session to TS6 - All commands are relayed transparently in both directions
Who is this for?
- You’re using TS3MusicBot and want it to work with TS6
- You have Python/JS/PHP bots built with TS3 query libraries (e.g. the
ts3Python module) - You want to use YaTQA without dealing with plink/SSH configuration
- Any other tool that speaks the classic raw ServerQuery protocol
Setup (Docker)
Add it to your existing docker-compose.yml alongside your TS6 container:
ts3query-proxy:
image: ghcr.io/joshii-h/ts3-query-proxy:latest
restart: unless-stopped
ports:
- "10011:10011"
environment:
- TS6_HOST=teamspeak6
- TS6_SSH_PORT=10022
Important: The proxy's container IP/subnet must be added to your TS6 server's query_ip_allowlist.txt, otherwise you'll get error 520. Details are in the README.
Details
- Written in: Python
- License: MIT
- Docker-ready: yes, just docker compose up -d
Feedback, issues, and contributions are welcome. If you run into any problems, feel free to open an issue on GitHub or reply here.