---
title: "Snell"
description: "iPhone 版 Potatso 支持的 Snell 版本、混淆、Surge 设置和功能，包括 v3 到 v6、连接复用和 UDP。"
---

> 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 中仍处于测试阶段，之后可能发生导致旧客户端无法使用的变化。请让服务器的版本保持为服务商推荐的版本。

## 混淆 {#obfuscation}

| 混淆 | v3 | v4, v5 | v6 |
| --- | --- | --- | --- |
| 无 | ✅ | ✅ | ✅ |
| HTTP | ✅ | ✅ | |
| TLS | ✅ | ❌ 服务器只提供 HTTP | |

混淆会让连接的开头看起来像一个 HTTP 请求或一次 TLS 握手。它必须与服务器的 `obfs` 设置一致。请把**混淆主机**设为服务商给出的主机名：未设置时，Potatso 与 Clash 一样使用 `bing.com`。

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。与 Clash 一样，UDP 默认关闭。如果你的服务器转发 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` | ❌ 已忽略 |

如果某一行需要上面某项不受支持的设置，或在 v4 及更高版本中使用 `obfs=tls`，Potatso 不会导入它，因为无法连接到该服务器。

## 功能支持 {#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/protocols/snell/index.mdx
