SOCKS5 与 HTTP 代理对比#
| SOCKS5 | HTTP 代理 | |
|---|---|---|
| 承载的协议 | 任何 TCP 协议 | HTTP 和 HTTPS(CONNECT 也能通过隧道承载其他 TCP 协议) |
| 是否理解请求 | 否 | 对于明文 HTTP 则是 |
| DNS 解析 | 在代理端(socks5h)或本地(socks5) | 完整 URL 请求由代理解析;主机名通过 CONNECT 发送 |
| 客户端支持 | 大多数工具;部分工具需要使用库 | 普遍支持 |
socks5 与 socks5h 对比#
在 cURL 和 Python 中,socks5:// 会在本机解析目标主机名,并将 IP 发送给代理;socks5h:// 会发送主机名,由出口进行解析。请使用 socks5h,让 DNS 查询保留在出口所在国家/地区,并避免向本地解析器泄露主机名。
socks5h://USER-cc-us:PASS@res.hodlproxy.com:9001SOCKS5 连接如何建立#
- 问候:客户端连接到代理端口,列出自己支持的认证方式。
- 认证:代理选择其中一种,通常是账号密码(RFC 1929),并校验凭据。
- 连接请求:客户端请求目标地址,可以是主机名(远程 DNS),也可以是自己解析好的 IP。
- 转发:代理从出口 IP 建立 TCP 连接,在两个方向转发字节而不读取内容。
SOCKS5、SOCKS4 与 VPN#
| SOCKS5 | SOCKS4 | VPN | |
|---|---|---|---|
| 认证 | 账号密码 | 无(仅用户 ID) | 密钥或证书 |
| 远程 DNS | 支持(请求中携带主机名) | 仅 SOCKS4a 扩展支持 | 经由隧道 |
| UDP | 协议有定义(UDP ASSOCIATE),但很少提供 | 不支持 | 支持 |
| 作用范围 | 单个应用 | 单个应用 | 整台设备 |
| 加密 | 自身不加密 | 不加密 | 加密 |
在常用工具中使用 SOCKS5#
- cURL:
-x socks5h://user:pass@host:port(h 表示在出口解析 DNS)。 - Python requests:安装
requests[socks],然后在proxies中使用socks5h://URL。 - Firefox:手动配置 SOCKS v5 并勾选通过代理解析 DNS;没有账号密码输入框,请改用 IP 白名单认证。
- Chrome 和 Chromium:
--proxy-server=socks5://host:port只能在无凭据时使用;请改用白名单或扩展程序。 - Telegram:设置 → 代理 → 添加代理 → SOCKS5,填写服务器、端口、用户名和密码。
SOCKS 的惯用端口是 1080,但服务商会自行选择:HodlProxy 在网关上使用 9001,在专用地址上使用 8001。网络和价格见 SOCKS5 代理。
在 HodlProxy 中如何运作#
HodlProxy 网关通过端口 9001 使用 SOCKS5,凭据和用户名参数与 HTTP 相同;专用地址使用端口 8001。不支持 UDP ASSOCIATE 和 BIND:仅支持 TCP。
常见问题#
SOCKS5 比 HTTP 更快吗?
没有可衡量的速度差异。两者都会增加一跳;SOCKS5 的解析工作略少,但网络路径才是主要因素。应根据工具支持和 DNS 行为进行选择,而不是根据速度。
SOCKS5 代理安全吗?
它会让你向代理进行认证,但自身不加密任何内容。通过它使用自带加密的协议(HTTPS、SSH),这些流量会始终端到端加密。
SOCKS5 代理能隐藏我的 IP 吗?
能,对目标网站而言:目标看到的是出口 IP。使用 socks5h 让 DNS 查询也在出口完成;同时请记住,任何代理都无法隐藏浏览器指纹和 Cookie。
SOCKS5 使用哪个端口?
惯例是 1080,实际可以是任何端口。在 HodlProxy,轮换网关为 9001,专用地址为 8001。
应该用 SOCKS5 还是 VPN?
VPN 让整台设备通过一台服务器出网;SOCKS5 只作用于你配置的应用,每个应用都可以有自己的出口、位置和会话。数据采集、多账户管理和自动化通常选择应用级代理。