Tester un proxy HTTP avec curl
Utilisez un test curl limité dans le temps pour examiner la connexion au proxy, le tunnel HTTPS, les statuts de réponse et les exclusions, sans modifier le proxy global de l’appareil.
Remplacez 127.0.0.1:8080 par un point de connexion de votre service ou de la liste de proxys HTTP, puis lancez cette commande vers une destination HTTPS sans danger :
curl --noproxy '' --proxy http://127.0.0.1:8080 --connect-timeout 5 --max-time 15 --verbose https://example.com/L’adresse de bouclage désigne un point d’écoute sur votre propre machine. Cette commande le sélectionne explicitement, vide la liste d’exclusion de curl pour cet appel et accorde cinq secondes à l’établissement de la connexion, avec quinze secondes au total. Elle ne modifie pas les réglages de proxy du navigateur ni du système.
Utilisez le véritable exécutable curl si votre shell fait de curl un alias vers un autre programme ; curl --version identifie la version utilisée. Si le point d’écoute exige lui-même TLS, utilisez le schéma d’URL de proxy indiqué dans sa documentation.
Lire quatre résultats, pas un simple feu vert
- Connexion au proxy sélectionné : l’adresse et le port sont joignables.
- CONNECT accepté : le proxy a ouvert un tunnel vers la destination HTTPS.
- Certificat de destination vérifié : TLS s’est établi avec les vérifications de confiance prévues.
- Réponse de la destination reçue : examinez son statut et son contenu pour déterminer si le résultat répond aux besoins de votre application.
Une réponse 403 ou 429 de la destination peut suivre un tunnel fonctionnel. curl peut aussi se terminer avec succès après avoir reçu une réponse d’erreur HTTP : relevez donc à la fois le statut de réponse et le résultat d’erreur de curl. Une connexion TCP ou un CONNECT réussi ne suffisent pas à eux seuls.
Un résultat compact pour répéter les comparaisons
Dans un shell de type Unix, ignorez le corps et affichez le statut du tunnel, celui de la destination, le correspondant de connexion et la durée écoulée :
curl --noproxy '' --proxy http://127.0.0.1:8080 --connect-timeout 5 --max-time 15 --silent --show-error --output /dev/null --write-out 'http=%{http_code} connect=%{http_connect} peer=%{remote_ip} total=%{time_total}\n' https://example.com/http_connect décrit la réponse du tunnel ; http_code décrit la réponse HTTP finale. remote_ip est le correspondant auquel curl est connecté, et non une mesure indépendante de l’adresse de sortie du proxy. Sur les autres systèmes, remplacez /dev/null ou conservez le corps de la réponse.
Si le test échoue, repérez l’étape d’établissement ou de transfert en échec et comparez avec un accès direct à la même destination lorsque ce chemin est autorisé :
curl --noproxy '*' --connect-timeout 5 --max-time 15 --verbose https://example.com/--noproxy '*' contourne les proxys. Un échec de vérification du certificat sur les deux chemins suggère un problème de confiance commun ; un accès direct réussi accompagné d’un CONNECT refusé oriente vers l’authentification ou les règles du proxy. Relisez la sortie détaillée avant de la partager, car elle peut contenir des informations permettant une identification.
Enregistrez le point de connexion, la destination et l’horodatage avec le résultat. Cela établit ce qui a fonctionné pour cette requête ; la disponibilité future, la confidentialité et les performances en charge nécessitent des éléments distincts.