系统运行正常•IP池状态
Coronium Mobile Proxies
代理软件 · SOCKS5 · 2026 · 阅读约 14 分钟

SOCKS5 代理是什么?2026 年原理、与 HTTP 代理的区别及配置教程

本文依据一手资料拆解 SOCKS5:握手如何进行,服务器和端口怎么填,socks5 与 socks5h 有何不同,以及为什么带密码的代理在 Telegram 里能用、在 Chrome 里却无法认证。文末附 Telegram、浏览器、Windows、macOS、Android、iPhone 和 Linux 的配置说明。

Coronium 技术团队
发布于 2026年9月26日
核实于 2026-09-25

要点速览

  • SOCKS5 是 RFC 1928 定义的代理协议。它不解析 HTTP,只在你的程序和目标服务器之间转发 TCP 连接(服务器支持时也可转发 UDP 数据报)。因此不仅浏览器能用,Telegram、各类客户端、脚本和游戏也能走 SOCKS5。
  • HTTP 代理理解 HTTP 协议,HTTPS 则通过 CONNECT 方法建立隧道。SOCKS5 工作在更低一层,对上层应用协议一无所知。
  • SOCKS5 本身不加密任何内容。按 RFC 1929,用户名和密码以明文传输。真正受保护的只有连接内部自带加密的部分,例如 HTTPS 网站的 TLS。
  • socks5 和 socks5h 的区别在于由谁解析域名。使用 socks5h 时,DNS 查询由代理完成,不会发往你所用网络运营商的 DNS 服务器。但到 SOCKS5 代理的通道本身不加密,所以发给代理的请求中的网站域名(以及 HTTPS 的 SNI 字段)在技术上仍可被网络运营商看到。
  • 支持 SOCKS5 用户名密码认证的有 Telegram、Firefox 配合 FoxyProxy、curl 以及各类代理客户端。Chrome 和其他 Chromium 内核浏览器不支持 SOCKS5 认证,同一个代理在这些浏览器里要按 HTTP 协议添加。
  • Coronium 移动代理以 host:port:login:pass 格式提供,同时支持 HTTP 和 SOCKS5。

SOCKS5 代理是什么:一句话说清

SOCKS5 代理是一台中间服务器,它以自己的名义去连接网站和服务。你的程序告诉代理“帮我连到某个地址的某个端口”,代理建立连接后,就在两端之间原样转发数据。网站看到的是代理的 IP,而不是你的 IP。

它和普通网页代理最大的不同,在于不绑定任何具体的应用层协议。RFC 1928 把 SOCKS 描述为位于应用层和传输层之间的一层:代理不解析内容,只处理 TCP 连接,服务器支持时也处理 UDP。所以几乎所有 TCP 流量都能交给 SOCKS5:浏览器、即时通讯软件、邮件客户端、SSH、采集脚本或 BT 客户端。

这个协议历史不短:RFC 1928 发布于 1996 年 3 月。如今 curl、Telegram、Firefox、Chrome(不支持认证)、Windows、macOS、Android 和 iOS 上的大多数代理客户端、指纹浏览器以及各类采集库都支持它。一个常见的例子:ssh -D 命令会在本地起一个 SOCKS5 代理,把流量通过 SSH 服务器转发出去。

SOCKS5 如何工作:握手、认证与命令

与 SOCKS5 服务器建立连接分三步。第一步,客户端告知协议版本(5)以及自己支持的认证方式列表,服务器从中选定一种。第二步,按选定的方式完成认证。第三步,客户端才发送请求:执行哪个命令、连接哪个地址。服务器返回结果码后,开始传输数据。

RFC 1928 中的认证方式用一个字节表示:0x00 为无需认证,0x01 为 GSSAPI,0x02 为用户名和密码,0xFF 表示客户端提供的方式都不可接受。按标准,兼容实现必须支持 GSSAPI,并建议支持用户名密码。商业代理在实际中通常使用两种方式之一:按 IP 白名单免密接入,或用户名密码认证。

