Question Puis-je créer SSH pour tunneler HTTP via le serveur comme s'il s'agissait d'un proxy?


Dis que j'ai un server et client. J'ai besoin de créer une connexion à partir de client à un website à travers server comme si c'était un proxy.

Est-il possible de le faire en utilisant un tunnel SSH, ou dois-je installer un service proxy sur le server?


22
2017-10-26 15:23


origine




Réponses:


Vous pouvez le faire en utilisant ssh

ssh -L 80:remotehost:80 user@myserver

Vous aurez alors un tunnel entre votre port local 80 et le port distant 80. Cela ne doit pas nécessairement être le même que mon serveur. Pour rendre cela transparent, vous devez ajouter une entrée au fichier hosts. Si vous ne le faites pas, vhosts ne fonctionnera pas. Si vous voulez une connexion proxy SOCKS, vous pouvez aussi utiliser

ssh -D 5000 user@myserver

Cela créera un proxy SOCKS sur le port localhost 5000 qui acheminera toutes les demandes via myserver.


28
2017-10-26 15:28



Si vous avez besoin que ce tunnel soit disponible à partir de clients en dehors de votre zone, ajoutez l'option -g. - mr-euro
La commande telle qu'écrite ne fonctionnait pas pour moi. J'ai dû remplacer l'hôte distant par le bouclage, comme suit: ssh -L 80: 127.0.0.1: 80 user @ myserver - eficker
Serait plus utile si le port distant était différent du port local ssh -L 81:remotehost:80 user@myserver le port local 81 parle comme s'il en avait 80 à distance. - Rafareino
Si vous voulez ajouter le proxy SOCKS via votre ~ / .ssh / config, utilisez: Host myserver User user DynamicForward 5000 - bonh


Oui c'est possible.

Courir ssh -D port user@host et configurez votre client pour utiliser votre boîte en tant que proxy SOCKS.

Si vous avez spécifiquement besoin d’un proxy HTTP, vous pouvez utiliser Proxychains et l’acheminer via le serveur SOCKS précédent.


14
2017-10-26 15:28





Putty le fait très bien aussi.

Sous SSH, allez dans Tunnels. En bas, placez 8080 dans le port et, pour la destination, laissez-le noir et sélectionnez le bouton radio "Dynamique". Cest tout ce que vous devez faire, connectez-vous maintenant au serveur en utilisant Putty.

Une fois connecté, vous avez un serveur proxy s'exécutant sur votre hôte local sur le port 8080, qui proxy toutes les demandes via votre serveur.

Maintenant, utilisez un navigateur Web et configurez le proxy en définissant host = localhost et port = 8080 et assurez-vous qu'il s'agit d'un proxy SOCKS que vous sélectionnez. Je le fais tout le temps, donc si vous utilisez Firefox, veillez à installer le plug-in FoxyProxy, car cela rend l'activation / la désactivation du proxy une affaire en un clic.

Attention: Sachez que par défaut, vos demandes DNS ne sont pas envoyées par proxy. Ainsi, le site Web que vous visitez via le proxy sera toujours enregistré (s’il enregistre ces informations). Vous pouvez également configurer firefox pour les requêtes DNS, mais il ne le fait pas par défaut.


5
2017-10-26 15:58



Astuce. Merci. - cherouvim


sshuttle fonctionne comme un VPN mais sur SSH.

Serveur proxy transparent qui fonctionne comme le VPN d'un pauvre. En avant sur ssh. Ne nécessite pas d'administrateur. Fonctionne avec Linux et MacOS. Prend en charge le tunneling DNS.

https://github.com/sshuttle/sshuttle


4
2018-06-24 15:11





Pour autoriser l’exécution d’un proxy sur un ordinateur et autoriser les autres clients à se connecter, vous aurez besoin de l’option -g. Ainsi, par exemple, vous exécuteriez ceci sur le serveur nommé foo:

ssh -g -ND 9191 root@remotehost

Vous pouvez ensuite configurer le proxy dans le navigateur d'un client pour utiliser le serveur foo et le port 9191 pour un proxy SOCKS. Les clients enverront aussi leurs requêtes foo, qui les transmettra à ssh à remotehost. Donc, sur Internet, on dirait qu'ils utilisent remotehost.

Si vous souhaitez également transférer des requêtes DNS avec firefox, éditez le sujet: config dans firefox et définissez network.proxy.socks_remote_dns sur true.


1
2017-10-26 15:40