SOCKS 全称socket secure,是一种网络传输协议,主要用于客户端与外网服务器之间通讯的中间传递。在OSI模型中,SOCKS是会话层的协议,位于表示层与传输层之间,最新协议是SOCKS5。
SOCKS5的特点
- SOCKS5相比于SOCKS4,加入了UDP协议支持,在框架上加入了强认证功能,并且地址信息也加入了域名和IPV6 的支持。
- SOCKS5服务器在将通讯请求发送给真正服务器的过程中,对于请求数据包本身不加任何改变,只是传递数据包,而不关心是何种应用协议,所以SOCKS代理服务器比应用层代理服务器更快。
- 与VPN(虚拟专用网络)相比,SOCKS5可以代理应用层的某些应用,而不是代理全局网络,而VPN控制的是你电脑的整个网络,只要需要连接到互联网的流量都会经过VPN。
SOCKS4和SOCKS5区别
SOCKS4和SOCKS5是两种常用的网络代理协议,它们在功能、性能和应用场景上存在一些关键的区别。以下是对这两种协议区别的详细解析:
- 支持的协议类型
SOCKS4:只支持TCP协议(传输控制协议)。这意味着SOCKS4代理只能用于基于TCP连接的网络应用,对于需要在UDP协议上通信的应用(如在线游戏、语音通话等)则无法支持。
SOCKS5:不仅支持TCP协议,还支持UDP协议(用户数据包协议)。这使得SOCKS5代理更加灵活,能够适用于更广泛的网络应用场景,包括那些需要UDP协议的应用。
- 身份验证机制
SOCKS4:SOCKS4代理在建立连接时,只支持简单的用户名/密码身份验证方式,且这种身份验证方式通常不是强制性的。
SOCKS5:SOCKS5代理提供了更丰富的身份验证选项,包括无身份验证、用户名/密码身份验证以及更高级的认证机制(如GSS-API等)。这种灵活的身份验证机制增强了代理服务的安全性,允许用户根据实际需求进行配置。
- 域名解析方式
SOCKS4:SOCKS4代理不支持域名解析,只能处理IP地址。这意味着在使用SOCKS4代理时,如果目标地址是域名,则需要在客户端先进行域名解析,然后将解析得到的IP地址发送给代理服务器。
SOCKS5:SOCKS5代理支持服务器端域名解析(Domain Name System Resolution on the SOCKS Server),即代理服务器可以处理域名解析请求,将域名转换为IP地址。这种方式可以减少客户端的负担,并提高连接的效率和安全性。
- 性能与扩展性
SOCKS4:由于其功能和协议的限制,SOCKS4代理在性能上可能不如SOCKS5代理。特别是在处理复杂网络操作和大量数据时,SOCKS4代理可能会显得力不从心。
SOCKS5:SOCKS5代理在性能上更加优越,支持更多的功能和扩展性。例如,它可以更好地处理网络延迟、丢包等问题,并提供更稳定的网络连接。此外,SOCKS5代理还支持IPv6协议,使其在面对未来互联网发展的新需求时具有更好的适应性。
Socks5代理配置:
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,确定后即可采用代理模式上网。
操作系统代理配置
Mac OSX