用户名密码认证单独定义在 RFC 1929 中。客户端发送用户名和密码,每项长度为 1 到 255 字节,服务器返回状态:0x00 表示成功,其他任何状态下服务器都必须关闭连接。GSSAPI 方式(RFC 1961)面向企业认证体系(例如 Kerberos V5),还可以在完整性和机密性层面额外保护流量,但在商业代理服务中很少见。

命令共有三个:CONNECT(0x01),发起出站 TCP 连接,几乎所有程序都用它;BIND(0x02),接受来自服务器的入站连接,RFC 1928 以 FTP 为例,数据可能走单独的连接;UDP ASSOCIATE(0x03),通过代理转发 UDP 数据报。UDP 关联在控制用的 TCP 连接保持期间有效,而具体服务器是否支持 UDP ASSOCIATE 并无保证,需要向服务商确认。

目标地址有三种传递方式:IPv4 地址(类型 0x01)、域名(0x03)或 IPv6 地址(0x04)。能够把域名而不是 IP 交给代理,正是远程 DNS 和下文 socks5h 模式的基础。

RFC 1928 与 RFC 1929 中的 SOCKS5 代码

认证方式

0x00 无需认证

0x01 GSSAPI

0x02 用户名和密码

0xFF 无可接受的方式

命令

0x01 CONNECT

0x02 BIND

0x03 UDP ASSOCIATE

地址类型

0x01 IPv4

0x03 域名

0x04 IPv6

资料来源: RFC 1928、 RFC 1929、 RFC 1961。

SOCKS4、SOCKS4a 与 SOCKS5 有什么区别

SOCKS4 是上一代协议。它只支持 TCP、只支持 IPv4,也没有完整的认证机制。客户端必须以 IPv4 地址的形式提交目标,也就是说 DNS 查询总是在你的设备上完成。SOCKS4a 扩展允许把域名交给代理,把解析移到服务器端,但并没有增加认证,也仍然无法直接传递 IPv6 地址(除非代理自己把域名解析成 IPv6)。

RFC 1928 明确列出了第五版相对第四版新增的内容:UDP 支持、强认证机制,以及域名和 IPv6 寻址。所以只要服务商给出选择,基本都选 SOCKS5。SOCKS4 只在老旧软件不认第五版时才有意义。

一个实际中容易踩的坑:有些程序里字段只写“SOCKS”,看不出用的是哪个版本。例如在 Chrome 中通过 --proxy-server 参数配置时,socks=host:port 这种没有明确协议头的写法会被当作 SOCKS4。代理连不上时,先确认选的是第 5 版。

SOCKS5 还是 HTTP 代理:怎么选

HTTP 代理理解 HTTP 协议。对普通 http 地址,它会完整接收请求并代为发给网站。对 HTTPS,浏览器使用 CONNECT 方法:请求代理打开到目标主机和端口的隧道,收到 2xx 响应后,按 RFC 9110 的说法,代理就成为一个“盲中继”。此时 HTTPS 内容由 TLS 加密,代理看不到。

SOCKS5 从设计上就不绑定 HTTP。它转发任意 TCP 流,服务器支持时还能转发 UDP。因此不走 HTTP 的程序通常选 SOCKS5:即时通讯软件、邮件客户端、SSH、部分游戏,以及设置里根本没有 HTTP 代理选项的软件。

对浏览器和网页采集来说,两者实际差别不大:HTTPS 流量都走隧道,网站看到的 IP 也一样。选择更多取决于兼容性。Chromium 内核浏览器无法对 SOCKS5 做认证,所以带密码的代理在其中要按 HTTP 添加。Telegram 则相反,既支持 SOCKS5,也支持自家的 MTProto 代理协议。

安全方面要说实话:无论 HTTP 代理还是 SOCKS5,都不会加密你和代理之间的通道。RFC 1929 明确写道,密码以明文传输,在可能被截获流量的环境中不建议使用这种方式。受保护的只有内部本身已加密的部分:HTTPS 网站、自带加密的通讯软件。如果需要加密到代理的整条通道,应使用 VPN、SSH 隧道或基于 TLS 的代理协议。

SOCKS5 不是 VPN。它只为经过它的程序更换 IP,并不加密流量。代理背后不同 IP 类型的差异,可参阅 移动、住宅与机房代理对比(英文)。CONNECT 方法的出处: RFC 9110 第 9.3.6 节。

