一句话总结 — HTTP Proxy 用于浏览器和 curl;SOCKS5 用于其他一切。
协议覆盖。SOCKS5 为任何应用转发 TCP(如果客户端支持也转发 UDP)— Telegram、IRC、SSH、BitTorrent、自定义二进制程序。HTTP Proxy 只承载 HTTP 和通过 CONNECT 的 HTTPS — 适合浏览器,对任意应用毫无用处。
配置。HTTP Proxy 接入系统网络设置或浏览器扩展。SOCKS5 需要原生支持它的应用(Firefox:支持,Chrome:仅通过 SwitchyOmega;Telegram:原生支持)。
认证。两者都支持用户名加密码的基本认证。两者都不加密密码 — 这些协议依赖隧道内部的 TLS(HTTP Proxy 用 HTTPS,SOCKS5 用应用层 TLS)。
速度。在协议层面完全相同。SOCKS5 每次请求的头部开销更小。
DNS。socks5h:// 将 DNS 推送到代理处理(无本地泄漏)。HTTP Proxy 只为你通过它访问的 HTTPS 主机代理 DNS;其余的仍会泄漏。
如果你只需要为浏览器建立隧道,选 HTTP Proxy。任何非 HTTP 应用,选 SOCKS5。