Go 语言的实战案例3 SOCKS5 原理 | 豆包MarsCode AI刷题

70 阅读3分钟

image.png 借用一下老师视频里面用到的SOCKS5 原理图 结合自己的理解和课程内容记录了以下笔记:

SOCKS5的工作流程可以分为三个主要阶段:协商阶段发送请求阶段数据传输阶段。基于图中的流程分步骤详细说明每个阶段的操作:

1. 协商阶段

在这个阶段,客户端与SOCKS5代理服务器建立初始连接,并协商代理的使用方式和认证方法。

1.1 客户端发送协商请求
客户端向SOCKS5代理服务器发送支持的认证方式列表,比如“无认证”或“用户名密码认证”。这一步的目的是让代理服务器了解客户端的能力和需求。

1.2 代理服务器返回协商结果
代理服务器选择一种支持的认证方式,并返回给客户端。如果双方协商成功,进入下一步;否则,连接被终止。

2. 发送请求阶段

这一阶段的任务是让客户端告诉代理服务器目标地址和需要执行的操作(如连接目标服务器)。

2.1 客户端发送请求
客户端通过代理服务器发送请求报文,内容包括目标服务器的地址(IP或域名)、目标端口号,以及请求的操作类型(如TCP连接或UDP转发)。

2.2 代理服务器尝试连接目标主机
SOCKS5代理服务器根据客户端提供的目标地址和端口,向目标主机建立一个TCP连接。

2.3 代理服务器返回状态
如果代理服务器成功与目标主机建立连接,它会将状态码返回给客户端,表示连接成功;如果失败,则返回错误信息。

3. 数据传输阶段

在这一阶段,客户端与目标主机之间的数据传输通过代理服务器完成。

3.1 客户端发送数据
客户端通过代理服务器向目标主机发送数据,代理服务器将数据转发到目标主机。

3.2 目标主机返回响应
目标主机处理数据后,将响应发送回代理服务器。

3.3 代理服务器返回结果
代理服务器将目标主机的响应数据转发给客户端,完成一次完整的请求-响应流程。

SOCKS5的典型应用场景

  1. 翻墙和隐私保护:许多人使用SOCKS5代理绕过网络限制访问受限内容,同时隐藏真实IP地址以保护隐私。
  2. 游戏加速:在跨境游戏中,SOCKS5代理可以降低网络延迟,通过优化数据包路径提供更流畅的游戏体验。
  3. 下载与文件传输:SOCKS5支持大文件传输,并通过分流和优化传输路径提高效率。
  4. 公司网络安全:企业可以通过SOCKS5代理统一管理员工的网络访问,确保数据安全并控制流量。