很多内网隧道选型失败,并不是工具本身不可用,而是忽略了出口网络的真实限制:目标侧究竟允许哪些协议,WAF 或防火墙检查的是应用层内容还是连接行为,链路中是否存在代理、NAT、流量审计和速率限制。Chisel、SSF 与 ICMP 隧道分别代表了性能优先、隐蔽性优先和协议可达性优先的思路,适合在获得明确授权的渗透测试或内部安全验证中使用。

先区分“能连上”和“适合长期使用”
隧道的成功率不能脱离具体环境讨论。这里的“成功”至少包含三层含义:连接是否能够建立,建立后是否能稳定转发目标流量,以及流量是否容易触发安全设备的告警。某种方式能够穿过第一道防火墙,并不代表它适合继续承载代理访问、远程管理或持续的安全验证任务。
还需要区分 WAF 与传统防火墙的职责。WAF 主要关注 HTTP 请求、参数、会话和应用行为,通常不会直接决定 ICMP 是否可达;防火墙、网络访问控制设备和流量审计系统则可能限制端口、协议、方向或连接频率。把“WAF 穿透”当作所有网络限制的统称,容易导致错误选型。
因此,测试前应先确认授权范围、允许的目标网段、可使用的协议以及流量留存要求。测试结束后还应拆除监听端点、清理凭据,并保留足够的连接和告警记录,便于防守方复核。
三种方式的核心差异
Chisel:HTTP 可达性与转发能力优先
Chisel 是通过 HTTP 承载 TCP/UDP 隧道并提供加密保护的工具,常用于把远端网络服务转发到测试端,或提供面向内网的 SOCKS5 代理能力。它的主要优势是传输效率和通用性:当出口允许正常 HTTP 或 HTTPS 通信,且中间设备没有对长连接、升级请求或异常代理行为进行严格限制时,Chisel 往往比低带宽隐蔽通道更适合承载多个连接。
它的限制也很明显。HTTP 外观并不会自动让流量变得正常,持续连接、请求节奏、数据包大小分布、认证行为和目的端特征仍可能被代理或检测设备识别。严格的 HTTP 监控环境可能会检查请求路径、连接生命周期、TLS 指纹、代理日志和出站目的地。此时,Chisel 的“能走 HTTP”不等于“不会被发现”。
Chisel 更适合以下条件:目标主机可以稳定访问测试端,HTTP 或 HTTPS 是明确允许的出口协议,测试重点是可靠的 TCP/UDP 转发,且规则允许使用长连接或类似的应用层通道。它通常是第一候选,但不应在没有验证流量审计策略的情况下直接假定成功。
SSF:在隐蔽性和可用性之间取平衡
SSF 常被用于建立加密的转发通道,适合测试人员需要一定代理能力,同时又不希望直接暴露出明显的传统端口转发特征的场景。与 Chisel 相比,SSF 的选型重点不只是“是否能传输”,还包括加密连接在现有网络中的表现、连接维持方式以及审计系统对该类流量的识别能力。
“隐蔽”不应被理解为不可检测。加密只能隐藏内容,不能隐藏连接时间、流量方向、会话长度、频率和端点关系。若环境对出站加密连接、未知服务端、异常证书或长期低频会话有严格监控,SSF 仍可能被标记。它的稳定性也取决于代理链路、网络抖动和中间设备对连接重置的处理方式。
SSF 可以作为 Chisel 之外的对照方案,尤其适合需要加密转发、但目标环境对常见 HTTP 隧道模式较为敏感的授权测试。不过,是否更隐蔽必须通过防守侧日志和告警结果验证,不能仅凭工具名称或协议描述判断。
ICMP:协议可达性优先,吞吐和交互体验靠后
ICMP 隧道利用网络中可能被放行的 ICMP 通信传输数据。当目标环境确实只允许 Ping 类流量,TCP 和 UDP 出口均受到限制时,它可能成为少数能够建立通信的路径。这里的价值在于协议层面的可达性,而不是性能。
ICMP 隧道通常不适合承载高并发代理或对延迟敏感的工作负载。数据包可能受到大小限制、速率限制、丢包、重排和设备清洗策略影响,导致连接不稳定。已有测试资料也明确提醒,不应把 ICMP 当作 SOCKS 代理的常规方案。即使 ICMP Echo 能够得到响应,也不能据此推断携带额外数据的报文会被完整转发。
ICMP 还容易被网络设备单独统计。连续、固定节奏、载荷异常或方向高度不对称的 Echo 流量,都可能与普通连通性检查区别开来。因此,它更适合作为受限环境中的低速验证通道,或用于确认某条协议路径是否存在,不适合作为默认的长期隧道。