socks5 与 socks5h:DNS 在哪里解析,泄露从何而来

连接网站之前,需要先把域名解析成 IP 地址。SOCKS5 支持两种做法:客户端自己解析域名,把得到的 IP 交给代理;或者把域名直接交给代理,由服务器完成 DNS 查询。

在 curl 中,这两种模式用不同的协议头区分。使用 socks5:// 时,由你设备上的 curl 解析域名;使用 socks5h:// 时,域名发给代理,本地不做解析。--socks5 和 --socks5-hostname 两个参数的作用相同。许多其他工具(例如一些 Python 库)也认 socks5h 写法,但请以所用软件的文档为准。

为什么这很重要:本地解析时,DNS 查询会发往你的运营商或公共 DNS。网站看到的 IP 虽然已经换了,但通过 DNS 仍能看出你访问了哪些域名、来自哪个 IP。这就是所谓的 DNS 泄露。

Chrome 使用 SOCKS5 时总是把 DNS 交给代理服务器,而且无法更改。Firefox 中对应的是“使用 SOCKS v5 时代理 DNS 查询”(Proxy DNS when using SOCKS v5)这一勾选项。从 Firefox 128 起,SOCKS5 下该项默认开启,但在旧配置文件或手动改过设置的情况下,最好检查一下。

用 curl 验证

# 由本机解析 DNS
curl -x socks5://login:pass@host:port https://example.com

# 由代理解析 DNS(无 DNS 泄露)
curl -x socks5h://login:pass@host:port https://example.com

资料来源: Everything curl: SOCKS、 Chromium 代理文档。

SOCKS5 服务器和端口:如何读懂代理参数

服务商提供 SOCKS5 时,你会拿到四个值:服务器(IP 或域名)、端口、用户名和密码。如果是按 IP 白名单授权,就没有用户名和密码,只剩服务器和端口。按 RFC 1928,SOCKS 的默认端口是 1080,但商业代理通常使用自己的端口,所以请始终以服务商给出的端口为准。

常见写法有三种。第一种是 host:port,例如 203.0.113.10:1080,即无密码代理。第二种是 host:port:login:pass,批量交付代理时常用这种格式,需要拆成四个配置字段分别填写。第三种是 URI 形式:socks5://login:pass@host:port 或 socks5h://login:pass@host:port,curl、很多库和部分客户端可以直接识别。也有服务商使用 login:pass@host:port 或 login:pass:host:port 的顺序,请对照其文档。

如果用户名或密码中包含 @、: 或 / 等字符,在 URI 中必须进行编码(例如 @ 写成 %40),否则程序会解析错误。curl 文档还提醒:在命令行中传入的用户名和密码,可能会被同一系统上的其他用户短暂看到,因此这类信息最好从文件读取。

如果代理完全连不上,先检查端口是否开放、服务器是否有响应。可以用在线代理检测工具,再结合 IP 查询页面确认出口地址。

检测代理: 在线代理检测工具(英文)、 查询我的 IP。

SOCKS5 在哪些地方能用,哪些地方不行

Telegram 在其应用中支持带用户名密码的 SOCKS5,也支持自家的 MTProto 代理协议。SOCKS5 可以用 t.me/socks?server=...&port=...&user=...&pass=... 格式的链接添加,其中用户名和密码为可选项。MTProto 代理始终需要服务器、端口和密钥(secret),据 Telegram 说明,此类代理的运营者可以向你展示一个赞助频道,但看不到你的聊天内容。

Chrome、Edge、Opera 等 Chromium 内核浏览器支持 SOCKS4 和 SOCKS5,但 Chromium 文档明确写道:Chrome 的 SOCKSv5 不支持任何认证方式。此外,Chrome 中 SOCKS5 只用于 TCP,不代理 UDP。带密码的代理在这些浏览器中要按 HTTP 添加。Firefox 的设置窗口支持 SOCKS 4 和 SOCKS 5,但没有用户名密码字段,带密码的 SOCKS5 需通过 FoxyProxy 扩展实现。

