Le one-liner#
curl -x http://USER-cc-us:PASS@res.proxy-cyber.com:9000 https://api.ipify.org-x (ou --proxy) prend l'URL du proxy avec les informations d'identification intégrées. cURL tunnelise automatiquement les destinations HTTPS avec CONNECT et demande au proxy de résoudre le nom d'hôte.
Des drapeaux à connaître#
| Drapeau | Objectif |
|---|---|
| -x, --proxy URL | Le proxy : schéma, hôte, port, informations d'identification facultatives |
| -U, --proxy-user utilisateur : passe | Informations d'identification séparées, utiles lorsque le mot de passe comporte des caractères spéciaux |
| --proxy-basique | Forcer l'authentification proxy de base (la valeur par défaut lorsqu'un mot de passe est donné) |
| -v | Afficher l'échange CONNECT, les codes d'état du proxy et les en-têtes de réponse |
| --noproxy '*' | Ignorer les variables d'environnement proxy pour cet appel |
| -w '%{time_total}\n' | Imprimer le timing pour comparer les sorties |
SOCKS5 et DNS distant#
# Hostname resolved at the exit (recommended)
curl -x socks5h://USER-cc-de:PASS@res.proxy-cyber.com:9001 https://api.ipify.org
# Hostname resolved locally, then the IP is sent to the proxy (leaks the lookup)
curl -x socks5://USER-cc-de:PASS@res.proxy-cyber.com:9001 https://api.ipify.orgVariables d'environnement#
Les outils qui déboursent pour cURL, et bien d'autres, honorent http_proxy, https_proxy et no_proxy. Exportez-les une fois pour une session de travail.
export https_proxy="http://USER-cc-us:PASS@res.proxy-cyber.com:9000"
export http_proxy="$https_proxy"
export no_proxy="localhost,127.0.0.1"
curl https://api.ipify.org # proxied without -xLire un échec#
curl -v -x http://USER:WRONG@res.proxy-cyber.com:9000 https://api.ipify.org 2>&1 | grep -E "CONNECT|HTTP/1.1 4|HTTP/1.1 5"
# < HTTP/1.1 407 Proxy Authentication Required -> credentials
# < HTTP/1.1 400 Bad Request -> a username parameter is wrong
# < HTTP/1.1 502 Bad Gateway -> no exit for that location; widen itUn état sur la ligne CONNECT provient de la passerelle ; un statut après Connection established vient de la destination. Le page d'erreurs mappe chaque code de passerelle.
Rotation des sessions en boucle#
for i in $(seq 1 5); do
curl -s -x "http://USER-cc-us-sid-run$i-ttl-5m:PASS@res.proxy-cyber.com:9000" https://api.ipify.org
echo
done # five different United States exits, each reusable for five minutes under its idLes questions que les gens posent#
CURL a-t-il besoin d'un indicateur spécial pour HTTPS via le proxy ?
Non. Avec une URL de proxy http://, cURL émet automatiquement CONNECT pour les destinations https:// ; --proxytunnel n'a d'importance que pour forcer un tunnel sur HTTP simple.
Mon mot de passe contient @ ou : et cURL échoue.
Transmettez les informations d'identification avec -U user:pass au lieu de les intégrer dans l'URL, ou encodez les caractères spéciaux en URL.