HTTP 代理是一种服务器,在收到 HTTP CONNECT 请求后为你建立连接。HTTPS 代理是通过 TLS 访问的同一种服务器,因此与代理之间的连接也是加密的。Potatso 两者都能连接,无论有没有用户名和密码。
HTTP 代理只承载 TCP。其余流量会怎样,见 UDP。
你可以手动添加 HTTP 或 HTTPS 代理、通过 http:// 或 https:// 链接添加,或通过导入添加:
- Clash 或 Mihomo 订阅(
type: http), - Surge 配置(
http和https), - Xray 或 V2Ray 配置(
http出站)。
手动添加 HTTPS 代理时,请选择 HTTP 并开启 TLS。
设置
| 设置 | 说明 |
|---|---|
| 服务器、端口 | 代理的地址和端口。也可以使用 IPv6 地址。 |
| 用户名、密码 | 可选。以 Basic 认证方式发送。 |
| TLS | HTTPS 代理需开启。 |
| 服务器名称 | 仅限 HTTPS,可选。TLS 握手中发送的名称,也用于检查证书。留空则使用服务器地址。 |
| 跳过证书验证 | 仅限 HTTPS。接受任何证书。仅用于测试。 |
| 证书固定 | 仅限 HTTPS,可选。代理证书的 SHA-256 指纹,共 64 位十六进制数字。设置后,Potatso 只接受被固定的证书(包括自签名证书),不接受其他证书。 |
密码可以包含任何字符,包括 : 和非 ASCII 字符。用户名不能包含 :。
自定义头部
Clash、Mihomo 或 Xray 配置可以给 CONNECT 请求添加头部,例如服务商要求的 User-Agent。Potatso 在导入代理时会保留这些头部,并在每条连接中发送。Host 头部会替换 Potatso 自己发送的那个。你无法在 App 中添加或编辑头部。
证书
HTTPS 代理需要一张你的设备信任的证书,除非你设置了证书固定或开启了跳过证书验证。
Potatso 不支持:
- HTTPS 代理的自定义 CA 证书:请改为固定代理的证书,
- TLS 客户端证书(Clash 的
certificate和private-key):Potatso 不会导入需要它的代理, - ALPN 列表:Potatso 始终以 HTTP/1.1 与代理通信。
UDP
HTTP 代理只承载 TCP,所以 Potatso 绝不会向它发送 UDP。QUIC、语音和视频通话以及许多游戏都使用 UDP。
- 使用规则时,Potatso 会跳过把 UDP 发往 HTTP 或 HTTPS 代理的规则,由下一条匹配的规则决定。没有其他规则匹配的 UDP 会直接发送。
- 在全局模式下,UDP 无法使用,因为所有流量都必须经过代理。
如果也要让 UDP 经过代理,请使用协议支持 UDP 的服务器,如 SOCKS5 或 Shadowsocks。
功能支持
| 功能 | 支持情况 |
|---|---|
到 IPv4、IPv6 和域名目标的 CONNECT 隧道(RFC 9110 §9.3.6) |
✅ |
| Basic 认证(RFC 7617),UTF-8 密码 | ✅ |
| Digest 认证(RFC 7616) | ❌ |
| HTTPS 代理(基于 TLS 的 HTTP) | ✅ 支持服务器名称、证书固定和跳过证书验证 |
自定义 CONNECT 头部 |
✅ 来自导入 |
| IPv6 代理地址 | ✅ |
HTTP/2 CONNECT(RFC 9113 §8.5) |
❌ |
HTTP/3 CONNECT(RFC 9114 §4.4) |
❌ |
通过代理传输 UDP(CONNECT-UDP,RFC 9298) |
❌ |
不使用 CONNECT 的纯 HTTP 转发(绝对形式请求) |
❌ Potatso 对每条连接都使用 CONNECT |
| TLS 客户端证书、自定义 CA、ALPN | ❌ |
每一项受支持的功能,都用真实的代理服务器测试过:tinyproxy、sing-box、Xray 和 Mihomo。
请使用服务器的 CONNECT 端口,而不是只转发普通网页请求的网页端口。有些代理只允许 CONNECT 到 443 端口。如果通过代理只有部分网站能访问,请询问服务商是否限制了 CONNECT 端口。
链接
http:// 或 https:// 链接用一行文字包含完整的代理信息:
http://user:password@host:port#name
https://user:password@host:port?sni=…&insecure=1#name| 部分 | 说明 |
|---|---|
user:password |
可选。密码中的 :、@ 和其他特殊字符需要百分号编码,例如用 p%3Ass 表示 p:ss。 |
host |
代理地址。IPv6 地址要放在方括号里,如 [2001:db8::1]。 |
port |
代理端口。 |
sni |
仅限 HTTPS,可选。服务器名称。Potatso 也会读取 peer 和 servername。 |
insecure |
仅限 HTTPS,可选。1 表示开启跳过证书验证。Potatso 也会读取 allowInsecure 和 skip-cert-verify。 |
name |
可选。代理在 Potatso 中的名称。 |
链接中不能包含证书固定或自定义头部。Potatso 也能导入较旧的形式,即 :// 与 # 之间的全部内容都经 Base64 编码:
http://base64(user:password@host:port)#name示例
没有密码的代理:
http://proxy.example.com:8080#Open用户名为 alice、密码为 s3cret 的代理:
http://alice:s3cret@proxy.example.com:8080#Basic密码 p:ss wörd,经百分号编码:
http://alice:p%3Ass%20w%C3%B6rd@proxy.example.com:8080#EncodedHTTPS 代理:
https://alice:s3cret@proxy.example.com:443#TLS通过 IP 地址访问、证书名称为 proxy.example.com 的 HTTPS 代理:
https://alice:s3cret@203.0.113.10:443?sni=proxy.example.com#SNI使用自签名证书的 HTTPS 代理:
https://proxy.example.com:443?insecure=1#Self-signed使用 IPv6 地址的代理:
http://[2001:db8::1]:8080#IPv6基本代理的旧形式:
http://YWxpY2U6czNjcmV0QHByb3h5LmV4YW1wbGUuY29tOjgwODA#Legacy