Skip to content

SOCKS 全称socket secure,是一种网络传输协议,主要用于客户端与外网服务器之间通讯的中间传递。在OSI模型中,SOCKS是会话层的协议,位于表示层与传输层之间,最新协议是SOCKS5。

SOCKS5的特点

  1. SOCKS5相比于SOCKS4,加入了UDP协议支持,在框架上加入了强认证功能,并且地址信息也加入了域名和IPV6 的支持。
  2. SOCKS5服务器在将通讯请求发送给真正服务器的过程中,对于请求数据包本身不加任何改变,只是传递数据包,而不关心是何种应用协议,所以SOCKS代理服务器比应用层代理服务器更快。
  3. 与VPN(虚拟专用网络)相比,SOCKS5可以代理应用层的某些应用,而不是代理全局网络,而VPN控制的是你电脑的整个网络,只要需要连接到互联网的流量都会经过VPN。

SOCKS4和SOCKS5区别

SOCKS4和SOCKS5是两种常用的网络代理协议,它们在功能、性能和应用场景上存在一些关键的区别。以下是对这两种协议区别的详细解析:

  1. 支持的协议类型

SOCKS4:只支持TCP协议(传输控制协议)。这意味着SOCKS4代理只能用于基于TCP连接的网络应用,对于需要在UDP协议上通信的应用(如在线游戏、语音通话等)则无法支持。

SOCKS5:不仅支持TCP协议,还支持UDP协议(用户数据包协议)。这使得SOCKS5代理更加灵活,能够适用于更广泛的网络应用场景,包括那些需要UDP协议的应用。

  1. 身份验证机制

SOCKS4:SOCKS4代理在建立连接时,只支持简单的用户名/密码身份验证方式,且这种身份验证方式通常不是强制性的。

SOCKS5:SOCKS5代理提供了更丰富的身份验证选项,包括无身份验证、用户名/密码身份验证以及更高级的认证机制(如GSS-API等)。这种灵活的身份验证机制增强了代理服务的安全性,允许用户根据实际需求进行配置。

  1. 域名解析方式

SOCKS4:SOCKS4代理不支持域名解析,只能处理IP地址。这意味着在使用SOCKS4代理时,如果目标地址是域名,则需要在客户端先进行域名解析,然后将解析得到的IP地址发送给代理服务器。

SOCKS5:SOCKS5代理支持服务器端域名解析(Domain Name System Resolution on the SOCKS Server),即代理服务器可以处理域名解析请求,将域名转换为IP地址。这种方式可以减少客户端的负担,并提高连接的效率和安全性。

  1. 性能与扩展性

SOCKS4:由于其功能和协议的限制,SOCKS4代理在性能上可能不如SOCKS5代理。特别是在处理复杂网络操作和大量数据时,SOCKS4代理可能会显得力不从心。

SOCKS5:SOCKS5代理在性能上更加优越,支持更多的功能和扩展性。例如,它可以更好地处理网络延迟、丢包等问题,并提供更稳定的网络连接。此外,SOCKS5代理还支持IPv6协议,使其在面对未来互联网发展的新需求时具有更好的适应性。

Socks5代理配置:

yaml
server:
  tcp:
    enable: true
    # tcp 代理类型,none 为内网穿透,proxy 为 tcp 代理,httpproxy 为 HTTP 代理, socks5 为 socks5 代理
    type: "socks5"
    host: "0.0.0.0"
    # type proxy 为 socket 代理,多个 port 则绑定多个本地端口
    port: 3210

  acceptors: -1
  selectors: -1
  # idle_timeout 请求等待时间
  timeout: 60000
  send_server_version: false
  # 上传文件的最大 body 大小
  max_form_content_size: 102440404
  # true 则 keep-alive,false 则 Connection: close
  persistent_connections: true
  # socket bind backlog 队列长度,默认 50
  accept_queue_size: 256
  tcp_nodelay: true
  # 静态文件 max-age time,单位:秒
  cache_time: 86400
  request_log_pattern: "%{client}a - %u \"%r\" %s %O %{ms}T %{Host}i \"%{Referer}i\" \"%{User-Agent}i\""

threadPool:
  max: 200
  min: 5
  idleTimeout: 300000

外部可通过:socks5://ip:3210 代理上网。

火狐浏览器代理配置

设置 》 网络设置 》手动配置代理 》 socks5 代理

在 socks 主机 输入 ip 地址,端口号输入 3210,确定后即可采用代理模式上网。

proxyserver-socks5-firefox-setting

操作系统代理配置

Mac OSX

proxyserver-socks5-mac-setting

参考来源