Guide du développeur · 2 min de lecture

Comment utiliser un proxy avec curl

curl a le support proxy intégré : quelques drapeaux routent toute demande à travers un point de terminaison HTTP ou SOCKS5. Ce guide fournit des commandes à copier-coller contre votre proxy s4m, couvrant l'authentification, HTTPS, les variables d'environnement et comment confirmer votre IP de sortie.

Pourquoi acheminer curl à travers un proxy

Lorsque curl se connecte directement, le serveur de destination voit l'adresse IP réelle de votre machine dans la connexion. Acheminer la demande via un proxy avant insère un intermédiaire : la destination voit maintenant l'adresse du proxy, tandis que votre origine reste en dehors de l'échange. C'est tout l'intérêt de proxyiser le trafic automatisé — vous cachez l'IP d'origine de l'hôte qui effectue réellement la demande, ce qui garde votre serveur principal hors du radar des tiers.

Les proxies payants s4m sont authentifiés, des points de terminaison SOCKS5 et HTTP de datacenter, facturés par gigaoctet. Ce modèle convient aux scripts, aux tests de scraping, aux pipelines CI et à l'accès aux API depuis une adresse stable. Si vous souhaitez plutôt que chaque application sur une machine soit tunnelée avec un tarif mensuel fixe (non facturé par Go), une connexion WireGuard VPN est généralement le meilleur outil — comparez le trafic proxy facturé avec les plans VPN fixes sur tarification. Pour des tests rapides et jetables, la liste de proxies publics gratuits offre des proxies tiers que s4m valide en continu, mais ils sont strictement à utiliser à vos propres risques et ne sont pas gérés par nous.

curl comprend nativement les deux protocoles de proxy, donc aucun outil supplémentaire n'est requis — vous changez un seul drapeau ou un schéma d'URL. Les différences pratiques :

AspectProxy HTTP (port 3128)Proxy SOCKS5 (port 1080)
syntaxe curl-x http://...:3128-x socks5h://...:1080
GèreHTTP et HTTPS (via CONNECT)Toute connexion TCP
DNS distantOui, le proxy résoutOui, avec socks5h:// ou --socks5-hostname
AuthUSER:PASSUSER:PASS

Choisissez HTTP lorsque vous avez seulement besoin de trafic web ; choisissez SOCKS5 lorsque vous souhaitez un DNS distant ou devez tunneliser un protocole non-HTTP.

Les drapeaux principaux : -x, --socks5-hostname et auth

Chaque exemple cible votre point de terminaison s4m à proxy.s4m.online — port 3128 pour HTTP, 1080 pour SOCKS5 — avec USER:PASS représentant vos véritables identifiants.

bash
# 1) HTTP/HTTPS through the HTTP proxy (port 3128)
#    curl auto-issues CONNECT for https:// URLs, so TLS stays end-to-end
curl -x http://USER:PASS@proxy.s4m.online:3128 https://example.com

# 2) SOCKS5 with remote DNS (port 1080)
#    socks5h:// resolves the hostname AT the proxy (avoids local DNS leaks)
curl -x socks5h://USER:PASS@proxy.s4m.online:1080 https://example.com

# 3) Same SOCKS5 call using dedicated flags instead of a URL scheme
curl --socks5-hostname proxy.s4m.online:1080 \
     --proxy-user USER:PASS \
     https://example.com

# 4) Keep credentials out of the proxy URL with -U / --proxy-user
curl -x http://proxy.s4m.online:3128 -U USER:PASS https://example.com

# 5) --proxy is just the long form of -x
curl --proxy http://USER:PASS@proxy.s4m.online:3128 https://example.com

Définissez-le une fois avec des variables d'environnement de proxy

Au lieu d'ajouter -x à chaque commande, exportez le proxy une fois et laissez curl le réutiliser pour toute la session shell.

bash
# curl reads http_proxy in LOWERCASE only (a historical CGI safeguard);
# HTTPS_PROXY, ALL_PROXY and NO_PROXY work in either case.
export http_proxy="http://USER:PASS@proxy.s4m.online:3128"
export HTTPS_PROXY="http://USER:PASS@proxy.s4m.online:3128"

