T
tuxedo
Gast
Hi,
da ich auf meinem gemieteten virtuellen root-server keinen Kernel compilen darf und auch keine Kernelmodule laden darf und mit portweiterleitung per ssh keine Sicherheitslücke aufmachen will hab ich mir folgendes für meinen Gameserver überlegt:
Eine Art Game-VPN per Java:
Ein Server der Verbindungen von Clients auf Port 1 entgegen nimmt. Der Client meldet sich mit Name+PW am Server an. Ist die Anmeldung erfolgreich schaltet der Server die Verbindung zu einem Port der nur "lokal" erreichbar ist weiter.
Gleiches muss der Client machen damit sich das Spiel das mit dem Server eigtl auf Port 99 kommunizieren will mit dem Client verbinden kann.
Ich versuchs mal zu skizzieren (mit frei erfundenen dummy-ports)
Game-Server-Anwendung (lauscht auf Port 99, per FW nur für localhost erreichbar)
/\
/\ <stream per localhost vom java-vpn-server>
/\
Java-VPN-Server (lauscht auf Port 1)
/\
/\
/\
/\ <INTERNET>
/\
/\
/\
Java-VPN-Client (lauscht auf localhost port 99, connected zu Java-VPN-Server auf Port 1)
/\
/\
/\ <Stream vom Spiel ausgehend>
/\
/\
Spiel das sich zum Spielserver verbinden will (der auf Port 99lauscht)
Nochmal das ganze in Kurzfassung:
Die Java-Client und der Java-Server leiten also local von einem Port zum anderen weiter...
Ist das in Java machbar ? "Vertragen" die Java-Socket-Streams "alle" Daten die über die Leitung gehen ? Also auch Spieldaten ?
Kann ich eingehende Streams auf andere ausgehende "umleiten"/"weiterreichen" ?
Es wird im übrigen von einem einzelnen Client nicht übermäßig viel traffic produziert. Das mittlere maximum liegt bei 2-5kbyte/sek.
Die Bandbreite des Servers ist groß genig um locker 200 Spieler zu bedienen... wie performant könnte mein vorhaben laufen ? frisst Java da performance wenn es nur streams weiterleiten muss (sofern das überhaupt geht) ?
gruss
Alex
da ich auf meinem gemieteten virtuellen root-server keinen Kernel compilen darf und auch keine Kernelmodule laden darf und mit portweiterleitung per ssh keine Sicherheitslücke aufmachen will hab ich mir folgendes für meinen Gameserver überlegt:
Eine Art Game-VPN per Java:
Ein Server der Verbindungen von Clients auf Port 1 entgegen nimmt. Der Client meldet sich mit Name+PW am Server an. Ist die Anmeldung erfolgreich schaltet der Server die Verbindung zu einem Port der nur "lokal" erreichbar ist weiter.
Gleiches muss der Client machen damit sich das Spiel das mit dem Server eigtl auf Port 99 kommunizieren will mit dem Client verbinden kann.
Ich versuchs mal zu skizzieren (mit frei erfundenen dummy-ports)
Game-Server-Anwendung (lauscht auf Port 99, per FW nur für localhost erreichbar)
/\
/\ <stream per localhost vom java-vpn-server>
/\
Java-VPN-Server (lauscht auf Port 1)
/\
/\
/\
/\ <INTERNET>
/\
/\
/\
Java-VPN-Client (lauscht auf localhost port 99, connected zu Java-VPN-Server auf Port 1)
/\
/\
/\ <Stream vom Spiel ausgehend>
/\
/\
Spiel das sich zum Spielserver verbinden will (der auf Port 99lauscht)
Nochmal das ganze in Kurzfassung:
Die Java-Client und der Java-Server leiten also local von einem Port zum anderen weiter...
Ist das in Java machbar ? "Vertragen" die Java-Socket-Streams "alle" Daten die über die Leitung gehen ? Also auch Spieldaten ?
Kann ich eingehende Streams auf andere ausgehende "umleiten"/"weiterreichen" ?
Es wird im übrigen von einem einzelnen Client nicht übermäßig viel traffic produziert. Das mittlere maximum liegt bei 2-5kbyte/sek.
Die Bandbreite des Servers ist groß genig um locker 200 Spieler zu bedienen... wie performant könnte mein vorhaben laufen ? frisst Java da performance wenn es nur streams weiterleiten muss (sofern das überhaupt geht) ?
gruss
Alex