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 (
socks5etsocks5-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 (
certificateetprivate-keyde 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=falsedans Surge). Clash laisse l’UDP désactivé quandudpmanque : 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.
Liens
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)#nameLa 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.
Exemples
Un serveur sans mot de passe :
socks5://proxy.example.com:1080#OpenUn serveur avec le nom d’utilisateur alice et le mot de passe s3cret :
socks5://alice:s3cret@proxy.example.com:1080#AuthLe mot de passe p:ss wörd, encodé en pourcentage :
socks5://alice:p%3Ass%20w%C3%B6rd@proxy.example.com:1080#EncodedLe même serveur sous forme de lien socks5h:// :
socks5h://alice:s3cret@proxy.example.com:1080#Remote-DNSLa forme v2rayN, avec alice:s3cret encodé en Base64 :
socks://YWxpY2U6czNjcmV0@proxy.example.com:1080#v2rayNL’ancienne forme :
socks5://YWxpY2U6czNjcmV0QHByb3h5LmV4YW1wbGUuY29tOjEwODA#LegacyUn serveur avec une adresse IPv6 :
socks5://[2001:db8::1]:1080#IPv6Un serveur SOCKS5 over TLS :
socks5+tls://alice:s3cret@proxy.example.com:443#TLSUn serveur SOCKS5 over TLS avec un certificat autosigné :
socks+tls://proxy.example.com:443?insecure=1#Self-signed