# No -x needed now:
curl https://example.com

# Prefer a SOCKS5 endpoint for everything instead:
export ALL_PROXY="socks5h://USER:PASS@proxy.s4m.online:1080"

# Let some hosts bypass the proxy entirely:
export NO_PROXY="localhost,127.0.0.1,.internal.example"

# Confirm the exit IP, then clean up:
curl https://api.ipify.org; echo
unset http_proxy HTTPS_PROXY ALL_PROXY NO_PROXY

Vérifiez l'IP de sortie et les pièges courants

Le moyen le plus rapide de confirmer que le trafic passe réellement par le proxy est de demander à un service d'écho quelle IP il voit. Exécutez la même requête avec et sans -x et comparez les résultats.

Sans le proxy, vous obtenez l'adresse de votre machine ; avec, vous devriez obtenir l'adresse de sortie s4m. Si les deux sont identiques, le proxy n'est pas appliqué — vérifiez à nouveau le schéma, le port et si vos identifiants nécessitent un encodage URL.

  • Identifiants avec des symboles : encodez en pourcentage des caractères comme @ ou : à l'intérieur de USER ou PASS, ou évitez complètement le problème en les passant avec --proxy-user.
  • Fuites DNS SOCKS : utilisez socks5h:// ou --socks5-hostname pour que les recherches se fassent au niveau du proxy plutôt que sur votre résolveur local.
  • 407 Authentification Proxy Requise : la paire USER:PASS est manquante ou incorrecte pour ce point de terminaison.
  • Réalité des centres de données : les proxies s4m sont des IP de centre de données, donc un site qui bloque spécifiquement les plages de centres de données les reconnaîtra toujours comme telles.
Share this page
FAQ

Questions, réponses

Dois-je utiliser socks5:// ou socks5h:// avec curl ?

Préférez socks5h:// (ou le drapeau --socks5-hostname). Cela résout le nom d'hôte cible au proxy, donc votre serveur DNS local ne voit jamais la recherche. Le simple socks5:// résout d'abord localement, ce qui peut révéler la destination et utiliser votre propre résolveur.

HTTPS fonctionne-t-il toujours à travers un proxy HTTP ?

Oui, et aucune autre indication n'est nécessaire. Pour une URL https://, curl envoie un HTTP CONNECT au proxy et tunnelise TLS de bout en bout, donc le proxy ne relaie que le flux chiffré (il voit le nom d'hôte via SNI, pas le contenu de la page).

Les proxies s4m sont-ils résidentiels ?

Non. Les proxies payants s4m sont des points de terminaison SOCKS5 et HTTP de datacenter authentifiés. Ils sont stables et facturés par gigaoctet, mais les plages de datacenter sont identifiables comme des IP de datacenter, donc elles ne passeront pas pour une connexion domestique.

Pourquoi ma variable HTTP_PROXY est-elle ignorée ?

curl lit la variable http_proxy uniquement en minuscules, une protection de longue date contre l'injection d'en-têtes CGI. HTTPS_PROXY, ALL_PROXY et NO_PROXY sont lus dans les deux cas. Utilisez http_proxy en minuscules, ou passez simplement -x sur la ligne de commande.

Puis-je toujours sortir de la même IP ?

Oui, avec l'option d'IP personnelle dédiée. C'est une adresse statique qui vous appartient uniquement, liables à votre proxy (ou VPN) et éventuellement déliée de votre identité. Consultez la page de tarification pour plus de détails.

Obtenez des identifiants de proxy en quelques minutes

Créez un compte s4m gratuit pour obtenir des points de terminaison SOCKS5 et HTTP authentifiés avec un trafic mesuré à la demande, plus une IP dédiée en option. L'inscription anonyme et le paiement en crypto sont pris en charge, et vous pouvez tester les options ci-dessus.

Les gens ont trouvé cette page en recherchant

Vraies phrases de recherche auxquelles cette page répond — les liens ouvrent la page qui les couvre en profondeur.