Teamspeak 3 Reverse Proxy [NGINX] [WireguardVPN] [IFS]

Hallo zusammen,

ich bin aktuell auf der Suche nach Hilfe für ein kleines Problem. Vor einiger Zeit hat mein Internet Service Provider mich und meinen Anschluss hinter eine carrier grade nat gesteckt. Was dazu führt, dass ich diverse Probleme mit Verbindung von außen zu meinem Homeserver habe.

Um das Problem zu lösen habe ich jetzt einen Internet-Facing-Server per WireguardVPN davor geschaltet und Tunnel entsprechenden Traffic dort hindurch über einen NGINX Reverse Proxy. Leider fällt es mir schwer eine funktionierende Konfiguration für meinen Teamspeak 3 Server zusammenzubauen da die Thematik des Reverse Proxy für mich immer noch relatives Neuland ist.

Gibt es vielleicht Leute die bereits sowas umgesetzt haben? Oder hat jemand eine Example Config für sowas? Gibt es etwas Bestimmtes zu beachten, wenn man den Traffic von Teamspeak über ein Proxy umbiegen möchte ?

Über Hilfe würde ich mich sehr freuen da meine Freunde und ich den Teamspeak Server doch recht regelmäßig nutzen.

Mit freundlichen Grüßen


English

Hello, everybody,

I am currently looking for help with a small problem. Some time ago my internet service provider put me and my connection behind a carrier grade nat. This causes me to have several problems with external connections to my home server.

To solve this problem I have now added an Internet-Facing-Server via WireguardVPN and tunnel corresponding traffic through it via a NGINX Reverse Proxy. Unfortunately it is difficult for me to build a working configuration for my Teamspeak 3 server because the topic of the reverse proxy is still relatively new territory for me.

Are there people who have already implemented something like this ? Or does anyone have an example config for such a thing ? Is there anything special to consider when you want to bypass the traffic of Teamspeak through a proxy?

I would be glad about help because my friends and I use the Teamspeak server quite regularly.

With kind regards

1 Like

I just recently had some similar problems…
So first make sure your nginx is build with stream.
My conig is this:

        #TS server main port
        server {
                listen 9999 udp;
                listen [::]:9999 udp;
                proxy_pass ts3_stream_backend;
                proxy_timeout 60s; #not needed
        }

        upstream ts3_stream_backend {
                server censored:6653;
                server 127.0.0.1:9987 backup;
        }

        #TS server file port
        server {
                listen 30033;
                proxy_pass ts3_stream_files;
        }

        upstream ts3_stream_files {
                server censored:30033;
                server 127.0.0.1:30032 backup;
        }

I use this to provide a fallback server if the censored one is unreachable for some reason.
I’m not sure if this is indeed enough for you, as your problem seems to be a lot more sophisticated than just a basic reverse proxy.
Also make sure the given config is part of the stream directive.

1 Like

Hi,
do you actually use Nginx UDP Reverse Proxy for your TS3? I tried it myself with a simple test config:

stream {
            server {
                    listen 9987 udp;
                    listen [::]:9987 udp;
                    proxy_pass 10.0.0.2:9987;
                    error_log /var/log/nginx/ts3.log;
            }
    }

However it doesn’t work, on wireshark I can see some traffic, I also tried changing the Port on the Nginx server, it seems like something tells the ts3 server that it doesn’t like, also my version is

Address:10.0.0.2
Version:3.9.1 on Linux
License:Activation License
Uptime:76 days 11 hours 59 minutes 6 seconds
Current Channels:257
Current Clients:101 / 512 
Current Queries:2 / 512