Jump to content

[RÉSOLU] Simuler un LAN à l'aide de ssh par port forwarding, serveur et client


Recommended Posts

Bonjour,

Je cherche à réaliser la chose suivante :

Considérons un serveur sous Linux ("servlinux") avec une adresse de type no-ip (lien entre un nom et une ip dynamique) et avec un serveur ssh écoutant en 22.

Considérons des machines sous windows pour jouer à des jeux vidéos. Le port utilisé par le jeu sera supposé ici 2356.

Objectif : jouer comme si l'on était en LAN, sans avoir à installer un VPN ou devoir passer par des ports ouverts sur le net autre que le ssh.

L'idée serait la suivante :

Le joueur qui sert la partie (qui host le serveur de jeu donc) lance un tunnel ssh sous windows avec putty, du type :

ssh joueur0@servlinux -R 2356:servlinux:2356

Puis laisse ouvert le tunnel (avec un top par exemple) et lance le jeu, et lance le serveur de jeu en attendant les autres.

Les autres joueurs lancent ensuite un ssh toujours avec putty du type :

ssh joueur0@servlinux -L 2356:servlinux:2356

Puis laissent ouvert le tunnel et lance le jeu. En principe, le jeu devrait croire que tout le monde tourne sur la même machine (genre 5 joueurs et le serveur de jeu tournant sur la même machine), et donc tout le monde peut se connecter comme si il s'agissait d'un réseau local.

Pensez vous que ça pourrait marcher ?

J'avais fait un truc équivalent, mais uniquement avec les ssh joueur0@servlinux -L 2356:servlinux:2356, le serveur de jeu tournait directement sur servlinux.

moomba

Link to comment
Share on other sites

Ça va être entièrement dépendant du jeu, car dans le cas d'un tunnel SSH il faut explicitement dire aux applications d'y passer. D'où le recours à une solution plus complète de type VPN qui elle agit au niveau du système entier.

Les jeux ne proposent pas souvent de passer par un proxy, notamment parce qu'ils utilisent plusieurs ports, alors que le tunnel ne tourne que sur un seul. Et la plupart du temps, tu n'accède à rien comme réglage, donc tu peux pas dire qu'ils envoient tout sur le tunnel.

Sinon effectivement en effet théoriquement c'est tout à fait possible.

Link to comment
Share on other sites

Ca doit pouvoir marcher avec les jeux "mono-port". Ca fonctionnait avec Minecraft en mode serveur logiciel sur le serveur linux, et les autres se connectaient à partir de windows avec putty. Il suffisait de dire au jeu que le serveur se trouve à l'adresse localhost:22562 .

Je vais tenter ma chance avec d'autres jeux et celui là aussi et vous tenir au courant. J'ai plus de doutes sur le -R en fait. Je vais tester et vous informer des soucis ou des réussites.

Les jeux : minecraft, bf1942, diablo2, ageofempire2, empireearth.

Link to comment
Share on other sites

Hamachi, c'est bien le truc qui avait hijacké le préfixe 5.0.0.0/8 ? :transpi:

Gag à part, Hamachi ça fonctionne en UDP, ssh en TCP.

