J'ai configuré un proxy SOCKS sur le port 9090 vers l'ordinateur B ailleurs:
ssh -D localhost:9090 user@B
et l'a configuré dans mon navigateur Google Chrome local. Cependant, l'ordinateur B se trouvant derrière un proxy HTTP, les requêtes HTTP provenant localement de cet ordinateur sont transmises à l'ordinateur B via le proxy SOCKS mais ne peuvent pas être adressées (le terminal exécutant ssh -D localhost: 9090 user @ B affiche "échec de l'ouverture: échec de la connexion: non route vers l’hôte "lorsqu’une telle demande est faite).
J'ai essayé:
mais aucun n'a fonctionné.
Tout le monde sait comment configurer le proxy SOCKS de manière à prendre en compte le proxy HTTP derrière lequel l'ordinateur B est? Toute méthode n'impliquant pas de changement de SSHD ou de configuration globale sur le serveur serait préférable.
Vous feriez beaucoup mieux de "transférer" le serveur proxy du réseau distant via SSH plutôt que d'utiliser le serveur SOCKS intégré (qui attend simplement un réseau adressable par passerelle à l'autre extrémité).
ssh -L 8080:internal_ip_of_proxy:8080 user@ssh_server
Cela expose le serveur proxy localement, ce qui vous permet de définir les paramètres de proxy de votre navigateur sur localhost:8080
et que le tunnel sera acheminé via SSH vers le proxy distant.
Et vous pouvez l'appliquer à n'importe quel service distant. Vous pouvez, par exemple, mettre en tunnel Imgur depuis votre serveur (en fait, un proxy à hôte unique):
ssh -L 8080:imgur.com:80 user@ssh_Host
Et sur un terminal local:
curl --header 'Host: imgur.com' localhost:8080
L'en-tête de l'hôte est requis sinon curl
demandera un site localhost
non existant. Vous pouvez également contourner ce problème en ajoutant une ligne dans /etc/hosts
, en résolvant imgur.com
en 127.0.0.1
... Mais je m'éloigne du sujet, vous n'avez pas besoin de cela pour vos buts.