Tous les emplacements actifs · 99.99% uptime
SOCKS5

Comment fonctionne l'authentification SOCKS5 ?

En SOCKS5, l'authentification ne se fait pas via un en-tête comme avec un proxy HTTP, mais par une sous-négociation distincte . Cette différence explique aussi pourquoi les messages d'erreur sont si peu explicites : lorsqu'une mauvaise méthode est proposée, le serveur ne renvoie aucun texte descriptif, il envoie un seul octet et ferme la connexion.

Négociation de méthode

FIGURENégociation d'authentification SOCKS5
NÉGOCIATIONClientServeur SOCKS50x05 0x02 0x00 0x02 (version + 2 méthodes)0x05 0x02 (utilisateur/mot de passe sélectionné)0x01 len user len passSous-négociation RFC 19290x01 0x00 (succès)CONNECT cible:port0x05 0x00 (connexion établie)

Chaque étape représente quelques octets unidirectionnels. Si la négociation échoue, le serveur renvoie 0xFF ou 0x01 0x01 puis ferme la connexion — sans aucun texte d'erreur explicatif.

Méthodes prises en charge

CodeMéthodeUtilisation
0x00Aucune authentification requiseServeurs protégés par whitelist d'IP
0x01GSSAPIEnvironnements Kerberos d'entreprise (rare)
0x02Nom d'utilisateur / mot de passeLa méthode commerciale la plus répandue
0xFFAucune méthode acceptableRéponse de refus du serveur
Sécurité

Le nom d'utilisateur et le mot de passe en clair sont envoyés. SOCKS5 n'assure aucun chiffrement par lui-même. Si vous l'utilisez sur un réseau non fiable, vos identifiants peuvent être lus ; dans ce cas, travailler via un tunnel SSH est plus sûr.

Problèmes fréquents

FIGUREErreurs d'authentification SOCKS5
ERREURCODE / SYMPTÔMECAUSE PROBABLESOLUTIONLa connexion s'est fermée silencieusementLe client ne propose pas la méthode 0x02Utilisez un client ou une bibliothèque prenant en charge l'authentificationRetour 0x01 0x01Nom d'utilisateur ou mot de passe incorrectRecopiez les identifiants depuis le panneauAucune authentification demandée maisrefuséConnexion établie depuis une IP hors whitelistAjoutez votre IP publique au panneauAltération d'un caractère spécialCaractère non encodé dans l'URLÉcrivez le mot de passe avec un encodage pourcent ou utilisez un champ distinctresidentialLe navigateur ne demande pas de mot de passeLe navigateur ne prend pas en charge l'authentification SOCKSUtilisez un proxy relais local

La ligne relative au navigateur est importante : de nombreux navigateurs ne prennent pas en charge l'authentification SOCKS5 depuis leur interface. Dans ce cas, un relais local portant les identifiants est nécessaire.

Le problème des navigateurs et sa solution

La prise en charge de l'authentification SOCKS5 par Chrome et Firefox est limitée, voire inexistante. Il existe deux solutions pratiques :

01

Passez à la whitelist d'IP

Si votre fournisseur la prend en charge, c'est la solution la plus propre : aucun identifiant n'est transmis et le navigateur fonctionne sans problème.

02

Installez un relais local

Exécutez sur la machine un petit proxy portant les identifiants, puis déclarez-le 127.0.0.1 au navigateur. Nous détaillons la méthode dans notre article sur le chaînage .

Configuration par bibliothèque

FIGUREFournir correctement le nom d'utilisateur et le mot de passe
Authentification SOCKS5 dans différents langages01# curl — avec une option distincte (aucun souci d'encodage d'URL)02curl --socks5-hostname proxy.example.com:1080 \\03 --proxy-user "kullanici:sifre" https://example.com0405# Python — requests[socks]06proxies = {"https": "socks5h://kullanici:sifre@proxy.example.com:1080"}07r = requests.get("https://example.com", proxies=proxies, timeout=25)0809# Python — httpx10import httpx11with httpx.Client(proxy="socks5://kullanici:sifre@proxy.example.com:1080") as c:12 r = c.get("https://example.com")1314# Node.js — socks-proxy-agent15import { SocksProxyAgent } from "socks-proxy-agent";16const agent = new SocksProxyAgent("socks5h://kullanici:sifre@proxy.example.com:1080");