Le transfert de port (ssh -L ou ssh -R) ne fonctionne que pour des connexions TCP (sauf à bricoler avec du netcat pour passer de l'UDP au dessus).

Avec ssh -w, tout repasse au dessus de TCP (donc ça donne du TCP dans TCP, ou de l'UDP dans du TCP), c'est pas efficace, ça dépanne quand on a que ça à sa disposition, mais les performances en prennent un coup.

Link to comment
Share on other sites

Le gros souci en fait est que certains d'entre nous utilisent des PC d'entreprises (PC portables du boulot) sans droits admins donc. Les jeux tournent sans installe (copier-coller), mais pas moyen de mettre un vpn.

D'où l'idée du ssh. Mais effectivement, ca vas finir en VPN si ça ne tourne pas, et tant pis pour les autres.

Pas encore eu le temps de tester, j'vous dis quoi rapidement.

Link to comment
Share on other sites

Tu peux oublier tout de suite aoe2 par contre. Tu va perdre ton temps avec celui-là.

Par contre tu peux peut-être essayer Voobly, je ne sais pas s'il faut les droits administrateur, mais ça marchait vachement bien (mis à part que le patch hd n'est pas disponible pour aoe2).

Link to comment
Share on other sites

Marche pas. :/

Tout essayé, pas moyen si le serveur de jeu n'est pas directement sur le serveur matériel.

Donc ras le bol, on a mis un VPN :D . J'ai suivit ce tuto :

http://blog.nicolarg...bianubuntu.html

Installé sur un raspberry pi comme serveur, ca marche du tonnerre. N'oubliez pas de lancer le client en mode administrateur sous windows si vous voulez que ca marche (pour ceux qui sont interessés).

Merci pour vos conseils ;)

Link to comment
Share on other sites

Marche pas si bien que ça, je me suis emballé trop vite. Nous parvenons à nous connecter, on peut pinger le serveur, mais pas moyen de pinger les machines entre elles.

Coté serveur :

pi@raspberrypi /etc/openvpn $ cat server.conf# Serveur TCP/443mode serverproto tcpport 443dev tun# Cles et certificatsca ca.crtcert server.crtkey server.keydh dh1024.pemtls-auth ta.key 0cipher AES-256-CBC# Reseauserver 10.8.0.0 255.255.255.0push "redirect-gateway def1 bypass-dhcp"push "dhcp-option DNS 4.4.4.4"push "dhcp-option DNS 8.8.8.8"keepalive 10 120# Securiteuser nobodygroup nogroupchroot /etc/openvpn/jailpersist-keypersist-tuncomp-lzo# Logverb 3mute 20status openvpn-status.loglog-append /var/log/openvpn.log

Et :

pi@raspberrypi /$ sysctl net.ipv4.ip_forwardnet.ipv4.ip_forward = 1

Et coté client :

# Clientclientdev tunproto tcp-clientremote toto 443resolv-retry infinitecipher AES-256-CBC# Clesca ca.crtcert dudule.crtkey dudule.keytls-auth ta.key 1# Securitenobindpersist-keypersist-tuncomp-lzoverb 3

Ai je fait une erreur ?

Link to comment
Share on other sites

Tous des windows 7 x64, ce sont des grosses machines dédiées aux jeux. J'ai essayé de couper le parefeu, mais même là ca ne ping toujours pas.

J'utilise OpenVpn GUI et le driver TAP, le pack donné par défaut sur le site d'openvpn.

A noter que le serveur sous debian ARM utilise comme parefeu ufw (surcouche d'iptable il me semble), et que les ports 22 et 443 sont ouverts en tcp durant la phase ou le vpn est actif (fermés sinon).

Link to comment
Share on other sites

Ok. Sur ton serveur tu peux commenter toutes les lignes "push ..." qui ne servent à rien. Il faut aussi rajouter l'option "client-to-client" dans le même fichier pour que les clients puissent se voir entre eux.

Et puis avec Windows 7 il y avait normalement un problème avec le réseau qui restait "non identifié", tu ne l'a pas ?

Edit : tu peux désactiver aussi l'ip forwarding qui ne sert à rien non plus.

Link to comment
Share on other sites

A la bourre. Je suis dans les pyrénées et choper internet ici est un vrai défis. Bricolé une antenne avec un soucoupe en alu, ca marche pas mal.

Pas eu l'occasion de tester donc, mais après avoir regardé le manuel, il semble bien que le souci viennent du manque de client-to-client.

Je te tient au courant en début de semaine ;)

Link to comment
Share on other sites

Ca marche, merci. Battlefield 1942 fonctionne, mais pas Age Of empire 1 ou 2. Comprend pas pourquoi, peut être un protocole manquant ? Pourtant on a essayé TCPIP, et les parefeu étaient baissés.

Problème résolu donc, merci beaucoup ;)

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...