HTTP代理、SOCKS5和混合端口有什么区别?机场客户端接口选用指南
应用要求填写 HTTP 或 SOCKS5 代理,而机场订阅里写的是另一种协议,这通常不是冲突。前者描述应用怎样连接本地客户端,后者描述客户端怎样连接远端节点。把两段连接分开,很多“端口填了却不能用”的问题就容易检查。
先画清楚两段连接
常见使用方式可以简化为:
浏览器或应用 → 本机代理入口 → 客户端内核 → 机场节点 → 目标服务。
本地入口的协议类型和端口,应从当前正在运行的客户端读取;不能把远端节点端口、管理面板端口或订阅网址填进应用的代理栏。示例教程里的数字也不是所有客户端的通用默认值。
本文讨论普通应用的显式代理配置。TUN 接管属于另一种路径,不能仅凭应用未填写代理,就判断流量一定没有进入客户端。
三种名称分别表示什么
| 名称 | 用来判断什么 | 不能据此保证什么 |
|---|---|---|
| HTTP 代理入口 | 应用按HTTP代理方式发送请求 | 不保证任意应用的UDP都被代理 |
| SOCKS5入口 | 应用与客户端使用SOCKS5交互 | 不保证软件已实现或启用UDP转发 |
| 混合端口 | 同一入口可接受HTTP与SOCKS连接 | 不等于多条线路叠加或速度翻倍 |
RFC 9110 中的 CONNECT 用于建立隧道,成功后双向转发数据;HTTPS 请求可以经这样的隧道建立到目标的 TLS 连接。CONNECT 定义
SOCKS5 标准分别定义 CONNECT 与 UDP ASSOCIATE,后者用于建立 UDP 转发关联,并依赖相关 TCP 控制连接的生命周期。标准具有这项能力,不代表任意应用、客户端和节点组合都已支持。RFC 1928
以 mihomo 为例,其文档分别列出 HTTP、SOCKS 和混合代理端口;混合端口接受 HTTP 与 SOCKS 请求。实际选用时仍需按应用提供的代理类型填写。mihomo 代理端口说明
怎样给一个应用填写代理
- 在客户端确认当前运行状态和本地监听地址、端口、协议。
- 查看目标应用提供哪些代理类型,选择双方都支持的一项。
- 同机应用使用客户端实际提供的回环地址与端口;另一台设备不能直接照搬本机地址。
- 保存后只发起一次小请求,核对客户端连接记录中是否出现该应用或目标。
- 同时记录成功现象或报错原文,再决定是否更换类型。
不要同时更换节点、DNS、应用代理和系统代理。先保持节点与目标不变,才容易看出修改入口是否有效。应用没有提供某种代理类型时,不能仅靠把类型名称写进地址栏补上支持。
网页成功为什么不能证明UDP成功
可以打开HTTPS网页,只能说明该次请求走通。若你真正需要的是语音、特定游戏或其他使用UDP的功能,应测试那个功能本身,并在客户端可见记录中确认相关流量。
建议把验收拆成两行:“目标网页请求完成”和“目标UDP功能完成”。后一项没测过就写未测试。即使某项功能正常,也不要扩大成全部UDP应用都兼容。
遇到网页能用而另一个应用失败,先核对该应用是否真的使用了填写的代理设置,以及它对UDP代理的支持情况,再检查客户端和远端路径。盲目更改端口,无法替代这几层确认。
两个容易混淆的安全边界
本地HTTP入口不等于目标网页明文。 目标是否使用HTTPS、连接怎样经过本地入口、远端节点采用什么传输,属于不同问题。不要只看客户端界面的“HTTP”字样,就给整条链路作安全结论。
开放局域网访问不是填写端口的必要步骤。 同机使用先保持现有监听范围。如果确实需要其他设备接入,再单独规划监听地址、访问限制和认证;不要为解决单机连接问题随手对外开放入口。
最后保留一条简短记录:应用、代理类型、本地入口、实际出站、目标结果。能够说明某条连接怎样成功,才是选择端口类型的有效依据。
评论