Skip to content

快速打开

快速打开是一个性能优化功能,通过简化 SOCKS5 握手过程显著减少连接延迟。它特别适用于发出大量请求的应用程序,如网页浏览。

工作原理

快速打开通过允许 SOCKS5 端立即回复"成功"来优化 CONNECT 握手,使应用程序能够立即发送数据而无需等待完整握手完成。

性能优势

快速打开在连接建立期间节省一个完整往返时间(RTT),显著改善发出许多连接的应用程序的感知性能。

配置

快速打开可以在不同组件上独立启用:

服务器端(反向代理模式)

bash
# 在服务器上启用快速打开
linksocks server -t token --fast-open

客户端(正向代理模式)

bash
# 在客户端上启用快速打开
linksocks client -t token -u ws://server:8765 --fast-open

超时设置和连接失败处理

快速打开的默认超时为ConnectTimeout(10 秒)+ 5 秒保护时间。这意味着代理在发送立即成功响应后将等待最多 15 秒来建立实际连接。

如果 15 秒后没有收到服务器响应,或者服务器响应无法建立连接,连接将被关闭。这确保失败的连接不会留下悬挂的套接字。

潜在问题和限制

快速打开在某些情况下可能会引起问题:

  • 应用程序假设立即连接:一些应用程序可能假设成功的 SOCKS5 CONNECT 响应意味着连接立即准备好进行数据传输
  • 错误处理复杂性:应用程序可能在实际连接失败之前接收数据,导致混乱的错误状态
  • 网络不稳定:在不稳定的网络环境中,延迟的连接建立可能导致更多超时

何时禁用快速打开

如果您遇到连接问题、应用程序错误或意外超时,请尝试通过移除 --fast-open 标志来禁用快速打开。快速打开在稳定网络和能够处理异步连接建立的应用程序中效果最佳。

基于 MIT 许可证发布。