本文内容仅限于网络安全研究与学习,所有操作均在本地可控实验环境中进行,旨在促进技术交流与防御能力提升。
VPN与各类网络代理工具的应用日益广泛,它们在满足特定需求的同时,也带来了不容忽视的网络安全与合规风险。非法网络穿透行为给网络监管和数据安全带来了持续挑战。在此背景下,对相关网络行为进行有效的监测、分析与取证,成为了一项重要的技术课题。

传统的应对方法通常是在网络边界部署流量监控设备,并辅以自定义的分析脚本。这类脚本的核心功能可以覆盖多个安全维度。
网络流量安全分析脚本主要功能如下:
功能概览
- 攻击特征检测 - 内置多种攻击模式规则库:
- SQL 注入
- XSS 跨站脚本
- 命令注入/RCE
- 路径穿越/文件包含
- 扫描探测
- Webshell 访问
- 暴力破解
- 敏感路径访问
- 漏洞利用特征
- 异常行为分析:
- 端口扫描检测(同一 IP 访问 ≥15 个端口)
- 暴力破解检测(POST 登录页 ≥10 次)
- 大文件传输检测(>1MB,可能数据外泄)
- DNS 查询分析
- User-Agent 识别扫描器
- 网络穿透检测算法

实施这类监控方案,首先需要部署流量采集。一个基础的思路是使用 tcpdump 进行周期性的抓包。
pip install scapy pyshark
我们可以编写一个 Bash 脚本,实现每小时自动抓包并保存为独立的文件,便于后续的脚本分析。
#!/bin/bash
INTERFACE="eth0" # 替换为实际网络接口
OUTPUT_DIR="/path/to/output" # 替换为输出目录
while true; do
# 生成当前小时的文件名
FILENAME=$(date +"${OUTPUT_DIR}/traffic_%Y%m%d%H.pcap")
# 抓包 1 小时(3600 秒)
sudo tcpdump -i "$INTERFACE" -w "$FILENAME" -G 3600 -Z root &
# 等待 1 小时后终止上一个进程并重启(避免时间误差)
sleep 3600
# 终止上一个 tcpdump 进程(根据实际情况调整)
pkill -f "tcpdump -i $INTERFACE -w $FILENAME"
done

