Archiv verlassen und diese Seite im Standarddesign anzeigen : Teamspeak 3 - Unterschiedliche Ports pro Domain
Hallo zusammen.
Ich hatte da eine Idee, bin mir aber nicht sicher, ob das überhaupt funktionieren kann:
Ich habe einen Server mit Plesk Installation (Emails, Domain, ...) und einem Teamspeak 3 Server mit mehreren Instanzen.
Nun hätte ich gerne, dass unterschiedliche Instanzen angesprungen werden, je nachdem, welche Domain in der Adresszeile angegeben wurde. Also quasi ein Mapping in der Form:
domain1.de:9987 -> localhost:9988
domain2.de:9987 -> localhost:9989
domain3.de:9987 -> localhost:9990
Ist das so machbar?
Ich hatte mal spaßeshalber versucht, mit NGINX und der proxy-Direktive selbst eine Art dispatcher zu bauen, aber anscheinend funktioniert das (nur mit Teamspeak?) nicht.
Hätte jemand eine andere Idee, wie man das hinbekommt?
Nginx ist für http(s).
Hast du mehrere IP's dafür?
Dann kannst du mit iptables Umleitungen bauen.
Nginx ist für http(s).
Hast du mehrere IP's dafür?
Dann kannst du mit iptables Umleitungen bauen.
Leider nicht, da der Serveranbieter zusätzliche IPs nur mit triftigen Gründen verteilt (eine Vorgabe des RIPE)...
So trifftig ist der Grund leider nicht...
Wenn Du damit leben kannst, daß domain1:1234 und domain2:1234 auf der gleichen TS-Instanz landen kannst Du doch problemlos domain[1-x] auf deine IP registieren und dann eben domain1:1234, domain2:2345 u.s.w. verwenden.
Wenn Du damit leben kannst, daß domain1:1234 und domain2:1234 auf der gleichen TS-Instanz landen kannst Du doch problemlos domain[1-x] auf deine IP registieren und dann eben domain1:1234, domain2:2345 u.s.w. verwenden.
Eben das will ich ja nicht. unterschiedliche Domains sollen unterschiedliche Instanzen anspringen...
Es wäre halt schön, wenn man im TS nicht mehr den Port mit angeben müsste, wenn man TS konfiguriert...
dann besorg Dir mehrere IPs.
... oder leg den TS-Entwicklern nahe, sie mögen doch bitte NamedVirtualHosts implementieren.
Leider nicht, da der Serveranbieter zusätzliche IPs nur mit triftigen Gründen verteilt (eine Vorgabe des RIPE)...
Eine Vorgabe vom RIPE? Totaler Quatsch(Und wenn den das so sagst, dann weisst Du auch wer im nächsten Jahrhundert keine IPv4 mehr zugeteilt bekommt :) ) Die können mit Ihren IPs machen, was Sie wollen.
Grund A) 99% Aller Anfragen nach zusätzlichen IP-Adressen kommen von Spammern.
Grund B) Sie haben nur sehr wenige IPv4-Adressen.
Falls A zutrifft, könntest Du Dein Anliegen schildern. Vielleicht hast Du Glück.
Falls B zutrifft, könnest Du ja einfach fragen, ob es so ist. Dann weisst Du wenigstens Bescheid.
DrunkenFreak
01.08.17, 07:00
Für mich ist das Grund genug. Beantrage neue IPs und gut ist.
OK, IP habe ich bestellt und ist aktiviert.
IP-Tables ist wie folgt konfiguriert:
iptables -A PREROUTING -t nat --source $second_ip -p udp --dport 9987 -j DNAT --to-destination $first_ip:9988
iptables -A FORWARD -s $second_ip -d $first_ip -p udp --dport 9987 -j ACCEPT
iptables -A POSTROUTING -t nat -p udp --dport 9988 -j MASQUERADE
Aber leider werde ich bei Zugriff auf $second_ip:9987 auch wirklich mit 9987 verbunden...
Muß ich die INPUT Chain abändern, so dass das ACCEPT für 9987 nur für die erste IP gilt, oder ist das egal?
Aktuell ist die INPUT Chain so aufgebaut:
iptables -A INPUT -p udp --dport 9987 -j ACCEPT
iptables -A INPUT -p udp --dport 9988 -j ACCEPT
iptables -A INPUT -p udp --dport 9989 -j ACCEPT
Danke für eure Mühen und Tipps,
Gruß,
_X_
wäre es nicht einfacher, die TS-Instanzen direkt auf dem gewünschten Ports zu starten und direkt an die gewünschte IP zu binden?
wäre es nicht einfacher, die TS-Instanzen direkt auf dem gewünschten Ports zu starten und direkt an die gewünschte IP zu binden?
Soweit ich weiß, kann TS nur durchgehende Port-Nummern erzeugen. Die IP ist ihm erstmal egal...
Ist es in Linux / IP möglich, einen Port nur auf eine bestimmte IP zu verbinden? Ich dachte immer, Ports wären global, so dass nicht mehrere Anwendungen den selben Port auf unterschiedlichen IPs anbieten können...
10s Google: http://forum.teamspeak.com/threads/60680-Bind-to-IP
default_voice_port=9987
voice_ip=0.0.0.0
So wie es aussieht kann man die IP konfigurieren.
Jaaaaaa, aber ich hätte gerne, dass unter der Haupt-IP alle Server erreichbar sind, und nur über die zweite IP eine spezielle Instanz angesprungen wird... Denn ansonsten bräuchte ich ja zwei Server, zwei Lizenzen....
Ich möchte "einfach nur", dass IPTables die Ports so weiterleitet, dass es nach aussen so erscheint, als ob die Ports anders wären...
Ich tippe einfach mal darauf, dass die Regel "iptables -A INPUT -p udp --dport 9988 -j ACCEPT" schon direkt dafür sorgt, dass kein NAT gemacht wird... Vielleicht hätte da ja jemand eine zündende Idee :-)
Und ja, es geht auch ein bischen ums Prinzip, da ich die Feinheiten von Ethernet, IP und TCP besser verstehen möchte...
iptables -A PREROUTING -t nat --source $second_ip -p udp --dport 9987 -j DNAT --to-destination $first_ip:9988
Wahrscheinlich möchtest Du das hier:
iptables -A PREROUTING -t nat --destination $second_ip -p udp --dport 9987 -j DNAT --to-destination $first_ip:9988
Im übrigen bin ich mir nicht sicher, ob die Reihenfolge der Parameter nicht auch noch einen Unterschied macht. Ich würde das eher so schreiben:
iptables -t <TABLE> -A <CHAIN> -p <PROTOCOL> ...
----
iptables -A POSTROUTING -t nat -p udp --dport 9988 -j MASQUERADE
Das Masquerade sollte nicht notwendig sein. Dein Server muss seine eigene Adresse ja nicht sehen. Dort darf ruhig die Adresse des Clients drin stehen.
Wahrscheinlich möchtest Du das hier:
iptables -A PREROUTING -t nat --destination $second_ip -p udp --dport 9987 -j DNAT --to-destination $first_ip:9988
Danke, genau das war es. Anstelle von --source muss da --destination stehen...
Danach konnte ich die FORWARD und POSTROUTING Rules löschen, und es lief alles wieder einwandfrei...
Vielen Herzlichen Dank euch allen!
Powered by vBulletin® Version 4.2.5 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.