---
title: "Snell"
description: "Potatso 支援的 Snell 版本、混淆、Surge 設定與功能。"
---

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

# Snell

Snell 伺服器由 **PSK**（預先共用金鑰）和其**版本**描述，另外可搭配**混淆**。Snell 是 Surge 團隊的代理協定。用戶端的版本必須與伺服器一致，所以請先確認：它就是服務商 Surge 設定中的 `version`，或是你的伺服器執行的 snell-server 版本。

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

- Clash 或 Mihomo 訂閱，
- Surge 設定。

## 版本 {#versions}

| 版本 | 支援 | 測試對象 |
| --- | --- | --- |
| v1、v2 | ❌ | |
| v3 | ✅ | open-snell |
| v4 | ✅ | snell-server v4 |
| v5 | ✅ 不含 QUIC Proxy Mode | snell-server v5 |
| v6 | ✅ | snell-server v6 |

v5 伺服器也接受 v4 用戶端，v4 伺服器也接受設為 v5 的用戶端。其他版本組合都無法連線。

v5 的 QUIC Proxy Mode 是 Surge 轉送 QUIC 流量的一種方式。Potatso 則像其他 UDP 流量一樣轉送 QUIC，所以 QUIC 仍然可以使用。

Snell v6 在 Surge 仍處於 Beta 階段，可能還會以導致舊版用戶端無法使用的方式變動。請讓伺服器的版本維持服務商建議的版本。

## 混淆 {#obfuscation}

| 混淆 | v3 | v4、v5 | v6 |
| --- | --- | --- | --- |
| 無 | ✅ | ✅ | ✅ |
| HTTP | ✅ | ✅ | |
| TLS | ✅ | ❌ 伺服器只提供 HTTP | |

混淆會讓連線的開頭看起來像 HTTP 請求或 TLS 交握。它必須與伺服器的 `obfs` 設定一致。請把**混淆主機**設為服務商提供的主機名稱：未設定時，Potatso 會使用 `bing.com`，與 Clash 相同。

v6 伺服器沒有混淆。它改為依 PSK 調整流量形態，你的裝置不需要為此做任何設定。

### v6 模式 {#v6-modes}

| 模式 | 支援 |
| --- | --- |
| `default`：加密並調整流量形態 | ✅ |
| `unshaped`：加密但不調整流量形態 | ✅ |
| `unsafe-raw`：不加密，也不調整流量形態 | ✅ |

模式必須與伺服器的 `mode` 設定一致。`unsafe-raw` 會原樣傳送你的流量，也不會檢查 PSK：只在另一條安全通道內使用。

## 連線重複使用 {#reuse}

開啟**重複使用連線**後，當與某個網站的連線結束時，Potatso 會保持 Snell 連線開啟，並用於下一個連線。這能省下一次往返。v4 以上才支援重複使用。v3 伺服器從不重複使用連線，因此 v3 不會顯示這個設定。

## UDP {#udp}

Snell v3 以上在 Snell 連線內承載 UDP。UDP 預設為關閉，與 Clash 相同。如果你的伺服器轉送 UDP，請在伺服器的設定中開啟 UDP 轉送。Surge 設定一律會將它開啟，與 Surge 的行為相同。

使用 v5 伺服器時，大於約 2.5 KB 的 UDP 回覆會被截斷：伺服器以只有 Surge 能讀取的形式傳送它們。大多數 UDP 流量（例如 DNS、QUIC 和通話）使用較小的封包。v4 或 v6 伺服器沒有這個問題。

## Surge 設定 {#surge}

Potatso 會匯入 Surge 設定中的 `snell` 行：

```text
Snell = snell, snell.example.com, 8443, psk=secret, version=4, obfs=http, obfs-host=bing.com, reuse=true
```

| 設定 | 支援 |
| --- | --- |
| `psk` | ✅ |
| `version` | ✅ 3 到 6。未指定 `version` 時 Surge 使用 v1，所以 Potatso 不會匯入該行。 |
| `obfs`、`obfs-host` | ✅ 請見[混淆](#obfuscation) |
| `obfs-uri` | ❌ |
| `reuse` | ✅ |
| `mode` | ✅ 僅限 v6 |
| `udp-port` | ❌ |
| `shadow-tls-password` | ❌ |
| `tfo` | ❌ 忽略 |

Potatso 不會匯入需要上述不支援設定之一的行，也不會匯入搭配 v4 以上的 `obfs=tls`，因為它無法連線到那樣的伺服器。

## 功能支援 {#features}

| 功能 | 支援 |
| --- | --- |
| Snell v3、v4、v5 和 v6 | ✅ |
| Snell v1、v2 | ❌ |
| HTTP 混淆（v3 到 v5）、TLS 混淆（v3） | ✅ |
| v6 模式 | ✅ |
| 連線重複使用（v4 以上） | ✅ |
| UDP（v3 以上） | ✅ |
| v5 QUIC Proxy Mode | ❌ QUIC 改走 UDP |
| 在 Snell 外包覆 ShadowTLS、Restls 或 JLS | ❌ |
| `snell://` 連結 | ✅ |

每個支援的版本都以真實的 Snell 伺服器測試過：Surge 的 [snell-server](https://kb.nssurge.com/surge-knowledge-base/release-notes/snell) v4、v5 和 v6，以及 v3 的 [open-snell](https://github.com/icpz/open-snell)，因為 Surge 已不再提供 v3 伺服器。

當 PSK、版本或混淆不一致時，伺服器會關閉連線。當 Snell 伺服器始終無法連線時，請先檢查這三項。

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

Snell 沒有官方的連結格式。Potatso 讀取與分享 Snell 伺服器時使用以下格式：

```text
snell://psk@host:port?version=4&obfs=http&obfs-host=bing.com#name
```

| 部分 | 說明 |
| --- | --- |
| `psk` | PSK，經過百分比編碼。 |
| `host` | 伺服器位址。IPv6 位址請放在方括號中，例如 `[2001:db8::1]`。 |
| `port` | 伺服器連接埠。 |
| `version` | Snell 版本，缺少時為 4。 |
| `obfs`、`obfs-host` | 混淆及其主機名稱。 |
| `name` | 選填。伺服器在 Potatso 中的名稱。 |

### 範例 {#link-examples}

每個範例都顯示要匯入的連結。PSK 是 `secret`。

v4 伺服器：

```text
snell://secret@snell.example.com:8443?version=4#Basic
```

使用 HTTP 混淆的 v4 伺服器：

```text
snell://secret@snell.example.com:8443?version=4&obfs=http&obfs-host=bing.com#HTTP
```

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