---
title: "Shadowsocks"
description: "Potatso 支援的 Shadowsocks 加密方式、外掛程式、連結與功能。"
---

> 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

Shadowsocks 伺服器由**加密方式**和**密碼**描述，另外可搭配用來偽裝連線的**外掛程式**。當 Potatso 支援該加密方式（若有外掛程式則也要支援外掛程式）時，就能連上該伺服器。請使用下方表格，對照服務商提供或 `ss://` 連結中顯示的伺服器設定。

你可以手動加入 Shadowsocks 伺服器、使用 [`ss://` 連結](#links)，或透過匯入：

- Clash 或 Mihomo 訂閱，
- [SIP008](https://shadowsocks.org/doc/sip008.html) 線上設定，來自檔案或連結，
- shadowsocks-rust 或 shadowsocks-libev 的 `config.json`，
- Surge 設定，或 Xray、V2Ray 設定。

## 加密方式 {#ciphers}

如果伺服器提供 2022 加密方式，請優先使用，其次是 AEAD 加密方式。串流加密有已知的弱點：只在伺服器別無選擇時才使用。

| 加密方式 | 種類 | 支援 |
| --- | --- | --- |
| `2022-blake3-aes-128-gcm`、`2022-blake3-aes-256-gcm` | 2022 | ✅ 支援[多使用者](#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` | 串流 | ✅ |
| `aes-128-cfb`、`aes-192-cfb`、`aes-256-cfb`（也寫作 `-cfb128`） | 串流 | ✅ |
| `aes-128-cfb1`、`aes-192-cfb1`、`aes-256-cfb1` | 串流 | ✅ |
| `aes-128-cfb8`、`aes-192-cfb8`、`aes-256-cfb8` | 串流 | ✅ |
| `aes-128-ofb`、`aes-192-ofb`、`aes-256-ofb` | 串流 | ✅ |
| `camellia-128-ctr`、`camellia-192-ctr`、`camellia-256-ctr` | 串流 | ✅ |
| `camellia-128-cfb`、`camellia-192-cfb`、`camellia-256-cfb`（也寫作 `-cfb128`） | 串流 | ✅ |
| `camellia-128-cfb1`、`camellia-192-cfb1`、`camellia-256-cfb1` | 串流 | ✅ |
| `camellia-128-cfb8`、`camellia-192-cfb8`、`camellia-256-cfb8` | 串流 | ✅ |
| `camellia-128-ofb`、`camellia-192-ofb`、`camellia-256-ofb` | 串流 | ✅ |
| `chacha20-ietf`、`chacha20`、`salsa20` | 串流 | ✅ |
| `bf-cfb`、`rc4-md5`、`rc4`、`table` | 串流 | ✅ |
| `none`（也寫作 `plain`） | 不加密 | ✅ |
| `cast5-cfb`、`des-cfb`、`idea-cfb`、`rc2-cfb`、`seed-cfb`、`rc4-md5-6` | 串流 | ❌ 僅限 ShadowsocksR |
| `xchacha20`、`xsalsa20` | 串流 | ❌ |

名稱不分大小寫，因此 `AES-256-GCM` 與 `aes-256-gcm` 的作用相同。

`none` 會以未加密的方式傳送你的流量。請只搭配會自行加密連線的外掛程式使用，例如啟用 TLS 的 v2ray-plugin。

每一種支援的加密方式都至少用一台真實的 Shadowsocks 伺服器測試過：[shadowsocks-rust](https://github.com/shadowsocks/shadowsocks-rust)、[sing-box](https://sing-box.sagernet.org/) 或原版 Python 伺服器。在上述 AEAD 加密方式中，只有 shadowsocks-rust 伺服器提供 `aes-*-ccm`、`aes-*-gcm-siv` 和 `sm4-*`，且很少有服務商使用它們。

### 2022 金鑰 {#2022-keys}

2022 加密方式（[SIP022](https://shadowsocks.org/doc/sip022.html)）不使用密碼，而是使用金鑰：長度符合該加密方式需求、以 Base64 編碼的隨機位元組。`2022-blake3-aes-128-gcm` 需要 16 位元組的金鑰，其他 2022 加密方式需要 32 位元組的金鑰。請完全照伺服器上的金鑰使用。

Potatso 不會以長度錯誤的金鑰，或不是 Base64 的密碼連線。若要為你的伺服器產生新金鑰，`2022-blake3-aes-128-gcm` 請執行 `openssl rand -base64 16`，其他 2022 加密方式請執行 `openssl rand -base64 32`。

### 多使用者伺服器 {#multi-user}

2022 伺服器可以讓多位使用者共用同一個連接埠（[SIP023](https://shadowsocks.org/doc/sip023.html)）。每位使用者有自己的金鑰。對於這類伺服器，請把密碼設為伺服器金鑰和你的使用者金鑰，並以冒號分隔：

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

只有 `2022-blake3-aes-128-gcm` 和 `2022-blake3-aes-256-gcm` 支援多使用者伺服器。

## 外掛程式 {#plugins}

外掛程式會包裝 Shadowsocks 連線，讓它更難被偵測。Potatso 內建這些外掛程式，不需要另外安裝任何東西。

| 外掛程式 | 外掛程式名稱 | 支援 | UDP |
| --- | --- | --- | --- |
| Simple Obfs | `obfs-local`、`simple-obfs`、`obfs` | ✅ `obfs=http` 和 `obfs=tls` | 不經外掛程式，直接傳送到伺服器 |
| v2ray-plugin | `v2ray-plugin` | ✅ WebSocket，可搭配或不搭配 TLS。不支援 QUIC 模式。 | ❌ |
| gost-plugin | `gost-plugin` | ✅ WebSocket，可搭配或不搭配 TLS | ❌ |
| ShadowTLS | `shadow-tls` | ✅ 版本 1、2 和 3 | ❌ |
| Restls | `restls` | ✅ | ❌ |
| JLS | `jls` | ✅ | ❌ |

Potatso 不會匯入需要其他外掛程式的伺服器：

- Cloak、xray-plugin 與其他外掛程式，是你的裝置必須在 Potatso 旁另外執行的程式，而 iOS 不允許這樣做。
- Potatso 尚未提供 kcptun 與 ech-tls-tunnel。

### 設定外掛程式 {#set-plugin}

在伺服器的設定中，於**外掛程式**下選擇外掛程式，再在**外掛程式參數**中輸入其選項。選項是以分號分隔的 `key=value` 配對，如下方的 Simple Obfs 範例：

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

單獨的鍵（例如 `tls`）會開啟該選項。不需要的選項可以省略；下方表格列出了各選項的預設值。

匯入伺服器時，Potatso 會替你設定外掛程式與其選項：

- [`ss://` 連結](#links)會把它們放在 `plugin` 參數中，接在外掛程式名稱之後：`simple-obfs;obfs=tls;obfs-host=cdn.example.com`。
- Clash 或 Mihomo 訂閱會把它們放在 `plugin` 和 `plugin-opts` 中。
- SIP008 設定或 shadowsocks-rust、shadowsocks-libev 的 `config.json` 會把它們放在 `plugin` 和 `plugin_opts` 中。

不論哪種形式，選項都相同。如果你的服務商是一行列一個選項（如 Clash 的 `plugin-opts`），請把每個寫成 `key=value`，並以分號連接。

### 外掛程式選項 {#plugin-options}

**Simple Obfs**

| 選項 | 說明 |
| --- | --- |
| `obfs` | 必填。`http` 或 `tls`。 |
| `obfs-host` | `Host` 標頭（`http`），或 TLS 交握中傳送的伺服器名稱（`tls`）。留空時，Potatso 會使用伺服器的位址。 |
| `obfs-uri` | 僅限 `http`。請求路徑。預設為 `/`。 |
| `http-method` | 僅限 `http`。請求方法。預設為 `GET`。 |

**v2ray-plugin**

| 選項 | 說明 |
| --- | --- |
| `mode` | `websocket`，為預設值。不支援 QUIC 模式。 |
| `tls` | 透過 TLS 連線。預設為關閉。 |
| `host` | `Host` 標頭，以及 TLS 的伺服器名稱。留空時，Potatso 會使用伺服器的位址。 |
| `path` | WebSocket 路徑。預設為 `/`。 |
| `mux` | 多工。預設為關閉。僅在你的伺服器使用多工時才開啟。 |
| `skip-cert-verify` | 接受任何伺服器憑證。僅用於你信任的伺服器。 |
| `header` | 額外的請求標頭，寫成 `header=Name:Value`。要加入更多標頭時請重複使用。 |

**gost-plugin**

| 選項 | 說明 |
| --- | --- |
| `mode` | 必填。`websocket`。 |
| `tls` | 透過 TLS 連線。預設為關閉。 |
| `host` | `Host` 標頭，以及 TLS 的伺服器名稱。預設為 `bing.com`，與 gost 相同。 |
| `path` | WebSocket 路徑。預設為 `/`。 |
| `mux` | 多工。預設為開啟。 |
| `skip-cert-verify` | 接受任何伺服器憑證。僅用於你信任的伺服器。 |
| `fingerprint` | 伺服器憑證的 SHA-256 指紋，用於只接受該憑證。 |
| `header` | 額外的請求標頭，寫成 `header=Name:Value`。要加入更多標頭時請重複使用。 |

**ShadowTLS**

| 選項 | 說明 |
| --- | --- |
| `host` | 必填。掩護網站的伺服器名稱，例如 `www.example.com`。 |
| `version` | 必填。`1`、`2` 或 `3`。 |
| `password` | 密碼。版本 2 和 3 需要。 |
| `alpn` | ALPN 清單，以逗號分隔。預設為 `h2,http/1.1`。 |
| `skip-cert-verify` | 接受任何掩護網站的憑證。 |

**Restls**

| 選項 | 說明 |
| --- | --- |
| `host` | 必填。掩護網站的伺服器名稱。 |
| `password` | 必填。密碼。 |
| `version-hint` | 必填。`tls13` 或 `tls12`，依你的伺服器設定而定。 |
| `restls-script` | 記錄層腳本（如果你的服務商有提供）。 |

**JLS**

| 選項 | 說明 |
| --- | --- |
| `host` | 必填。掩護網站的伺服器名稱。 |
| `username` | 必填。使用者名稱。 |
| `password` | 必填。密碼。 |
| `alpn` | ALPN 清單，以逗號分隔。預設為 `h2,http/1.1`。 |

當必填選項缺少或值無效時，Potatso 不會連線到該伺服器。

## UDP {#udp}

Shadowsocks 伺服器的 UDP 預設為開啟，並適用於每一種支援的加密方式。如果你的伺服器不轉送 UDP，請在伺服器的設定中將它關閉。

UDP 不會經過外掛程式傳送，因此使用 Simple Obfs 以外的外掛程式時，伺服器只會承載 TCP。Potatso 不支援 UDP-over-TCP（連結或訂閱中的 `udp-over-tcp` 或 `uot`），也不會匯入需要它的伺服器。

## 功能支援 {#features}

| 功能 | 支援 |
| --- | --- |
| [SIP002](https://shadowsocks.org/doc/sip002.html) `ss://` 連結 | ✅ 包含較舊的 Base64 形式 |
| [SIP003](https://shadowsocks.org/doc/sip003.html) 外掛程式 | 僅限[內建外掛程式](#plugins) |
| SIP003u（透過外掛程式傳送 UDP） | ❌ |
| [AEAD 加密方式](https://shadowsocks.org/doc/aead.html)（SIP004） | ✅ |
| [SIP008](https://shadowsocks.org/doc/sip008.html) 線上設定 | ✅ |
| [SIP022](https://shadowsocks.org/doc/sip022.html) 2022 加密方式 | ✅ TCP 和 UDP |
| [SIP023](https://shadowsocks.org/doc/sip023.html) 多使用者身分標頭 | ✅ 適用於 AES 2022 加密方式 |
| [串流加密](https://shadowsocks.org/doc/stream.html) | ✅ 請見[加密方式](#ciphers) |
| UDP-over-TCP | ❌ |
| TCP Fast Open、MPTCP | ❌ |

shadowsocks-rust 的部分功能是其自身用戶端程式 `sslocal` 的設定，Potatso 以自己的方式完成相同的工作：

- 本機 SOCKS5、HTTP、tunnel、redir、DNS 和 TUN 伺服器：Potatso 自行擷取你裝置的流量。
- 存取控制清單（ACL）：請使用設定檔中的規則。
- 從多台伺服器中選出最快的一台：請使用設定檔中的代理群組。

## `ss://` 連結 {#links}

`ss://` 連結用一行就包含整台伺服器（[SIP002](https://shadowsocks.org/doc/sip002.html)）：

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

| 部分 | 說明 |
| --- | --- |
| `userinfo` | 加密方式和密碼，寫成 `cipher:password`，以 Base64 編碼或百分比編碼。2022 加密方式必須使用百分比編碼的形式。 |
| `host` | 伺服器位址。IPv6 位址請放在方括號中，例如 `[2001:db8::1]`。 |
| `port` | 伺服器連接埠。 |
| `plugin` | 選填。外掛程式名稱與其選項，以分號分隔並經過百分比編碼，例如 `simple-obfs;obfs=tls;obfs-host=cdn.example.com`。 |
| `name` | 選填。伺服器在 Potatso 中的名稱。 |

Potatso 也會匯入較舊的形式，也就是 `#` 之前的所有內容都以 Base64 編碼：

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

Potatso 接受標準與 URL-safe 的 Base64，有無 `=` 補位皆可。Potatso 分享伺服器時，會提供 SIP002 的 Base64 與百分比編碼形式，以及較舊的形式。

### 範例 {#link-examples}

每個範例都顯示要匯入的連結。AEAD 範例中的密碼是 `secret`。

使用 `aes-256-gcm` 的基本伺服器：

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

使用 16 位元組金鑰 `MTIzNDU2Nzg5MDEyMzQ1Ng==` 的 2022 伺服器：

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

多使用者的 2022 伺服器，伺服器金鑰與使用者金鑰以冒號（`%3A`）分隔：

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

使用 TLS 的 Simple Obfs，以 `cdn.example.com` 作為伺服器名稱：

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

基本伺服器的較舊形式：

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

使用 IPv6 位址的伺服器：

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

Source: https://potatso.com/docs/zh-hant/protocols/shadowsocks/index.mdx