简单选型决策矩阵
下表用于授权测试中的初始判断,不能替代对实际出口策略和监控日志的验证。“较高”表示在相应条件满足时更适合作为候选,并不代表固定成功率。
| 目标环境或测试要求 | 首选方向 | 成功建立连接的判断 | 稳定性 | 流量特征与主要风险 |
|---|---|---|---|---|
| 允许 HTTP/HTTPS,长连接和加密出站未被严格限制 | Chisel | 通常较有机会建立 | 较好 | 具有 HTTP 外观,但长连接、会话节奏和异常端点仍可被审计 |
| HTTP 可用,但对 HTTP 请求行为、代理日志或隧道模式监控严格 | SSF 或先做小范围验证 | 取决于加密连接和出站策略 | 中等到较好 | 内容较难直接查看,但连接元数据、证书和持续会话仍可能触发告警 |
| TCP/UDP 出口受限,仅观察到 Ping 可达 | ICMP | 取决于设备是否允许携带异常载荷及相关频率 | 较弱 | 报文类型明显,容易受到速率限制、清洗、丢包和专门检测 |
| 需要稳定承载多个内网服务或代理流量 | Chisel | 重点验证并发、重连和目标服务兼容性 | 通常优先 | 流量量级和连接关系更容易形成可审计特征 |
| 只需确认极端受限网络中的单向或低速通信可能性 | ICMP | 先验证协议路径,不宜直接扩大范围 | 较弱 | 低吞吐、高延迟,持续使用更容易偏离正常 Ping 行为 |
| 监控要求严格且所有未知出站连接都需审批 | 不应直接选择工具 | 先走批准的测试通道 | 取决于批准方案 | 应优先验证检测规则和白名单,不把隧道当作绕过控制的手段 |
按网络限制逐步做判断
第一步是确认出口能力,而不是先决定工具。检查目标主机是否能够访问测试端、允许的协议和方向、是否经过显式代理,以及连接是否会被中途重置。对于 HTTP 路径,还要观察长连接、加密会话和非典型请求是否受到单独处理;对于 ICMP 路径,则要确认 Echo 请求只是被允许探测,还是确实允许携带并返回测试数据。
第二步是明确工作负载。如果任务是访问多个 TCP 服务、进行受控的内网资产验证或临时代理,稳定性和并发能力比低可见性更重要,Chisel 通常值得优先验证。如果主要担心明文内容暴露,希望使用加密转发,同时工作负载并不重,可以把 SSF 纳入比较。若只有 ICMP 具备可达性,则应降低预期,把 ICMP 定位为受限通信验证手段,而不是完整的高性能代理。
第三步是从防守视角检查流量特征。单看内容是否加密没有意义,还应结合连接持续时间、目的地址、包大小、方向比例、重连行为和设备告警。一个在网络层面“成功”的隧道,如果很快触发隔离策略,或者让大量内部服务访问集中出现在单一端点上,实际使用价值仍然很低。
最后要设置停止条件。出现持续告警、超出授权网段、连接行为影响业务,或测试流量无法与正常业务区分时,应停止扩展测试并与防守方确认。对于 Chisel 和 SSF,应重点核对认证配置、访问控制和版本安全状态;搜索资料中曾出现针对 Chisel 旧版本访问控制的漏洞线索,因此不能只关注通道是否连通,也要把工具版本和授权边界纳入检查。对于 ICMP,则应重点记录速率、丢包和设备处理结果,避免为了维持连接而不断增加异常流量。

结论:先选稳定路径,再验证可见性
在允许 HTTP 或 HTTPS 且需要较强转发能力时,Chisel 更适合作为起点;在需要加密转发、同时希望降低直接暴露内容的情况下,可以评估 SSF,但不能把它当成不可检测的方案;当网络确实只留下 ICMP 可达路径时,ICMP 才有明确的使用价值,而且应接受它在吞吐、延迟和稳定性上的限制。
真正可靠的选型结果,应该来自小范围、可回滚、可观测的授权验证:确认协议能否建立,观察链路能否维持,再由防守侧检查告警和日志。这样得到的结论,才比“某工具据说能穿透某类设备”更接近目标环境的实际情况。

重庆市 1F
ICMP隧道确实太慢了,只能应急用
黑龙江省哈尔滨市 2F
Chisel 的长连接特征在严格审计的环境下确实很容易被盯上。