Si votre mot de passe contient @, : ou / , utilisez un champ distinct plutôt que le format URL ; sinon, vous devrez appliquer un encodage pourcent.

Comparaison avec la whitelist

En SOCKS5 aussi, les deux modèles sont valables et les critères de choix sont les mêmes qu'avec un proxy HTTP. Pour une comparaison détaillée, vous pouvez consulter notre article sur les méthodes d'authentification . La seule différence propre à SOCKS5 est le problème de prise en charge par les navigateurs : la whitelist le supprime entièrement.

Vérification

FIGUREProuver que l'authentification fonctionne
Terminal01# Suivre la négociation avec une sortie détaillée02curl -v --socks5-hostname proxy.example.com:1080 \\03 --proxy-user "kullanici:sifre" https://example.com 2>&1 | head -200405# En cas de succès : une ligne du type "SOCKS5 request granted"06# En cas d'échec : "Unable to receive initial SOCKS5 response" ou07# "User was rejected by the SOCKS5 server"0809# Testez avec un mot de passe erroné pour observer l'erreur (afin d'apprendre le comportement)10curl -v --socks5-hostname proxy.example.com:1080 \\11 --proxy-user "kullanici:yanlis" https://example.com 2>&1 | grep -i socks

Tester délibérément avec un mot de passe erroné vous permettra de reconnaître plus facilement le message d'erreur le jour où vous rencontrerez un vrai problème.

Résumé

L'authentification SOCKS5 s'effectue par une sous-négociation distincte et ses messages d'erreur ne sont pas explicites. Les deux problèmes les plus fréquents sont un client qui ne propose jamais la méthode d'authentification et des navigateurs qui ne la prennent pas en charge. Comme les identifiants sont envoyés en clair, soyez prudent sur les réseaux non fiables. La whitelist est la solution la plus propre, éliminant à la fois le problème des navigateurs et le risque de fuite. Pour tester vos adresses notre outil de vérification de proxy est à votre disposition.

Questions fréquentes

01Le mot de passe SOCKS5 est-il transmis chiffré ?

Non, il est envoyé en clair. SOCKS5 n'assure aucun chiffrement par lui-même. Sur des réseaux non fiables, partez du principe que vos identifiants peuvent être lus.

02Pourquoi Chrome demande-t-il (ou non) le mot de passe SOCKS5 ?

La prise en charge de l'authentification SOCKS5 par Chrome est limitée et varie selon les versions. La solution la plus fiable consiste à utiliser une whitelist d'IP ou à exécuter un proxy relais local portant les identifiants.

03La connexion se ferme immédiatement, sans message d'erreur — pourquoi ?

Le serveur a probablement renvoyé 0xFF (aucune méthode acceptable) puis fermé la connexion. Cela signifie que votre client n'a jamais proposé la méthode utilisateur/mot de passe.

04Mon mot de passe contient des caractères spéciaux, comment le saisir ?

Utilisez le champ d'identification distinct de votre client plutôt que le format URL (--proxy-user avec curl). Si vous n'avez pas le choix, appliquez un encodage pourcent : 40% pour @, 3%A pour :.

05Puis-je utiliser une whitelist d'IP avec SOCKS5 ?

Oui, et c'est plus pratique dans la plupart des scénarios. Le serveur choisit la méthode 0x00 (aucune authentification requise), aucune configuration d'identifiants n'est nécessaire côté client et le problème des navigateurs disparaît.

Articles et pages associés

ÉTAPE SUIVANTE

Renforcez votre infrastructure proxy dès aujourd'hui.

Démarrez en quelques minutes avec un forfait payant, ou essayez d'abord notre liste de proxys gratuits.

FREEPROXY.TR

Vous cherchez un proxy gratuit ? Vous êtes au bon endroit

Une plateforme proxy complète pour consulter des adresses de proxy gratuits à jour, comparer les types HTTP et SOCKS et vérifier vos connexions proxy avec des outils gratuits.