Jacky's blog
首页
  • 学习笔记

    • web
    • android
    • iOS
    • vue
  • 分类
  • 标签
  • 归档
收藏
  • tool
  • algo
  • python
  • java
  • server
  • growth
  • frida
  • blog
  • SP
  • more
GitHub (opens new window)

Jack Yang

编程; 随笔
首页
  • 学习笔记

    • web
    • android
    • iOS
    • vue
  • 分类
  • 标签
  • 归档
收藏
  • tool
  • algo
  • python
  • java
  • server
  • growth
  • frida
  • blog
  • SP
  • more
GitHub (opens new window)
  • shell

  • tool

  • 网络

    • network category
    • http base
    • network concept
    • https
    • 网络高频问题
    • 网络安全
    • java http sign snip
    • 软路由
    • DHCP
    • ACME
    • 闲置android手机充当软路由
    • 代理检测方式及绕过方式
    • algo

    • compute_base

    • blog

    • growth

    • java

    • C&C++

    • ai

    • secure

    • cms

    • english

    • 生活

    • 金融学

    • more

    • other
    • 网络
    Jacky
    2024-12-25
    目录

    代理检测方式及绕过方式

    代理检测原理及绕过方法

    1. 代理 IP 自身问题
    • feature
      • IP 在黑名单列表
      • VPS 商家在黑名单列表
        • 比如商家从事数据中心托管业务,公司类型为hosting。特点为 ip容易获取
    • solve
      • 换 ip、vps 商家
    1. 网络行为异常问题
    • 检测方案
      • Latency Test: 主要检测 TCP 链接和 WebSocket 连接的延迟。 原理: link
    • feature
      • 配置不当:本机ip暴露
    • solve

    # TCP连接和WebSocket连接的延迟检测原理

    {
      "is_proxy": true,
      "info": {
        "tcpIpStats": {
          "samples": [
            53.91,
            54,
            54,
            54,
            54.02,
            54.06,
            54.06,
            54.07,
            54.08,
            54.1,
            54.1,
            54.11,
            54.11,
            54.13,
            54.15
          ],
          "min": 53.91
        },
        "wsLatencyStats": {
          "samples": [
            202.13,
            194.97,
            193.76,
            200.31,
            200.59
          ],
          "min": 193.76
        },
        "connection": {
          "wsConnectionEstablished": 1745395383302,
          "wsFirstMessage": 1745395383497,
          "wsLastMessage": 1745395384489,
          "wsConnectionClosed": null
        }
      },
      "name": "Latency Test",
      "desc": "This test compares incoming TCP/IP latencies to WebSocket latencies initiated via JavaScript on the client side. If the WebSocket latency is significantly higher than the TCP/IP latency, then it is likely a Proxy or VPN connection."
    }
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43

    这个代理检测结果说明了 WebSocket 延迟明显高于 TCP 连接延迟,确实是判断是否存在代理/VPN 的常用手段。下面是你看到的现象的详细解释:


    # 🔍 数据摘要:

    项目 TCP (ms) WebSocket (ms)
    延迟最小值 53.91 193.76
    平均值(大致) ≈54 ≈198
    差值 ≈140ms

    # 🧠 原因分析:

    # ✅ 为什么 TCP 延迟小?

    TCP 延迟指的是浏览器通过 JavaScript 使用 XMLHttpRequest 或 fetch 打开一个直连的 TCP socket 或发起 HTTP 请求(如 image ping、静态文件)的 RTT(Round Trip Time):

    • 这个测试通常非常短,因为 TCP 握手很快,可能只需要 SYN -> SYN+ACK -> ACK 的 3 个包;
    • 浏览器或系统的 DNS/连接复用机制可能进一步缩短时间;
    • 代理(特别是透明代理)对简单 TCP 流量处理较快,路径可能较短。

    # 🧨 为什么 WebSocket 延迟大?

    WebSocket 连接建立过程更加复杂:

    1. 发起 HTTP Upgrade 请求(通常使用 HTTPS);
    2. 完整握手完成后才算真正“建立连接”;
    3. JavaScript 测量的是 “第一个 message 到达” 的时间;
    4. 代理/VPN/中间人节点对 WebSocket 会引入较多缓冲、转发、TLS 拦截/加密耗时。

    此外:

    • WebSocket 流量可能被转发到远端代理再中继回来;
    • 某些企业 VPN 会特意 延迟非标准端口或非 HTTP 流量;
    • WebSocket 握手往往涉及更多 TLS 层和代理层的处理(尤其 SOCKS5/HTTPS 代理);
    • 浏览器 JavaScript Event Loop 的时间戳精度在某些浏览器中也会影响 WS 延迟的测量。

    # 🚩 检测原理总结:

    检测网站的机制本质上是:

    比较 TCP(基本连接)与 WebSocket(应用层连接)的 RTT 差异。

    • 如果 差异很小(例如都在 50ms 左右),那大概率没有代理;
    • 如果 WebSocket 明显慢很多,说明流量经过了非直连路径 —— 比如 VPN、SOCKS5、HTTP(S) 代理等;
    • 某些安全厂商甚至加入 payload 验证、TLS 握手指纹、证书检测,进一步判断“代理痕迹”。

    # ✅ 小结

    对比项 TCP WebSocket
    握手方式 简单 3 次握手 HTTP Upgrade + TLS
    传输复杂度 低 高
    代理处理方式 通常直接中继或透明代理 可能转发、加密、拦截
    延迟表现 快速、低抖动 明显延迟、高抖动

    因此你看到的延迟差异是 典型的代理特征,这个测试方式简单却非常有效。

    如果你想进一步识别代理方式(如 SOCKS5 vs HTTPS proxy),也可以从 TLS 指纹、证书链或 DNS 泄漏方面入手。需要我帮你拓展这一块吗?

    上次更新: 2025/04/23, 16:55:58
    闲置android手机充当软路由
    algo

    ← 闲置android手机充当软路由 algo→

    最近更新
    01
    npx 使用指南
    10-12
    02
    cursor
    09-28
    03
    inspect
    07-20
    更多文章>
    Theme by Vdoing | Copyright © 2019-2025 Jacky | MIT License
    • 跟随系统
    • 浅色模式
    • 深色模式
    • 阅读模式