登录 注册
资讯与帮助文档
使用教程 API文档 SDK示例 IP资讯
如果有任何问题,请联系我们的客服,会有专人为您服务解答。希望九零科技的产品服务能带给您安全便利!

SOCKS5协议握手流程与技术规范

一、协议概述

SOCKS5是工作在OSI会话层的代理协议,标准定义于RFC 1928。核心特点是不解析应用层数据,透明转发任意TCP/UDP流量,支持多种认证方式,协议简洁通用。 完整通信过程分为方法协商、认证、请求响应、数据转发四个阶段,每个阶段都有严格的报文格式规范。

二、完整握手阶段详解

2.1 方法协商阶段

客户端与代理建立TCP连接后,首先发送问候报文,声明协议版本与支持的认证方法列表。

  • 客户端报文:包含版本号(固定为0x05)、支持的认证方法数量、方法列表。 常见认证方法:0x00无认证、0x02用户名密码认证。
  • 服务端响应:选中一种认证方法返回;若无可接受方法,返回0xFF并关闭连接。

2.2 认证阶段

若选择需要认证的方法,进入认证子流程。以最常用的用户名密码认证(RFC 1929)为例:

  • 客户端发送认证报文,包含用户名、密码及对应长度字段;
  • 服务端校验凭据,返回认证结果:0x00代表成功,其他值代表失败。 认证失败通常会直接关闭连接。报文格式不匹配、特殊字符处理不当是常见失败原因。

2.3 请求与响应阶段

认证成功后,客户端发送代理请求,指定目标地址、端口与命令类型。

  • 核心命令类型
    • CONNECT:建立TCP连接,最常用;
    • UDP ASSOCIATE:建立UDP中继,转发UDP数据;
    • BIND:反向连接,用于主动模式FTP等场景。
  • 地址类型:支持IPv4、域名、IPv6三种地址格式。
  • 服务端响应:返回状态码、绑定地址与端口。状态码0x00代表成功,其他值对应不同错误类型。

2.4 数据转发阶段

连接建立成功后,进入透明转发模式。

  • TCP场景:客户端与代理、代理与目标各有一条TCP连接,代理双向原样转发字节流;
  • UDP场景:代理分配UDP中继端口,客户端发送带目标地址头的UDP报文,代理解包转发,响应则反向封装返回。

三、核心技术特性

3.1 协议通用性

支持任意基于TCP/UDP的应用层协议,适用范围远超HTTP代理,可承载网页、文件传输、游戏、实时通信等各类流量。

3.2 透明转发特性

不修改应用层数据,不引入代理头部标识,匿名性优于应用层代理,不易被目标平台识别。

3.3 双协议支持

原生支持TCP和UDP两种传输层协议,是HTTP代理不具备的能力,适配游戏、VoIP、DNS查询等UDP场景。

四、服务选型评估维度

  1. 协议合规性:是否完整支持标准命令,错误码返回准确,认证处理规范;
  2. UDP支持能力:UDP中继的稳定性、丢包率、并发能力,涉及UDP业务需重点考察;
  3. 并发性能:单节点并发连接数、握手处理速度、数据吞吐量;
  4. 安全性:是否支持TLS封装、日志策略、出口IP匿名性。

五、常见故障排查

  1. 协商阶段返回0xFF/直接断连:客户端支持的认证方法与服务端要求不匹配,或协议版本错误;
  2. 认证失败:凭据错误,或用户名密码长度字段处理异常;
  3. CONNECT失败:目标不可达、端口被限制,或网络不通;
  4. UDP不通:代理未实现UDP ASSOCIATE,或防火墙拦截中继端口。
相关产品
住宅静态IP 家庭拨号IP 独享代理IP 静态云IP 极速L2TP
上一篇:HTTP代理CONNECT隧道技术原理 下一篇:代理IP TCP连接处理机制:套接字层面技术解析