Skip to content

SOCKS5 y SOCKS5 sobre TLS

Las opciones, enlaces y funciones de SOCKS5 y SOCKS5 sobre TLS que admite Potatso.

Updated Ver como Markdown

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 (socks5 y socks5-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 (certificate y private-key de 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=false en Surge). Clash deja UDP desactivado cuando falta udp, 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.

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)#name

La 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.

Un servidor sin contraseña:

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

Un servidor con el nombre de usuario alice y la contraseña s3cret:

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

La contraseña p:ss wörd, con codificación porcentual:

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

El mismo servidor como enlace socks5h://:

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

La forma de v2rayN, con alice:s3cret codificado en Base64:

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

La forma antigua:

socks5://YWxpY2U6czNjcmV0QHByb3h5LmV4YW1wbGUuY29tOjEwODA#Legacy

Un servidor con una dirección IPv6:

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

Un servidor SOCKS5 sobre TLS:

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

Un servidor SOCKS5 sobre TLS con un certificado autofirmado:

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

Type to search…

↑↓ navigate↵ selectEsc close