2024年5月27日发(作者:)

1. SOCKS5

1.1 简介

SOCKS5大家肯定很熟悉,是我们常用的代理协议的一种。它是Socks协议的第五版,

相对于第四版增加了对身份验证,UDP,IPV6的支持。

一般的代理协议(比如Http代理)都是工作在应用层的,功能单一。而Socks代理协

议旨在提供一种通用的代理服务,所以工作在应用层和传输层之间,只是传递传输层网络数

据包(TCP/UDP),对于应用层的协议并不关心。

1.2 SOCKS5中的方法

SOCKS5在使用时是典型的CS模式的。SOCKS5服务可以分成两大功能,身份认证和

代理服务。每个功能又支持不定的多种方法(Method)。

身份认证常用的方法是不需认证(No Authentication Required)和用户名/密码认证

(Username/Password),多数应用软件包括我们监控CU都只支持这两种方法。

代理服务的模式有连接(Connect),绑定(Bind)和UDP穿透(UDP Associate)。OSP

通过代理连接服务器的时候,是用的连接模式。通过代理服务器看码流的时候用的是UDP

穿透模式。本案例只介绍一下UDP穿透模式的过程。

1.3 信令

SOCKS5的信令都是按位解释的。一般的信令表示如下:

+----+----------+----------+

|VER | NMETHODS | METHODS |

+----+----------+----------+

| 1 | 1 | 1 to 255 |

+----+----------+----------+

第一行是信令中该位置表示的含义。第二行是长度。

2. UDP穿透

UDP穿透(UDP Associate)是SOCKS5新加入的功能。

2.1 流程

图表 1 UDP 穿透过程

流程如上图。下面具体讲各个交互信令。

2.2 连接和认证

客户端TCP连接SOCKS5代理服务器的服务端口,并完成认证过程。不详述。

2.3 UDP穿透请求