Un servidor SOCKS5 abre conexiones por ti y retransmite UDP, con o sin nombre de usuario y contraseña (RFC 1928). SOCKS5 sobre TLS es el mismo servidor al que se accede por TLS, de modo que la conexión con el servidor también va cifrada.
Potatso envía al servidor el nombre del sitio que visitas, no su dirección, y el servidor resuelve el nombre. Es lo que otras apps llaman socks5h, o DNS remoto.
Puedes añadir un servidor SOCKS5 a mano, con un enlace socks5:// o importándolo desde:
- una suscripción de Clash o Mihomo (
type: socks5), - una configuración de Surge (
socks5ysocks5-tls), - una configuración de Xray o V2Ray (salida
socks, con o sin TLS).
Para añadir un servidor SOCKS5 sobre TLS a mano, elige SOCKS5 y activa TLS.
Ajustes
| Ajuste | Descripción |
|---|---|
| Servidor, puerto | La dirección y el puerto del servidor. También funciona una dirección IPv6. |
| Autenticación | Ninguna, o un nombre de usuario y una contraseña. |
| Nombre de usuario, contraseña | Cada uno de hasta 255 bytes. |
| Retransmisión UDP | Activada por defecto. Consulta UDP. |
| TLS | Activado para SOCKS5 sobre TLS. |
| Omitir verificación del certificado | Solo SOCKS5 sobre TLS. Acepta cualquier certificado. Úsalo solo para pruebas. |
| Pin del certificado | Solo SOCKS5 sobre TLS, opcional. La huella SHA-256 del certificado del servidor, como 64 dígitos hexadecimales. Con un pin, Potatso acepta el certificado fijado, incluso uno autofirmado, y nada más. |
Si el servidor pide un nombre de usuario y una contraseña y no los has indicado, Potatso no se conecta. Potatso no admite la autenticación GSSAPI (Kerberos).
Un servidor de Clash o Mihomo con un username vacío se importa sin autenticación, como hace Clash.
Certificados
Con SOCKS5 sobre TLS, el nombre del servidor en la negociación TLS es siempre la dirección del servidor, y el certificado del servidor debe ser válido para ella. Si no lo es, fija un pin del certificado o activa Omitir verificación del certificado. No puedes indicar un nombre de servidor distinto: Potatso no importa un enlace, un servidor de Surge ni un servidor de Xray que lo tenga. Clash y Mihomo no tienen nombre de servidor para SOCKS5, así que Potatso ignora un sni ahí, como hacen ellos.
Potatso no admite:
- un certificado de CA personalizado: fija en su lugar el certificado del servidor,
- un certificado de cliente TLS (
certificateyprivate-keyde Clash), ni un nombre distinto con el que comprobar el certificado (name-cert-verify): Potatso no importa un servidor que necesite uno, - una lista ALPN: Potatso importa el servidor sin ella.
UDP
UDP lo usan QUIC, las llamadas de voz y vídeo y muchos juegos. Con Retransmisión UDP activada, Potatso envía UDP a través del servidor (UDP ASSOCIATE), a direcciones IPv4 e IPv6. También funciona con un servidor detrás de NAT que informa de su dirección como 0.0.0.0: Potatso envía UDP a la dirección que hayas indicado.
Desactiva Retransmisión UDP si tu servidor no retransmite UDP. Entonces:
- Con reglas, Potatso omite una regla que envía UDP a este servidor, y decide la siguiente regla que coincida. El UDP que no coincide con ninguna otra regla se envía directamente.
- En modo Global, UDP no funciona, porque todo el tráfico debe pasar por el servidor.
Algunas cosas que conviene saber sobre UDP:
- UDP se retransmite por el puerto UDP independiente del servidor, así que el cortafuegos del servidor debe dejar pasar UDP.
- Con SOCKS5 sobre TLS, solo va cifrada la conexión con el servidor. SOCKS5 envía UDP fuera de ella, así que tu tráfico UDP llega al servidor sin cifrar.
- Para UDP, Potatso resuelve por sí mismo la dirección del sitio y envía la dirección al servidor.
- Cuando importas desde Clash, Mihomo o Surge, Retransmisión UDP está activada salvo que el servidor indique
udp: false(udp-relay=falseen Surge). Clash deja UDP desactivado cuando faltaudp, así que comprueba que tu servidor retransmite UDP.
Compatibilidad de funciones
| Función | Admitida |
|---|---|
CONNECT a destinos IPv4, IPv6 y de dominio (RFC 1928) |
✅ |
DNS remoto: nombres de dominio resueltos por el servidor (socks5h) |
✅ Para TCP |
| Sin autenticación | ✅ |
| Nombre de usuario y contraseña (RFC 1929) | ✅ |
| GSSAPI (RFC 1961) | ❌ |
UDP ASSOCIATE a destinos IPv4 e IPv6 |
✅ |
UDP con un servidor detrás de NAT (dirección de retransmisión 0.0.0.0) |
✅ |
| Fragmentación UDP | ❌ Los datagramas fragmentados se descartan, lo que permite la RFC 1928 |
BIND (conexiones entrantes, como FTP en modo activo) |
❌ |
| SOCKS5 sobre TLS | ✅ Con pin del certificado y omitir verificación del certificado |
| Nombre de servidor TLS distinto de la dirección del servidor, ALPN, CA personalizada, certificado de cliente | ❌ |
| UDP cifrado con TLS | ❌ SOCKS5 envía UDP fuera de TLS |
| Una dirección de servidor IPv6 | ✅ |
| SOCKS4 y SOCKS4a | ❌ |
Cada función admitida se prueba con servidores SOCKS5 reales: Xray, sing-box, Mihomo, 3proxy y microsocks. sing-box sirve SOCKS5 sobre TLS en su entrada mixed, no en su entrada socks.
Enlaces
Un enlace SOCKS5 contiene un servidor completo en una sola línea:
socks5://user:password@host:port#name
socks5+tls://user:password@host:port?insecure=1#name| Parte | Descripción |
|---|---|
| esquema | socks5://, socks:// o socks5h:// para SOCKS5; socks5+tls:// o socks+tls:// para SOCKS5 sobre TLS. Potatso siempre envía los nombres de dominio al servidor, así que socks5h:// funciona igual que socks5://. |
user:password |
Opcional. Codifica con porcentaje :, @ y otros caracteres especiales de la contraseña, por ejemplo p%3Ass para p:ss. El nombre de usuario no puede contener :. |
host |
Dirección del servidor. Pon una dirección IPv6 entre corchetes, como [2001:db8::1]. |
port |
Puerto del servidor. |
insecure |
Solo SOCKS5 sobre TLS, opcional. 1 activa Omitir verificación del certificado. Potatso también lee allowInsecure y skip-cert-verify. |
name |
Opcional. El nombre del servidor en Potatso. |
Un enlace no puede contener un pin del certificado. Un enlace con un sni distinto de la dirección del servidor no se importa.
Potatso también importa otras dos formas:
socks://base64(user:password)@host:port#name
socks5://base64(user:password@host:port)#nameLa primera es como v2rayN comparte los servidores SOCKS. La segunda es la forma antigua, en la que todo lo que hay entre :// y # está codificado en Base64. Cuando Potatso comparte un servidor SOCKS5 con contraseña, ofrece el enlace estándar y la forma de v2rayN.
Ejemplos
Un servidor sin contraseña:
socks5://proxy.example.com:1080#OpenUn servidor con el nombre de usuario alice y la contraseña s3cret:
socks5://alice:s3cret@proxy.example.com:1080#AuthLa contraseña p:ss wörd, con codificación porcentual:
socks5://alice:p%3Ass%20w%C3%B6rd@proxy.example.com:1080#EncodedEl mismo servidor como enlace socks5h://:
socks5h://alice:s3cret@proxy.example.com:1080#Remote-DNSLa forma de v2rayN, con alice:s3cret codificado en Base64:
socks://YWxpY2U6czNjcmV0@proxy.example.com:1080#v2rayNLa forma antigua:
socks5://YWxpY2U6czNjcmV0QHByb3h5LmV4YW1wbGUuY29tOjEwODA#LegacyUn servidor con una dirección IPv6:
socks5://[2001:db8::1]:1080#IPv6Un servidor SOCKS5 sobre TLS:
socks5+tls://alice:s3cret@proxy.example.com:443#TLSUn servidor SOCKS5 sobre TLS con un certificado autofirmado:
socks+tls://proxy.example.com:443?insecure=1#Self-signed