Comment canaliser et parcourir la page Web du serveur sur mon ordinateur portable?

55

J'exécute une application Web sur l'un de mes serveurs de laboratoire et j'ai déjà configuré le transfert X11 sur ces ordinateurs. D'autres membres du laboratoire peuvent passer par SSH et naviguer dans cette application Web depuis leur navigateur local à la maison.

Je ne peux pas La dernière fois que j'ai vérifié avec eux, je n'ai presque rien à faire.

Quand je tape 192.168.1.113/webappje ne reçois rien.

Des conseils?

Merci.


J'ai fini par utiliser la deuxième méthode :)

ssh -L 8080:<server-ip-address>:80 <username>@<remote-addr> -N
CppLearner
la source
@ BlueXrider general, oui, sur le sujet, oui. Pour quelque chose comme ça, les versions d’Ubuntu n’ont pas vraiment d’importance. C’est une question aussi importante que Qu'est-ce qu’un torrent et comment puis-je l’utiliser, ce qui est considéré comme tel . :)
jrg

Réponses:

105

Ceci est possible de deux manières avec SSH.

Tunnel Tout avec un proxy SOCKS

Connectez-vous à la machine distante à l'aide de la commande suivante:

ssh -D 8080 remote-host

Maintenant, allez dans les paramètres de proxy de votre navigateur et configurez-le pour utiliser un proxy SOCKS avec le nom d'hôte 127.0.0.1et le port 8080(ou le port que vous avez transmis à l' -Doption). Maintenant, toutes les pages que vous chargez dans votre navigateur Web seront tunnellisées via la connexion SSH. Vous devriez maintenant pouvoir accéder à la page Web privée de la même manière que vous le feriez depuis l'hôte distant.

Une fois que vous avez terminé, réglez les paramètres de proxy de votre navigateur sur normaux.

Un inconvénient de cette méthode est que tout le reste du trafic dans le navigateur Web passe également par la connexion SSH. En revanche, vous pouvez accéder aux serveurs distants avec leurs noms d'hôte réels et accéder facilement à plusieurs sites privés.

Tunnel un seul port.

La méthode alternative consiste à utiliser SSH pour transférer un seul port:

ssh -L 8080:server-hostname:80 remote-host

Maintenant, si vous pointez votre navigateur Web sur http://localhost:8080/, vous devriez voir le contenu de http://server-hostname/ce qu'il apparaîtrait de l'hôte distant.

L'avantage de cette méthode est qu'elle laisse le reste du trafic du navigateur seul. L'inconvénient est que certains liens peuvent ne pas fonctionner si le site distant utilise des références URL absolues. Si le site utilise principalement des références d'URL relatives, cette méthode devrait suffire.

Pour ces deux solutions, le port n'a rien de spécial 8080. Vous pouvez utiliser n'importe quel numéro de port local libre de votre choix, à condition de ne pas oublier d'utiliser le même numéro dans l' sshinvocation et dans le navigateur Web.

James Henstridge
la source
3
Merci. C'était très utile! J'ai réussi à le faire de cette façon: ssh -L 8080:<server-ip-address>:80 <username>@<remote-addr> -Nquelque chose comme ceci (la deuxième méthode).
CppLearner
Est-il exact que je dois configurer uniquement un proxy socks dans la première méthode (voir: spareclockcycles.files.wordpress.com/2009/04/… ). C'est-à-dire que cela ne fonctionnerait pas si je pointe le proxy http vers 127.0.0.1:8080? Si cela est correct, vous pourriez peut-être indiquer dans votre excellente réponse qu'il ne faut configurer que le proxy chaussettes.
étudiant
Si vous utilisez Chrome (second navigateur?), Vous pouvez passer le paramètre proxy pour SOCKS5 directement au démarrage: chrome-browser --proxy-server = "socks5: // localhost: 8080"
panticz.de