Windows 系统设置中没有 SOCKS 的用户名密码字段。旧版“Internet 选项”窗口(局域网设置 → 高级)里有单独的 Socks 字段,该窗口中的其他字段会被 Chromium 视为 HTTP 代理,而据 Chromium 文档,它不会使用系统设置中的凭据。另外,很多程序本来就忽略系统代理。在电脑上使用带密码的 SOCKS5,一般借助 Proxifier 这类强制代理工具或代理客户端:它们接受带认证的代理,并把选定的应用导向该代理。

在 Android 和 iPhone 上,Wi-Fi 设置中的手动代理按 HTTP 工作,而且只对该网络生效。要让整部手机(包括移动数据)走 SOCKS5,需要使用会创建本地 VPN 隧道的应用。在 Linux 上,可通过 curl、环境变量和系统客户端使用 SOCKS5;在路由器上配置代理,则能让局域网内的所有设备同时使用。

资料来源: Telegram:代理链接、 Telegram:MTProxy、 Chromium proxy.md。

免费 SOCKS5 代理和代理列表:实话说风险

搜索“免费 socks5 代理”“socks5 代理列表”,会找到大量公开代理清单网站。这些往往是因配置错误而意外开放的服务器,或由身份不明的人专门搭建的服务器。谁是所有者、记录了什么日志、能存活多久,你都无从知晓。

记住 SOCKS5 不加密流量。免费代理的所有者能看到你连接了哪些地址,以及所有未加密的内容:HTTP 页面、老旧协议的数据。如果免费代理需要用户名和密码,其所有者会以明文拿到它们。绝对不要通过这类代理输入银行、邮箱和工作账号的信息。

第二个问题是 IP 信誉。公开列表中的地址被很多人同时使用,其中不乏用于垃圾信息和撞库的,因此这些 IP 经常进入黑名单。社交平台、电商平台和搜索引擎会用验证码和封禁来应对,用于账号运营时,这样的地址往往还不如你自己的家庭宽带。

免费列表顶多适合一次性测试:确认你的 SOCKS5 连接本身能否跑通。凡是涉及账号、资金和个人数据的场景,都需要所有者明确、带认证、条款清晰的代理。

SOCKS4、SOCKS5、HTTP 代理与 VPN 对比

对比项SOCKS4 / 4aSOCKS5HTTP / HTTPS(CONNECT)VPN
工作层级应用层与传输层之间(TCP)应用层与传输层之间(TCP、UDP)应用层(HTTP),HTTPS 经 CONNECT 隧道网络层:整台设备或选定应用的全部流量
可承载协议任意 TCP任意 TCP,服务器支持时可承载 UDPHTTP;代理允许时,经 CONNECT 可承载任意 TCP任意 IP 流量
认证仅有标识字段,无密码无认证、用户名密码(RFC 1929)、GSSAPI(RFC 1961)Basic、Digest 等 HTTP 认证方案取决于 VPN 协议
到代理的通道是否加密否否(少见的带保护 GSSAPI 除外)否(HTTPS 代理例外:到代理的这段走 TLS)通常是
DNS 经代理解析否,SOCKS4a 可以可以,前提是客户端提交域名(socks5h)可以,代理自行解析请求中的域名取决于 VPN 设置
IPv6不支持支持支持取决于服务
典型用途老旧软件Telegram、各类客户端、脚本、指纹浏览器浏览器、网页采集保护通道、整体接入网络

具体程序或服务实际支持的功能可能少于协议本身允许的范围。资料来源: RFC 1928、 RFC 9110、 Everything curl。

如何配置 SOCKS5 代理:Telegram、浏览器、Windows、手机

无论在哪个平台,需要的都是同样四个值:服务器、端口、用户名和密码。下面简要说明每个平台在哪里填写,并附上详细教程链接。

1

Telegram

Settings → Data and Storage → Proxy Settings → Add Proxy → 类型选 SOCKS5,填写服务器、端口、用户名、密码。Telegram Desktop 的路径是 Settings → Advanced → Connection type,可选 SOCKS5、HTTP 和 MTProto 三种代理类型。菜单名称随应用版本和界面语言而不同。

Telegram 代理设置指南(英文)
2

Chrome、Edge、Opera

