Créer un proxy SOCKS local avec SSH
Utilisez le transfert dynamique OpenSSH sur 127.0.0.1, gardez le processus actif pendant la session et distinguez l’écoute du succès vers la destination.
Avec un accès SSH autorisé à un serveur, OpenSSH peut créer un point d’écoute SOCKS sur votre ordinateur. La connexion SSH transporte le trafic transféré, et le serveur distant établit la connexion à la destination.
Une écoute limitée à l’interface de bouclage
ssh -N -T -o ControlPath=none -o ForkAfterAuthentication=no -o ExitOnForwardFailure=yes -D 127.0.0.1:1080 [email protected]
Remplacez le compte et le nom d’hôte. Le serveur SSH doit autoriser le transfert ; son administrateur peut limiter le transfert et les destinations indépendamment de la connexion au compte.
-D crée le transfert dynamique, et l’adresse de bouclage explicite limite l’écoute à cette machine. -N n’exécute pas de commande distante ; -T n’alloue pas de pseudo-terminal. ControlPath=none évite un maître de partage existant, tandis que ForkAfterAuthentication=no garde cette invocation au premier plan.
Gardez le processus actif tant que vous utilisez le proxy. Si le port 1080 est occupé, choisissez un autre port élevé libre et mettez le client à jour. ExitOnForwardFailure=yes fait quitter SSH si l’écoute ne peut pas être créée.
Utiliser le point de terminaison SOCKS
curl --proxy socks5h://127.0.0.1:1080 --noproxy '' --connect-timeout 5 --max-time 15 https://example.com/
Cette requête délègue le traitement du nom de destination via SOCKS5. Les autres applications ont besoin de leur propre configuration SOCKS ; un champ de proxy HTTP ne sait pas parler SOCKS à ce point d’écoute.
Pour vérifier quel processus possède le port :
ss -ltnp 'sport = :1080'
Le processus SSH prévu doit posséder une écoute de bouclage. Une requête via celle-ci vérifie si le serveur distant peut aussi atteindre la cible. Utilisez une destination contrôlée pour examiner la sortie observée.
Durée de vie de la session
Ctrl-C ferme le processus SSH, l’écoute et les connexions transférées. Une coupure SSH rend également le proxy indisponible.
ExitOnForwardFailure vérifie la mise en place. Il ne termine pas SSH à chaque échec ultérieur de connexion à une destination : diagnostiquez séparément la session, le port local et la requête à la destination.