La création et l'utilisation d'un serveur mandataire (communément appelé proxy) peuvent être motivées par des raisons diverses et variées. Commençons par les motivations.
Premier scénario : Vous avez une machine A dont les accès sont bridées : vous n'avez pas accès à certains sites alors que vous auriez bien voulu pouvoir y accéder. Il suffit de passer par une machine B qui a accès au site pour qu'il renvoie l'information. Cela est possible si les machines se trouvant entre A et B ne filtrent pas les données !
Premier scénario bis : Vous enviez la connexion que vous avez à votre lieu de travail car elle vous permet de télécharger des fichiers que vous ne pouvez pas télécharger de chez vous sans payer.
Second scénario : vous avez une connexion autorisant un débit descendant de, disons, 2MB/s. Hors vous téléchargez souvent à un débit bien moindre (disons souvent 10 fois plus faible) alors que le serveur serait capable de vous fournir les données bien plus rapidement si vous aviez une autre connexion. Ce genre de choses peuvent être constatées lorsque d'un même site vous téléchargez un fichier à une vitesse V à partir de la connexion de votre lieux de travail, et que chez vous, malgré votre débit maximal d'environ V, vous téléchargez à V/10. Dans ce cas, si vous avez une connexion avec un bon débit d'environ V entre chez vous et votre lieu de travail, vous pouvez vouloir utiliser un ordinateur de votre lieu de travail comme proxy afin d'accélérer les téléchargements. En quelques sortes, vous voulez optimiser le routage internet entre chez vous et le serveur distant.
Troisième scénario : vous avez besoin de passer par soit un proxy soit une passerelle pour les protocoles non prévus par les administrateurs. Par exemple, ils n'ont prévu que HTTP par le proxy et SSH par la passerelle et vous n'arrivez pas à utiliser les protocoles SMTP et POP par exemple.
ssh -D portlocal serveurdistantEnsuite, configurez vos logiciels pour qu'ils utilisent le serveur proxy SOCKS ainsi créé. Serveur SOCKS : localhost (et non pas serveurdistant). Port : portlocal choisi.
Ce qui peut rendre les choses plus difficiles est de ne pas avoir de client ssh. Si le serveur distant n'est pas accessible via ssh, c'est que c'est une mauvaise cible, sinon c'est que vous pouvez installer un serveur ssh dessus. D'autre part, s'il n'est pas possible d'accéder au serveur distant directement ou s'il n'est pas possible de sortir directement, ou encore les deux contraintes à la fois, il est toujours possible de configurer son ~/.ssh/config afin de pouvoir accéder à la machine distante en une seule commande.