Skip to content

SOCKS5 et SOCKS5 over TLS

Les options SOCKS5 et SOCKS5 over TLS, liens et fonctionnalités pris en charge par Potatso.

Updated Voir en Markdown

Un serveur SOCKS5 ouvre des connexions pour vous et relaie l’UDP, avec ou sans nom d’utilisateur et mot de passe (RFC 1928). SOCKS5 over TLS est le même serveur atteint via TLS : la connexion au serveur est donc chiffrée elle aussi.

Potatso envoie au serveur le nom du site que vous visitez, pas son adresse, et le serveur résout le nom. C’est ce que d’autres apps appellent socks5h, ou DNS distant.

Vous pouvez ajouter un serveur SOCKS5 à la main, avec un lien socks5://, ou en important :

  • un abonnement Clash ou Mihomo (type: socks5),
  • une configuration Surge (socks5 et socks5-tls),
  • une configuration Xray ou V2Ray (sortie socks, avec ou sans TLS).

Pour ajouter à la main un serveur SOCKS5 over TLS, choisissez SOCKS5 et activez TLS.

Réglages

Réglage Description
Serveur, port L’adresse et le port du serveur. Une adresse IPv6 fonctionne aussi.
Authentification Aucune, ou un nom d’utilisateur et un mot de passe.
Nom d’utilisateur, mot de passe Chacun jusqu’à 255 octets.
Relais UDP Activé par défaut. Voir UDP.
TLS Activé pour SOCKS5 over TLS.
Ignorer la vérification du certificat SOCKS5 over TLS uniquement. Accepte n’importe quel certificat. À utiliser uniquement pour des tests.
Épinglage de certificat SOCKS5 over TLS uniquement, facultatif. L’empreinte SHA-256 du certificat du serveur, sous forme de 64 chiffres hexadécimaux. Avec un épinglage, Potatso accepte le certificat épinglé, y compris autosigné, et rien d’autre.

Si le serveur demande un nom d’utilisateur et un mot de passe et que vous ne les avez pas définis, Potatso ne se connecte pas. Potatso ne prend pas en charge l’authentification GSSAPI (Kerberos).

Un serveur Clash ou Mihomo avec un username vide est importé sans authentification, comme le fait Clash.

Certificats

Avec SOCKS5 over TLS, le nom du serveur dans la négociation TLS est toujours l’adresse du serveur, et le certificat du serveur doit être valide pour elle. Sinon, définissez un épinglage de certificat ou activez Ignorer la vérification du certificat. Vous ne pouvez pas définir un autre nom de serveur : Potatso n’importe pas un lien, un serveur Surge ou un serveur Xray qui en a un. Clash et Mihomo n’ont pas de nom de serveur pour SOCKS5 : Potatso y ignore donc un sni, comme eux.

Potatso ne prend pas en charge :

  • un certificat CA personnalisé : épinglez plutôt le certificat du serveur,
  • un certificat client TLS (certificate et private-key de Clash), ni un autre nom pour vérifier le certificat (name-cert-verify) : Potatso n’importe pas un serveur qui en exige un,
  • une liste ALPN : Potatso importe le serveur sans elle.

UDP

L’UDP est utilisé par QUIC, les appels vocaux et vidéo et de nombreux jeux. Avec Relais UDP activé, Potatso envoie l’UDP via le serveur (UDP ASSOCIATE), vers des adresses IPv4 et IPv6. Cela fonctionne aussi avec un serveur derrière un NAT qui indique son adresse comme 0.0.0.0 : Potatso envoie l’UDP à l’adresse que vous avez définie.

Désactivez Relais UDP si votre serveur ne relaie pas l’UDP. Alors :

  • Avec des règles, Potatso ignore une règle qui envoie de l’UDP vers ce serveur, et la règle suivante qui correspond décide. L’UDP qu’aucune autre règle ne reconnaît part en direct.
  • En mode Global, l’UDP ne fonctionne pas, car tout le trafic doit passer par le serveur.

Quelques points à connaître sur l’UDP :

  • L’UDP est relayé via le port UDP distinct du serveur : le pare-feu du serveur doit donc laisser passer l’UDP.
  • Avec SOCKS5 over TLS, seule la connexion au serveur est chiffrée. SOCKS5 envoie l’UDP en dehors : votre trafic UDP arrive donc non chiffré au serveur.
  • Pour l’UDP, Potatso résout lui-même l’adresse du site et envoie l’adresse au serveur.
  • Quand vous importez depuis Clash, Mihomo ou Surge, Relais UDP est activé sauf si le serveur définit udp: false (udp-relay=false dans Surge). Clash laisse l’UDP désactivé quand udp manque : vérifiez donc que votre serveur relaie l’UDP.