采集到流量包(pcap文件)后,接下来就是深入分析。很多人可能会有疑问:HTTPS不是加密的吗,为什么还能知道访问了什么网站?
为什么 HTTPS 还是会暴露域名?
HTTPS 加密的是数据内容,但 TLS 握手本身有一部分是明文的。问题就出在 TLS 握手的早期阶段。
你的电脑 服务器
│ │
│── ClientHello ───────────────►│
│ └── SNI = "www.google.com" │ ← 防火墙在这里截获
│ (明文!未加密) │
│ │
│◄─ ServerHello ────────────────│
│ (之后才开始加密) │
TLS 握手必须先告诉服务器“我要访问哪个域名”,服务器才能返回对应的证书。 这个告知过程通过一个叫“服务器名称指示(SNI)”的字段完成,而它在加密建立之前发送,所以是明文的。网络审计设备正是在这一步嗅探到 SNI,从而知道你在访问什么。
为什么检测不到某些代理流量?
这就引出了现代代理工具使用的关键对抗技术:ECH 加密。
ECH 加密检测原理详解
什么是 SNI?
在 TLS 握手阶段,客户端会发送一个 ClientHello 消息,里面包含 SNI(Server Name Indication) ——也就是你想访问的域名,比如 www.google.com。这个 SNI 是明文传输的,防火墙正是靠拦截 SNI 来识别并封锁特定网站的。
客户端 ──ClientHello──► 防火墙嗅探 SNI = “www.google.com” ──► 封锁
什么是 ECH?
ECH(Encrypted ClientHello) 是 TLS 1.3 的一个扩展,它把整个 ClientHello(包括 SNI)都用服务器的公钥加密。防火墙只能看到一个加密的数据块,而无法解密其中的具体域名。
客户端 ──加密的ClientHello──► 防火墙只看到 IP,看不到 SNI ──► 无法直接封锁
此时,防火墙只能看到一个通用的外层域名(例如用于中转的域名),而真实的访问目标被隐藏在加密载荷中。
为什么检测 ECH 流量成为关键特征?
ECH 本身是一项合法的隐私保护技术,但在特定网络环境下,其出现具有强指向性。
| 角度 |
说明 |
| 支持 ECH 的服务 |
Google、YouTube、Cloudflare 等主流境外服务商,这些网站在特定区域内无法直接访问。 |
| 防火墙的应对 |
防火墙会直接丢弃或阻拦包含 ECH 扩展的 TLS 握手包,导致纯 ECH 连接在国内直连失败。 |
| 成功握手即特征 |
如果流量中出现了 ECH 包并且握手成功,则强烈暗示流量经过了能够处理 ECH 的代理节点。 |
| 分析工具视角 |
使用 tshark 等工具分析时,只能提取到 tls.ech.payload(加密载荷),而 SNI 字段为空,这种“有 TLS 流量但无 SNI”的现象本身就是显著特征。 |
相比之下,绝大多数国内网站、企业内网应用使用的都是标准 TLS,其 SNI 完全可见。
| 场景 |
SNI 是否可提取 |
| 访问百度、淘宝、微信 |
✅ 可以,直接读出域名 |
| 企业 OA、内网系统 |
✅ 可以 |
| 国内 CDN(阿里云、腾讯云) |
✅ 可以 |
其他代理工具特征
除了 ECH,代理工具还有其他多种伪装和对抗手段,例如 SNI 伪装 或 域前置。这些技术旨在让流量在表面看起来像是访问一个合法或普通的网站。

此外,不同代理协议栈具有独特的网络特征,可以作为检测依据。

| 特征 |
协议栈/特征 |
| WireGuard |
ssl.ethertype:ip:udp → 目标端口 51820 |
| Shadowsocks |
ssl.ethertype:ip:udp → 无协议头,纯高熵载荷 |
| V2Ray WebSocket |
ssl.ethertype:ip:tcp:http → 含 Upgrade: websocket |
| Trojan |
ssl.ethertype:ip:tcp:tls → 目标 443 + 自签名证书 |
基于 OpenClaw(小龙虾)的自动化分析实战
理解了原理,我们可以利用工具进行自动化分析。OpenClaw(小龙虾)便是这样一个能够对流量包进行深度分析,并输出结构化取证结论的工具。
分析过程通常会产生一系列详细的报告视图:



最终,OpenClaw 能够整合所有技术特征,生成一份结论清晰的电子数据取证报告。

报告的核心结论基于多维度证据,例如:
- ECH 使用:流量中存在加密的 ClientHello,SNI 不可见,这是现代代理工具的强标志。
- 被阻断域名查询:DNS 日志中出现大量对 YouTube、Google 等境内无法直接访问域名的查询。
- QUIC over UDP/443:存在不符合常规网站访问模式的大量 UDP 443 端口流量,常见于新型代理协议。
- 境外 IP 直连:TCP 连接日志显示与 Google、Cloudflare 等境外服务商的 IP 建立了大量直接连接。
这种「先抓包存储 → 再基于规则与特征自动化解析 → 最后输出取证结论」的流程,可以集成到日常的运维与测试监控体系中,实现自动化的流量审计与违规行为发现。
合规警示
网络空间不是法外之地,所有上网行为都应在法律框架内进行。以下案例和准则供大家引以为戒:


技术是把双刃剑,深入理解网络流量分析、协议特征与取证技术,根本目的是为了加固防御、提升安全意识。希望本文探讨的内容,能为大家在合法的网络安全研究与学习道路上提供有价值的参考。对于这类深度技术话题的探讨与交流,欢迎来到 云栈社区 与更多同仁一起切磋。