---
title: "Shadowsocks"
description: "Los cifrados, plugins, enlaces y funciones de Shadowsocks que admite Potatso."
---

> Documentation Index
> Fetch the complete documentation index at: https://potatso.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Shadowsocks

Un servidor Shadowsocks se describe con un **cifrado** y una **contraseña**, y opcionalmente un **plugin** que disfraza la conexión. Potatso se conecta a un servidor cuando admite el cifrado y, si lo hay, el plugin. Usa las tablas siguientes para comprobar los ajustes de tu servidor, tal como los muestra tu proveedor o su enlace `ss://`.

Puedes añadir un servidor Shadowsocks a mano, con un [enlace `ss://`](#links) o importándolo desde:

- una suscripción de Clash o Mihomo,
- una configuración en línea [SIP008](https://shadowsocks.org/doc/sip008.html), desde un archivo o un enlace,
- un `config.json` de shadowsocks-rust o shadowsocks-libev,
- una configuración de Surge, o una configuración de Xray o V2Ray.

## Cifrados {#ciphers}

Prefiere un cifrado 2022 si tu servidor lo ofrece, y después un cifrado AEAD. Los cifrados de flujo tienen debilidades conocidas: úsalos solo con servidores que no ofrezcan otra cosa.

| Cifrado | Tipo | Admitido |
| --- | --- | --- |
| `2022-blake3-aes-128-gcm`, `2022-blake3-aes-256-gcm` | 2022 | ✅ Con [varios usuarios](#multi-user) |
| `2022-blake3-chacha20-poly1305`, `2022-blake3-chacha8-poly1305` | 2022 | ✅ |
| `aes-128-gcm`, `aes-192-gcm`, `aes-256-gcm` | AEAD | ✅ |
| `chacha20-ietf-poly1305`, `xchacha20-ietf-poly1305` | AEAD | ✅ |
| `aes-128-ccm`, `aes-256-ccm`, `aes-128-gcm-siv`, `aes-256-gcm-siv` | AEAD | ✅ |
| `sm4-gcm`, `sm4-ccm` | AEAD | ✅ |
| `aes-128-ctr`, `aes-192-ctr`, `aes-256-ctr` | De flujo | ✅ |
| `aes-128-cfb`, `aes-192-cfb`, `aes-256-cfb` (también escrito `-cfb128`) | De flujo | ✅ |
| `aes-128-cfb1`, `aes-192-cfb1`, `aes-256-cfb1` | De flujo | ✅ |
| `aes-128-cfb8`, `aes-192-cfb8`, `aes-256-cfb8` | De flujo | ✅ |
| `aes-128-ofb`, `aes-192-ofb`, `aes-256-ofb` | De flujo | ✅ |
| `camellia-128-ctr`, `camellia-192-ctr`, `camellia-256-ctr` | De flujo | ✅ |
| `camellia-128-cfb`, `camellia-192-cfb`, `camellia-256-cfb` (también escrito `-cfb128`) | De flujo | ✅ |
| `camellia-128-cfb1`, `camellia-192-cfb1`, `camellia-256-cfb1` | De flujo | ✅ |
| `camellia-128-cfb8`, `camellia-192-cfb8`, `camellia-256-cfb8` | De flujo | ✅ |
| `camellia-128-ofb`, `camellia-192-ofb`, `camellia-256-ofb` | De flujo | ✅ |
| `chacha20-ietf`, `chacha20`, `salsa20` | De flujo | ✅ |
| `bf-cfb`, `rc4-md5`, `rc4`, `table` | De flujo | ✅ |
| `none` (también escrito `plain`) | Sin cifrado | ✅ |
| `cast5-cfb`, `des-cfb`, `idea-cfb`, `rc2-cfb`, `seed-cfb`, `rc4-md5-6` | De flujo | ❌ Solo ShadowsocksR |
| `xchacha20`, `xsalsa20` | De flujo | ❌ |

Los nombres no distinguen mayúsculas de minúsculas, así que `AES-256-GCM` funciona igual que `aes-256-gcm`.

`none` envía tu tráfico sin cifrar. Úsalo solo con un plugin que cifre la propia conexión, como v2ray-plugin con TLS.

Cada cifrado admitido se prueba con al menos un servidor Shadowsocks real: [shadowsocks-rust](https://github.com/shadowsocks/shadowsocks-rust), [sing-box](https://sing-box.sagernet.org/) o el servidor original en Python. De los cifrados AEAD anteriores, solo los servidores shadowsocks-rust ofrecen `aes-*-ccm`, `aes-*-gcm-siv` y `sm4-*`, y pocos proveedores los usan.

### Claves 2022 {#2022-keys}

Los cifrados 2022 ([SIP022](https://shadowsocks.org/doc/sip022.html)) no usan una contraseña. Usan una clave: bytes aleatorios, codificados en Base64, de la longitud que necesita el cifrado. `2022-blake3-aes-128-gcm` necesita una clave de 16 bytes y los demás cifrados 2022 una clave de 32 bytes. Usa la clave exactamente como la tiene tu servidor.

Potatso no se conecta con una clave de longitud incorrecta ni con una contraseña que no esté en Base64. Para crear una clave nueva para tu servidor, ejecuta `openssl rand -base64 16` para `2022-blake3-aes-128-gcm`, o `openssl rand -base64 32` para los demás cifrados 2022.

### Servidores con varios usuarios {#multi-user}

Un servidor 2022 puede compartir un puerto entre varios usuarios ([SIP023](https://shadowsocks.org/doc/sip023.html)). Cada usuario tiene su propia clave. Para estos servidores, indica como contraseña la clave del servidor y tu clave de usuario, separadas por dos puntos:

```text
server-key:user-key
```

Solo `2022-blake3-aes-128-gcm` y `2022-blake3-aes-256-gcm` admiten servidores con varios usuarios.

## Plugins {#plugins}

Un plugin envuelve la conexión Shadowsocks para que sea más difícil de detectar. Potatso trae estos plugins integrados, así que no hay que instalar nada más.

| Plugin | Nombres del plugin | Admitido | UDP |
| --- | --- | --- | --- |
| Simple Obfs | `obfs-local`, `simple-obfs`, `obfs` | ✅ `obfs=http` y `obfs=tls` | Se envía al servidor sin el plugin |
| v2ray-plugin | `v2ray-plugin` | ✅ WebSocket, con o sin TLS. El modo QUIC no se admite. | ❌ |
| gost-plugin | `gost-plugin` | ✅ WebSocket, con o sin TLS | ❌ |
| ShadowTLS | `shadow-tls` | ✅ Versiones 1, 2 y 3 | ❌ |
| Restls | `restls` | ✅ | ❌ |
| JLS | `jls` | ✅ | ❌ |

Potatso no importa un servidor que necesite otro plugin:

- Cloak, xray-plugin y otros plugins son programas que tu dispositivo tendría que ejecutar junto a Potatso, algo que iOS no permite.
- kcptun y ech-tls-tunnel todavía no están disponibles en Potatso.

### Configurar un plugin {#set-plugin}

En los ajustes del servidor, elige el plugin en **Plugin** y después introduce sus opciones en **Parámetro del plugin**. Las opciones son pares `key=value` separados por punto y coma, como en este ejemplo de Simple Obfs:

```text
obfs=tls;obfs-host=cdn.example.com
```

Una clave sola, como `tls`, activa esa opción. Omite cualquier opción que no necesites; las tablas siguientes indican el valor predeterminado de cada una.

Cuando importas un servidor, Potatso configura por ti el plugin y sus opciones:

- Un [enlace `ss://`](#links) las incluye en su parámetro `plugin`, después del nombre del plugin: `simple-obfs;obfs=tls;obfs-host=cdn.example.com`.
- Una suscripción de Clash o Mihomo las incluye en `plugin` y `plugin-opts`.
- Una configuración SIP008 o un `config.json` de shadowsocks-rust o shadowsocks-libev las incluye en `plugin` y `plugin_opts`.

Son las mismas opciones en todas las formas. Si tu proveedor las enumera una por línea, como en un `plugin-opts` de Clash, escribe cada una como `key=value` y únelas con punto y coma.

### Opciones de los plugins {#plugin-options}

**Simple Obfs**

| Opción | Descripción |
| --- | --- |
| `obfs` | Obligatoria. `http` o `tls`. |
| `obfs-host` | La cabecera `Host` (`http`) o el nombre del servidor enviado en la negociación TLS (`tls`). Si está vacía, Potatso usa la dirección del servidor. |
| `obfs-uri` | Solo `http`. La ruta de la petición. Por defecto `/`. |
| `http-method` | Solo `http`. El método de la petición. Por defecto `GET`. |

**v2ray-plugin**

| Opción | Descripción |
| --- | --- |
| `mode` | `websocket`, el valor predeterminado. El modo QUIC no se admite. |
| `tls` | Se conecta por TLS. Desactivada por defecto. |
| `host` | La cabecera `Host` y el nombre del servidor para TLS. Si está vacía, Potatso usa la dirección del servidor. |
| `path` | La ruta de WebSocket. Por defecto `/`. |
| `mux` | Multiplexación. Desactivada por defecto. Actívala solo si tu servidor la usa. |
| `skip-cert-verify` | Acepta cualquier certificado del servidor. Úsala solo con un servidor de confianza. |
| `header` | Una cabecera de petición adicional, como `header=Name:Value`. Repítela para añadir más cabeceras. |

**gost-plugin**

| Opción | Descripción |
| --- | --- |
| `mode` | Obligatoria. `websocket`. |
| `tls` | Se conecta por TLS. Desactivada por defecto. |
| `host` | La cabecera `Host` y el nombre del servidor para TLS. Por defecto `bing.com`, como en gost. |
| `path` | La ruta de WebSocket. Por defecto `/`. |
| `mux` | Multiplexación. Activada por defecto. |
| `skip-cert-verify` | Acepta cualquier certificado del servidor. Úsala solo con un servidor de confianza. |
| `fingerprint` | La huella SHA-256 del certificado del servidor, para aceptar solo ese certificado. |
| `header` | Una cabecera de petición adicional, como `header=Name:Value`. Repítela para añadir más cabeceras. |

**ShadowTLS**

| Opción | Descripción |
| --- | --- |
| `host` | Obligatoria. El nombre de servidor del sitio de cobertura, como `www.example.com`. |
| `version` | Obligatoria. `1`, `2` o `3`. |
| `password` | La contraseña. Las versiones 2 y 3 la necesitan. |
| `alpn` | La lista ALPN, separada por comas. Por defecto `h2,http/1.1`. |
| `skip-cert-verify` | Acepta cualquier certificado del sitio de cobertura. |

**Restls**

| Opción | Descripción |
| --- | --- |
| `host` | Obligatoria. El nombre de servidor del sitio de cobertura. |
| `password` | Obligatoria. La contraseña. |
| `version-hint` | Obligatoria. `tls13` o `tls12`, según esté configurado tu servidor. |
| `restls-script` | El script de registros, si tu proveedor te da uno. |

**JLS**

| Opción | Descripción |
| --- | --- |
| `host` | Obligatoria. El nombre de servidor del sitio de cobertura. |
| `username` | Obligatoria. El nombre de usuario. |
| `password` | Obligatoria. La contraseña. |
| `alpn` | La lista ALPN, separada por comas. Por defecto `h2,http/1.1`. |

Potatso no se conecta a un servidor cuando falta una opción obligatoria o un valor no es válido.

## UDP {#udp}

UDP está activado por defecto en los servidores Shadowsocks y funciona con todos los cifrados admitidos. Desactívalo en los ajustes del servidor si tu servidor no retransmite UDP.

UDP no se envía a través de un plugin, así que con un plugin distinto de Simple Obfs el servidor solo transporta TCP. Potatso no admite UDP sobre TCP (`udp-over-tcp` o `uot` en un enlace o suscripción) y no importa un servidor que lo requiera.

## Compatibilidad de funciones {#features}

| Función | Admitida |
| --- | --- |
| Enlaces `ss://` [SIP002](https://shadowsocks.org/doc/sip002.html) | ✅ Incluida la forma antigua en Base64 |
| Plugins [SIP003](https://shadowsocks.org/doc/sip003.html) | Solo los [plugins integrados](#plugins) |
| SIP003u (UDP a través de un plugin) | ❌ |
| [Cifrados AEAD](https://shadowsocks.org/doc/aead.html) (SIP004) | ✅ |
| Configuración en línea [SIP008](https://shadowsocks.org/doc/sip008.html) | ✅ |
| Cifrados 2022 [SIP022](https://shadowsocks.org/doc/sip022.html) | ✅ TCP y UDP |
| Cabeceras de identidad de varios usuarios [SIP023](https://shadowsocks.org/doc/sip023.html) | ✅ Para los cifrados AES 2022 |
| [Cifrados de flujo](https://shadowsocks.org/doc/stream.html) | ✅ Consulta [Cifrados](#ciphers) |
| UDP sobre TCP | ❌ |
| TCP Fast Open, MPTCP | ❌ |

Algunas funciones de shadowsocks-rust son ajustes de su propio programa cliente, `sslocal`, y Potatso hace el mismo trabajo a su manera:

- Servidores locales SOCKS5, HTTP, tunnel, redir, DNS y TUN: Potatso captura por sí mismo el tráfico de tu dispositivo.
- Listas de control de acceso (ACL): usa reglas en tu perfil.
- Elegir el más rápido de varios servidores: usa un grupo de proxies en tu perfil.

## Enlaces `ss://` {#links}

Un enlace `ss://` contiene un servidor completo en una sola línea ([SIP002](https://shadowsocks.org/doc/sip002.html)):

```text
ss://userinfo@host:port/?plugin=…#name
```

| Parte | Descripción |
| --- | --- |
| `userinfo` | El cifrado y la contraseña como `cipher:password`, codificados en Base64 o con codificación porcentual. Un cifrado 2022 debe usar la forma con codificación porcentual. |
| `host` | Dirección del servidor. Pon una dirección IPv6 entre corchetes, como `[2001:db8::1]`. |
| `port` | Puerto del servidor. |
| `plugin` | Opcional. El nombre del plugin y sus opciones, separados por punto y coma y con codificación porcentual, como `simple-obfs;obfs=tls;obfs-host=cdn.example.com`. |
| `name` | Opcional. El nombre del servidor en Potatso. |

Potatso también importa la forma antigua, en la que todo lo que hay antes de `#` está codificado en Base64:

```text
ss://base64(cipher:password@host:port)#name
```

Potatso acepta Base64 estándar y seguro para URL, con o sin relleno `=`. Cuando Potatso comparte un servidor, ofrece las formas SIP002 en Base64 y con codificación porcentual, y la forma antigua.

### Ejemplos {#link-examples}

Cada ejemplo muestra el enlace que se importa. La contraseña en los ejemplos AEAD es `secret`.

Un servidor básico con `aes-256-gcm`:

```text
ss://YWVzLTI1Ni1nY206c2VjcmV0@ss.example.com:8388#Basic
```

Un servidor 2022 con la clave de 16 bytes `MTIzNDU2Nzg5MDEyMzQ1Ng==`:

```text
ss://2022-blake3-aes-128-gcm:MTIzNDU2Nzg5MDEyMzQ1Ng%3D%3D@ss.example.com:8388#2022
```

Un servidor 2022 con varios usuarios, con la clave del servidor y la clave de usuario separadas por dos puntos (`%3A`):

```text
ss://2022-blake3-aes-256-gcm:MTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTI%3D%3AYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXowMTIzNDU%3D@ss.example.com:8388#Multi-user
```

Simple Obfs con TLS, usando `cdn.example.com` como nombre del servidor:

```text
ss://YWVzLTI1Ni1nY206c2VjcmV0@ss.example.com:443/?plugin=simple-obfs%3Bobfs%3Dtls%3Bobfs-host%3Dcdn.example.com#Obfs
```

La forma antigua del servidor básico:

```text
ss://YWVzLTI1Ni1nY206c2VjcmV0QHNzLmV4YW1wbGUuY29tOjgzODg#Legacy
```

Un servidor con una dirección IPv6:

```text
ss://YWVzLTI1Ni1nY206c2VjcmV0@[2001:db8::1]:8388#IPv6
```

Source: https://potatso.com/docs/es/protocols/shadowsocks/index.mdx