Fonctionnalités prises en charge

Fonctionnalité Pris en charge
CONNECT vers des cibles IPv4, IPv6 et des noms de domaine (RFC 1928) ✅
DNS distant : noms de domaine résolus par le serveur (socks5h) ✅ Pour le TCP
Aucune authentification ✅
Nom d’utilisateur et mot de passe (RFC 1929) ✅
GSSAPI (RFC 1961) ❌
UDP ASSOCIATE vers des cibles IPv4 et IPv6 ✅
UDP avec un serveur derrière un NAT (adresse de relais 0.0.0.0) ✅
Fragmentation UDP ❌ Les datagrammes fragmentés sont abandonnés, ce que permet la RFC 1928
BIND (connexions entrantes, comme le FTP en mode actif) ❌
SOCKS5 over TLS ✅ Avec épinglage de certificat et vérification du certificat ignorée
Nom de serveur TLS différent de l’adresse du serveur, ALPN, CA personnalisée, certificat client ❌
UDP chiffré avec TLS ❌ SOCKS5 envoie l’UDP en dehors de TLS
Une adresse de serveur IPv6 ✅
SOCKS4 et SOCKS4a ❌

Chaque fonctionnalité prise en charge est testée avec de vrais serveurs SOCKS5 : Xray, sing-box, Mihomo, 3proxy et microsocks. sing-box sert SOCKS5 over TLS sur son entrant mixed, pas sur son entrant socks.

Un lien SOCKS5 contient un serveur entier sur une ligne :

socks5://user:password@host:port#name
socks5+tls://user:password@host:port?insecure=1#name
Partie Description
schéma socks5://, socks:// ou socks5h:// pour SOCKS5 ; socks5+tls:// ou socks+tls:// pour SOCKS5 over TLS. Potatso envoie toujours les noms de domaine au serveur : socks5h:// fonctionne donc comme socks5://.
user:password Facultatif. Encodez en pourcentage :, @ et les autres caractères spéciaux du mot de passe, par exemple p%3Ass pour p:ss. Le nom d’utilisateur ne peut pas contenir :.
host Adresse du serveur. Placez une adresse IPv6 entre crochets, comme [2001:db8::1].
port Port du serveur.
insecure SOCKS5 over TLS uniquement, facultatif. 1 active Ignorer la vérification du certificat. Potatso lit aussi allowInsecure et skip-cert-verify.
name Facultatif. Le nom du serveur dans Potatso.

Un lien ne peut pas contenir d’épinglage de certificat. Un lien avec un sni autre que l’adresse du serveur n’est pas importé.

Potatso importe aussi deux autres formes :

socks://base64(user:password)@host:port#name
socks5://base64(user:password@host:port)#name

La première est la façon dont v2rayN partage les serveurs SOCKS. La seconde est l’ancienne forme, où tout ce qui se trouve entre :// et # est encodé en Base64. Quand Potatso partage un serveur SOCKS5 avec un mot de passe, il propose le lien standard et la forme v2rayN.

Un serveur sans mot de passe :

socks5://proxy.example.com:1080#Open

Un serveur avec le nom d’utilisateur alice et le mot de passe s3cret :

socks5://alice:s3cret@proxy.example.com:1080#Auth

Le mot de passe p:ss wörd, encodé en pourcentage :

socks5://alice:p%3Ass%20w%C3%B6rd@proxy.example.com:1080#Encoded

Le même serveur sous forme de lien socks5h:// :

socks5h://alice:s3cret@proxy.example.com:1080#Remote-DNS

La forme v2rayN, avec alice:s3cret encodé en Base64 :

socks://YWxpY2U6czNjcmV0@proxy.example.com:1080#v2rayN

L’ancienne forme :

socks5://YWxpY2U6czNjcmV0QHByb3h5LmV4YW1wbGUuY29tOjEwODA#Legacy

Un serveur avec une adresse IPv6 :

socks5://[2001:db8::1]:1080#IPv6

Un serveur SOCKS5 over TLS :

socks5+tls://alice:s3cret@proxy.example.com:443#TLS

Un serveur SOCKS5 over TLS avec un certificat autosigné :

socks+tls://proxy.example.com:443?insecure=1#Self-signed
Navigation

Type to search…

↑↓ navigate↵ selectEsc close