Ts3-query-proxy | Use your existing TS3 tools with TeamSpeak 6

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:

GitHub: GitHub - joshii-h/ts3-query-proxy: Translation layer: TS3 raw query (TCP 10011) → TS6 SSH query (TCP 10022) · GitHub

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

  1. Your tool connects to the proxy on port 10011
  2. The proxy returns the standard TS3 welcome banner
  3. On login, the proxy captures the credentials and opens an SSH session to TS6
  4. 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 ts3 Python 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.
1 Like

If a bot or tool is still not have SSH support, it should not be used…

This software bridge the connection if the bot does not use ssh. So it bridges the query.

I think his comment is referring more to the tools themselves, which haven’t yet managed to switch to the “new” SSH query—less so to your work, I think.

And in a way, it makes sense; I mean, there are tools and bots that already support the SSH query, so why keep using tools that haven’t yet managed to implement this support into their software? If the old tools want to remain relevant, they’ll eventually have to move with the times and switch to SSH.

3 Likes

Teamspeak has had SSH support for years: If developers think they don’t need to add that, then their bot is just bad. SSH support is totally easy and goes fast to add so there’s no excuse, so I think anyone who has such a “bot” or “tool” today with no SSH support shouldn’t continue to use it.

2 Likes