无密码的 SOCKS5 可通过 ZeroOmega 或 FoxyProxy 扩展添加。带用户名密码的代理请在扩展中按 HTTP 添加:Chromium 不支持 SOCKS5 认证。

浏览器代理设置
3

Firefox

Settings → Network Settings → Manual proxy configuration,填写 SOCKS Host、端口,选择 SOCKS v5,并勾选通过代理解析 DNS。带用户名密码的 SOCKS5 请安装 FoxyProxy。

Firefox 与 FoxyProxy
4

Windows

Windows 系统设置(设置 > 网络和 Internet > 代理)中没有 SOCKS 的用户名密码字段。带密码的 SOCKS5 请使用强制代理工具或代理客户端,并在其中指定哪些程序走代理。

Windows 代理客户端
5

macOS

macOS 网络设置(系统设置 > 网络 > 详细信息 > 代理)中有“SOCKS 代理”一项,可设置密码。但 Chrome 不会读取系统设置中的凭据;按应用代理和分流规则则需要第三方客户端。

Mac 代理设置
6

Android

Wi-Fi 设置中的手动代理按 HTTP 工作,且只对该网络生效。要让整部手机使用带密码的 SOCKS5,需借助创建本地 VPN 隧道的应用。

Android 代理应用
7

iPhone 和 iPad

Wi-Fi 设置中的手动代理按 HTTP 工作,且只对该网络生效。SOCKS5(包括移动数据)需通过 Shadowrocket 这类客户端配置。

Shadowrocket 与 iOS 代理
8

Linux 与 curl

一条命令即可测试:curl -x socks5h://login:pass@host:port https://IP查询网站。程序层面可使用环境变量和系统客户端。

Linux 代理设置
9

路由器

如果局域网内所有设备(包括智能电视和机顶盒)都需要走代理,可在刷了合适固件的路由器上配置。

路由器代理设置
10

任何不支持代理的程序

强制代理工具会拦截选定应用的连接,并通过带认证的 SOCKS5 转发出去。

Proxifier 替代方案

Windows 与 macOS 菜单名称参照官方中文帮助: Microsoft 支持、 Apple 支持。

购买 SOCKS5 代理:重点看什么

各家服务商的协议都一样,所以要比较的不是 SOCKS5 本身,而是它背后的东西:IP、接入条件以及所需功能的支持情况。无论是跨境电商店铺、社媒账号运营、多账号管理还是广告验证,都值得逐条核对。

1

认证方式。需要用户名密码,或绑定你的 IP 白名单。问清楚两种能否同时使用:白名单方便在 Chrome 中使用,用户名密码方便在切换网络时使用。

2

协议。同一个代理同时支持 HTTP 和 SOCKS5,就能兼顾浏览器、Telegram 和各类客户端。如果需要 UDP(语音通话、部分游戏),付款前先确认是否支持 UDP ASSOCIATE。

3

独享还是共享。独享代理只有你一个用户在用这条线路。共享代理的 IP 由很多客户共用,他人的行为会影响地址信誉。

4

IP 类型。机房 IP 便宜且快,但更容易被平台识别。住宅 IP 属于家庭宽带运营商。4G/5G 运营商的移动 IP 通常位于 CGNAT 之后,一个 IP 往往由许多真实用户共享。

5

IP 更换与地区。了解地址如何更换(通过链接、定时),能否选择国家和运营商。

6

测试与条款。长期付费前,先在自己的业务场景下实测:速度、稳定性,以及是否存在 DNS 和 WebRTC 泄露。

Coronium 移动代理以 host:port:login:pass 格式提供,支持 HTTP 和 SOCKS5。 在 Telegram、Firefox(配合 FoxyProxy)、curl 和代理客户端中,按带用户名密码的 SOCKS5 添加;在 Chrome、Edge 和 Opera 中按 HTTP 添加。 出口显示的是真实 4G/5G 运营商的 IP。如果你的业务需要 UDP,请在购买前向客服确认。

常见问题

协议都一样,差别在出口 IP

SOCKS5 只负责传递流量,平台如何看待你,取决于出口 IP。真实运营商的 4G/5G 移动代理,host:port:login:pass 格式,支持 HTTP 和 SOCKS5。