La chaîne de proxys SOCKS vers HTTP de curl
Configurez la chaîne SOCKS vers HTTP prise en charge par curl, repérez l’ordre des points de terminaison et testez chaque relais avant de les combiner.
L’option --preproxy de curl se connecte à un proxy SOCKS avant d’atteindre un proxy HTTP ou HTTPS. Elle prend en charge cette chaîne précise, pas une liste arbitraire de serveurs proxy.
Le chemin est client → point de terminaison SOCKS → proxy HTTP → destination. Remplacez les deux points de terminaison documentaires de cette commande :
curl --preproxy socks5h://203.0.113.10:1080 --proxy http://203.0.113.20:8080 --noproxy '' --connect-timeout 5 --max-time 20 --verbose https://example.com/
Le service SOCKS doit pouvoir atteindre l’adresse et le port du proxy HTTP. Celui-ci doit ensuite accepter la requête vers la destination. Si le second proxy utilise un nom d’hôte, le mode du premier SOCKS détermine où ce nom est résolu ; un point de terminaison numérique évite cette recherche.
Trouver le relais défaillant
Vérifiez d’abord une requête via chaque point de terminaison séparément ; pour le relais HTTP, utilisez un test de proxy HTTP limité dans le temps. Même si les deux fonctionnent, le chemin combiné peut échouer parce que le premier proxy ne peut pas atteindre le second.
Lisez la trace détaillée dans l’ordre des connexions. Un échec SOCKS en cherchant à atteindre le second proxy précède la décision du proxy HTTP d’accepter ou de refuser CONNECT vers le site. Notez quelle négociation a échoué.
Quand le relais supplémentaire est utile
Ce montage peut servir lorsqu’un proxy HTTP autorisé est accessible par un chemin SOCKS. Il ajoute aussi un service et un trajet réseau susceptibles de tomber en panne ou de ralentir la connexion. Enchaîner des points de terminaison d’une liste publique de proxys ne garantit ni fiabilité ni anonymat et exige toujours de faire confiance aux parties qui traitent la connexion.
--preproxy nécessite curl 7.52.0 ou ultérieur ; d’autres applications peuvent ne pas prendre en charge ce montage.