SOCKS5 的协议特点与 FlClash 配置说明
SOCKS5 是什么
SOCKS5 是一种代理协议。客户端与服务器先协商认证方法,再通过请求表达要执行的操作。协议中的版本标识是 0x05。
截至 2026-11-08,其规范出处为 RFC 1928,发布于 1996 年 3 月,标准状态为 Proposed Standard。协议定义了认证协商、请求命令和地址格式,但没有把流量加密设为自身提供的能力。
因此,看到 SOCKS5 名称,不能直接判断连接是否加密;看到用户名和密码,也不能据此认定传输内容受到加密保护。
认证、命令和地址各管什么
客户端会提交可用的认证方法,由服务器选定其中一种。RFC 列出的方式包括免认证、GSSAPI,以及用户名与密码认证。规范对合规实现的要求是:必须具备 GSSAPI 支持,并应具备用户名与密码认证能力。这不代表每次连接都会使用全部方法。
协议的三种命令分别是:
| 命令 | 标识值 |
|---|---|
| CONNECT | 0x01 |
| BIND | 0x02 |
| UDP ASSOCIATE | 0x03 |
地址也有单独的类型标识:IPv4 对应 0x01,域名对应 0x03,IPv6 对应 0x04。域名格式用前置长度标记说明名称长度。SOCKS5 的 UDP 数据报还会携带目标地址信息。
常见使用场景怎样区分
理解 SOCKS5 时,可以从认证、地址和传输需求分别看。
需要凭据的连接,涉及用户名与密码认证;以域名作为目标时,涉及域名地址格式;涉及 UDP 转发时,则要关注 UDP ASSOCIATE 命令及数据报头。协议定义这些能力,并不等于某个客户端已提供对应操作入口。
如果还不清楚两种传输协议的区别,可阅读 TCP 与 UDP 的特点及代理排查思路。
在 FlClash 里怎样选用 SOCKS5
FlClash 通常通过 mihomo 内核处理协议配置。截至 2026-11-08,FlClash 的 README 没有逐项列出代理协议,SOCKS5 字段应参照 mihomo 的 SOCKS 配置文档。
文档示例用 type: socks5 标识类型,并出现以下字段:
| 字段 | 对照时需要注意的地方 |
|---|---|
username、password | 示例将这两项写成注释 |
tls、udp | 示例也将这两项写成注释 |
fingerprint、ip-version | 页面列有字段,缺少逐项解释 |
skip-cert-verify、name-cert-verify | 不能仅凭名称推导填写方法 |
这些字段的出现,不足以确定它们在 FlClash 中对应哪个按钮或输入框。添加、编辑单个 SOCKS5 配置的具体界面路径,官方没有说明。客户端基础操作可结合 FlClash 安装与配置导入教程 阅读。
使用前要分清的边界
SOCKS5 的安全属性还取决于认证和封装方式。RFC 将相关细节交由其他文档规定,不能从 SOCKS5 名称推导 TLS 行为。
Shadowsocks 的项目介绍提到,其设计与 SOCKS5 存在松散关联。这种关联不能作为两者字段通用的依据,具体差异可参阅 Shadowsocks 协议与配置说明。
截至 2026-11-08,FlClash 最新发布是 v0.9.3,发布于 2026-11-04;以上字段依据截至 2026-11-08 查看的 mihomo 文档。项目更新后,应重新核对 FlClash 发布页 与协议文档。
第三方整理,与项目方无关。