SOCKS5 和 HTTP 代理怎么选:浏览器、终端和整机线路分别走哪一种
很多人把「代理」当成一个端口。浏览器的设置里常常分 HTTP、HTTPS 和 SOCKS。命令行工具则要你写明是 socks5 还是 http。填错协议时,端口即使开放,握手也会立刻失败,报连接被拒绝或代理返回了无法识别的响应。这和密码错误、节点选错不是同一层。
刺猬VPN的客户端默认走系统级线路,用的是虚拟网卡,而不是让你在每个软件里填一个 HTTP 代理。需要单独给终端指定代理时,才要分清 SOCKS5 和 HTTP。下面讲的是协议差别和常见填法,不提供绕过他人权限或扫描端口的步骤。
三种用法不要混成一个端口
SOCKS5 不理解网页内容,只负责把连接交到另一端。HTTP 代理看得懂网页请求,所以有的程序只实现了其中一种。客户端已经用虚拟网卡接管时,再给浏览器填一个空的 HTTP 代理,反而会让流量走错地方。
| 对比项 | HTTP 代理 | SOCKS5 | 系统级线路 |
|---|---|---|---|
| 工作层 | 主要转发网页请求 | 转发传输层连接 | 整机经过虚拟网卡 |
| 浏览器 | 设置里常见 | 部分浏览器支持 | 不用逐个填写 |
| 终端 | 要写明 http | 要写明 socks5 | 多数程序自动走 |
| 域名解析 | 常由代理代查 | 要看是本地查还是远端查 | 跟客户端的解析设置 |
| 认证 | 可以带用户名密码 | 也可以带认证 | 用客户端账号 |
| 填错的表现 | 收到无法解析的响应 | 握手直接失败 | 与端口无关 |
按程序选对填法
- 第一步:先把线路准备好。安装刺猬VPN并登录,自定义用户名和密码即可,不需要邮箱和手机号。免费节点永久免费、不限流量、不限速。确认客户端已连接,再决定某个程序要不要另外填代理。全程 HTTPS+AES 加密传输。
- 第二步:能用系统级线路就不要再填代理。打开客户端的连接状态,浏览器直接访问目标站。能开就说明整机线路已经生效,不必在系统设置里再写主机和端口。
- 第三步:只有某个老程序要求代理时,先看它的下拉框是 HTTP、HTTPS 还是 SOCKS5。下拉框和地址必须成对,不要把 SOCKS 端口填进 HTTP 一栏。
- 第四步:浏览器若必须手动配置,在代理设置里只填它支持的那一种。改完关掉浏览器全部窗口再开,否则旧进程仍走上一套设置。
- 第五步:终端程序看文档给的环境变量。要求 socks5h 时,表示域名也交给代理远端解析。写成不带这个约定的形式,可能出现网页能开、命令行报域名错误。
- 第六步:本地有「允许局域网连接」之类的开关时,只在你需要给同一台电脑上的虚拟机使用时打开,用完关掉。不要把它暴露到咖啡店的公共网络。
- 第七步:验证时用一个会显示你出口的普通网页,和一条只访问该网页的命令对照。两边出口不一致,说明命令没有走客户端,或走了另一套代理。
- 第八步:系统代理和虚拟网卡同时开启时,先关掉系统里手写的代理,只留客户端连接,再看失败的那个程序是否恢复。
- 第九步:手机和电脑不要抄同一串端口。手机客户端没有让你填 SOCKS 端口的必要。中国大陆区 App Store 不提供 VPN 类应用,安装需外区 Apple ID,在 App Store 搜索「Hedge VPN」,见 iOS 安装教程。
按现象排查:握手失败、域名错误和双代理
报错里如果出现代理协议或握手,就不要先重装客户端。
- 连接被拒绝:协议填反,或那个端口根本没有在监听。先确认你填的是程序要求的协议。
- 代理返回了无法识别的响应:把 SOCKS 端口填进了 HTTP 栏。对调协议再试。
- 浏览器能开、命令行不行:命令行没有继承系统线路,或环境变量仍指向旧代理。新开一个终端窗口。
- 命令行能开、浏览器不行:浏览器里残留了错误的手动代理。改回系统代理或直接连接,让客户端接管。
- 只有域名失败、写数字地址可以:域名在本地解析失败。使用让远端解析域名的那种写法,或检查客户端的解析设置。
- 一开系统代理就全部失败:系统和客户端叠了两层。关掉手写代理,只保留客户端连接。
- 虚拟机里没有网络:宿主机的允许转发没开,或虚拟机仍填着过期端口。先让虚拟机走默认路由试一次。
- 换节点后只有一个软件还走旧地区:那个软件缓存了代理或自己的线路设置。重启该软件。
- 公司软件提示证书错误:它在检查自己的证书链,不是 SOCKS 和 HTTP 填反。不要用改代理协议去修证书。
什么时候用哪一种
协议名字不会带来更快的速度。免费节点永久免费、不限流量、不限速,适合确认目标站能否打开。日常使用时长套餐,期间不限流量、不限速。刺猬VPN自身不对账号设速率上限。实际速度取决于本地网络、节点和目标站。实际可用性取决于当前网络环境。
| 对比项 | 只开客户端 | 额外填 HTTP | 额外填 SOCKS5 |
|---|---|---|---|
| 日常浏览 | 足够 | 多此一举 | 多此一举 |
| 老旧下载器 | 看它是否认系统线路 | 仅当它只支持 HTTP | 仅当它只支持 SOCKS5 |
| 终端工具 | 新窗口通常已生效 | 按文档写 http | 按文档写 socks5 |
| 域名在本地被改写 | 优先用客户端解析 | 不一定绕过 | 远端解析更合适 |
| 速率 | 时长套餐不限流量、不限速 | 不会因为协议名更快 | 不会因为协议名更快 |
| 适合 | 大多数人 | 明确只支持 HTTP 的程序 | 明确要求 SOCKS5 的程序 |
电脑手动填写和手机不要照抄
电脑上只有一个程序不走系统线路时,才打开它自己的代理页。填完用该程序访问一次测试页,再关。不要把同一串设置写进浏览器、终端和下载器三份,以后改端口会漏改。
手机客户端连接后,应用流量按系统线路走,不需要也不应该再找一个 SOCKS 端口往系统代理里贴。平板同理。
从「每个软件各填一个代理」迁到客户端时,按这个顺序:先连上客户端,再逐个关掉软件里的手动代理,每关一个就测试一次。最后才清系统设置里的主机和端口。一下子全清,出问题就不知道是哪一层。
命令行对照时,新开的窗口才会读到刚改的环境变量。已经开着的窗口仍是旧值。测完把变量从启动脚本里去掉,避免下次开机又指向一个已经不再监听的端口。脚本里不要写死别人机器上的地址。
浏览器的代理扩展和操作系统的代理可以同时存在。扩展优先于系统设置时,你会以为已经关掉手动代理,网页仍走扩展。排错时先禁用扩展,只留客户端,确认网页恢复,再决定这个扩展还要不要。
虚拟机和容器若走宿主机的端口,宿主机休眠后端口会没。虚拟机里表现为突然全部连接被拒绝。先看宿主机客户端是否仍显示已连接,再看虚拟机里的地址是不是上一轮留下的。不要在虚拟机里再装一套互相嵌套的代理。
公司网络若只允许访问网页端口,有的终端工具会失败而浏览器仍正常。这时不要把失败理解成协议填反。先用浏览器打开同一域名做对照。两边都不通,才是线路或目标站的问题。只终端不通,再查这个工具是不是必须使用它自己的代理设置。排错时记三行:浏览器能否打开、新终端能否打开、出问题的程序能否打开。三行都失败,查客户端是否真的连上。只有第三行失败,查这个程序自己的代理栏。不要同时改协议、端口和节点。系统时间错误会造成证书失败,这和代理协议无关,时间对了再回到协议那一栏。证书警告不要靠忽略来换页面,那解决不了协议填反。记完三行结果再改下一处,一次只动一个设置。
和系统代理、协议说明的分工
虚拟网卡和系统代理两种接管方式的差别,见 TUN 模式和系统代理怎么选。线路在客户端和服务器之间怎么建立,见 WireGuard 协议说明。
本文只解决「这个框该选 SOCKS5 还是 HTTP」。模式选择看前一篇,协议原理看后一篇。不要在应用里再套一层来路不明的代理端口。客户端支持断线保护和按域名的智能分流,没有按某个软件单独勾选的代理列表。
常见报错速查表
| 现象 | 原因 | 解决办法 |
|---|---|---|
| 连接被拒绝 | 协议填反或端口未监听 | 按程序要求改协议 |
| 无法识别的代理响应 | SOCKS 端口填进 HTTP | 对调协议类型 |
| 只有命令行失败 | 终端没走当前线路 | 新开终端再试 |
| 只有浏览器失败 | 残留手动代理 | 关掉手动项,只留客户端 |
| 域名失败、地址可以 | 本地解析失败 | 改用远端解析的写法 |
| 两层叠在一起全失败 | 系统代理加虚拟网卡 | 去掉手写代理 |
| 换节点后地区没变 | 软件缓存了旧代理 | 重启该软件 |
高频问答
- 问:SOCKS5 是不是一定比 HTTP 代理好?答:不是。谁能用取决于程序支持哪一种。日常浏览优先用客户端的系统级线路。
- 问:客户端会给出一个本地端口吗?答:默认不需要你填端口。只有个别程序不走系统线路时,才按该程序的说明配置。
- 问:socks5 和 socks5h 有什么差别?答:后者把域名交给代理远端解析,适合本地解析结果不对的时候。
- 问:可以只让一个浏览器走代理吗?答:客户端没有按应用勾选的列表。浏览器要单独走,只能用它自己的代理设置,并和系统线路错开,避免叠两层。
- 问:免费节点能做这种测试吗?答:可以。免费节点永久免费、不限流量、不限速,适合确认页面和命令行是否一致。
- 问:填对了仍然打不开目标站?答:协议层已经通了,剩下是目标站和当前网络的问题。实际可用性取决于当前网络环境。
先让整机走通再填单个程序
SOCKS5 和 HTTP 代理填反时,表现是握手失败或无法识别的响应,不是节点没选对。优先使用刺猬VPN的系统级连接。只有程序明确要求时才填对应协议,填完关掉另一层,避免叠代理。
刺猬VPN采用 HTTPS+AES 加密传输,注册不需要邮箱和手机号。免费节点适合做对照测试,时长套餐在有效期内不限流量、不限速。找回密码凭支付订单记录。客户端提供断线保护和智能分流。目标站是否可开,实际取决于当前网络环境。
试试刺猬VPN:免费节点先体验,好不好用你说了算
刺猬VPN提供永久免费节点,不限流量;无需邮箱,自定义用户名即可匿名注册。一个账号支持多设备同时在线,实际可用性取决于当前网络环境。