SOCKS5

SOCKS5是一种网络代理协议,主要用于在客户端和服务器之间传输网络数据。它是SOCKS协议的第五个版本,提供了更多的功能和更高的安全性。以下是关于SOCKS5的详细介绍:

功能和特点

  • 代理机制:SOCKS5在客户端和代理服务器之间建立连接,所有的数据包通过代理服务器转发,从而隐藏了客户端的真实IP地址。
  • 协议支持:SOCKS5支持TCP(传输控制协议)和UDP(用户数据报协议),这使得它可以处理更多类型的网络流量,比如实时通信、在线游戏和视频流。
  • 身份验证:SOCKS5支持多种身份验证方法,包括无认证、用户名/密码认证等,增强了安全性。
  • 数据包传输:SOCKS5能够传输任何类型的数据包,不仅限于HTTP协议,因此适用于多种应用场景,比如电子邮件、FTP、P2P等。

工作原理

  • 客户端请求:客户端向SOCKS5代理服务器发送连接请求,包括目标服务器的IP地址和端口号。
  • 身份验证:根据配置,代理服务器可能要求客户端进行身份验证。
  • 代理连接:代理服务器与目标服务器建立连接,之后客户端的所有数据都会通过代理服务器转发给目标服务器,返回的数据也会通过代理服务器转发给客户端。

使用场景

  • 突破防火墙:SOCKS5可以用来绕过防火墙和地域限制,访问被屏蔽的网站和服务。
  • 隐私保护:通过隐藏客户端的真实IP地址,SOCKS5可以增强用户的隐私和匿名性。
  • 多协议支持:由于支持TCP和UDP,SOCKS5适用于多种网络应用,包括浏览网页、在线游戏、视频流、即时通讯等。

在浏览器中配置SOCKS5代理

  • 打开浏览器的设置页面。
  • 找到网络设置或代理设置部分。
  • 输入SOCKS5代理的IP地址和端口号。
  • 如果需要身份验证,输入用户名和密码。

总结

SOCKS5是一种功能强大、灵活性高的代理协议,适用于多种网络应用和场景。它提供了隐藏IP地址、支持多种协议和增强安全性的功能,使得用户可以更高效地进行网络代理操作。在工具如Clash for Windows中,SOCKS5代理可以与其他代理协议和规则结合使用,提供更加灵活和高效的网络代理解决方案。

与 HTTP 代理的区别

两者常被拿来比较,关键差异在这几点:

对比项 SOCKS5 HTTP 代理
工作层级 会话层,不关心内容 应用层,解析 HTTP 报文
支持协议 TCPUDP 均可 主要是 HTTP/HTTPS
数据处理 原样转发,不改包 可能改写请求头
适用场景 游戏、即时通讯、任意流量 网页浏览

简单说,SOCKS5 是「不管你发什么我都转发」,HTTP 代理是「我只懂 HTTP 并可能改它」。需要代理非 HTTP 流量时,SOCKS5 是更通用的选择。

需要留意的边界

  • SOCKS5 本身不加密 —— 它只负责转发,客户端到代理之间的链路是明文的。需要加密时应搭配加密协议,或仅在可信网络内使用
  • UDP 支持要看服务端 —— 协议支持不代表服务端一定转发 UDP,游戏与语音类应用要单独验证
  • 认证方式有限 —— 支持无认证与用户名密码认证,强度低于现代加密协议

因此在公网环境里,裸跑 SOCKS5 并不安全。它更适合作为内网跳板,或作为其他加密协议的承载方式。

在 Clash 中的角色

Clash for Windows 里,SOCKS5 有两个身份:

  1. 入站方式 —— 客户端对外提供 SOCKS5 端口,其他程序连进来走它的规则
  2. 出站协议 —— 作为一种节点类型,把流量发往远端 SOCKS5 服务器

作为入站时,它的地址通常是 127.0.0.1 加一个端口,这也是很多程序手动指定代理时填的地址。作为出站时,则取决于你的节点来源,可参考机场推荐

配置相关的问题可在常见问题中查找。