Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
Cloak — 规避审查工具,用于逃避威权国家对手的检测 | Kitploit
工具/GitHubGitHub/cbeuw/cloak
加密/解密工具IDS/IPS规避网络安全隐写术
GitHubcbeuw/cloak

Cloak

规避审查工具,用于逃避威权国家对手的检测

查看仓库
4.1k3541年前Kitploit 审核通过

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

Build Status codecov Go Report Card Donate

Cloak 是一种 可插拔传输,可增强 OpenVPN 等传统代理工具,以规避 复杂的审查 和 数据歧视。

Cloak 并非独立的代理程序。相反,它通过将代理流量伪装成正常的网页浏览活动来工作。与传统工具具有非常明显的流量特征并可能被简单的过滤规则阻断不同,Cloak 难以在几乎不误报的情况下被精确针对。这增加了审查行动的附带损害,因为试图阻断 Cloak 也可能损害审查方依赖的服务。

对于任何第三方观察者来说,运行 Cloak 服务器的主机与无辜的 Web 服务器是无法区分的。无论是在被动观察进出服务器的流量时,还是在主动探测 Cloak 服务器的行为时,都是如此。这是通过使用一系列 密码学隐写技术 实现的。

Cloak 可与任何通过 TCP 或 UDP 传输流量的代理程序(如 Shadowsocks、OpenVPN 和 Tor)结合使用。多个代理服务器可以运行在同一个服务器主机上,Cloak 服务器将充当反向代理,将客户端与其所需的代理端连接起来。

Cloak 通过多个底层 TCP 连接复用流量,这减少了队头阻塞并消除了 TCP 握手开销。这也使流量模式更接近真实网站。

Cloak 提供多用户支持,允许多个客户端连接到同一端口(默认为 443)上的代理服务器。它还提供流量管理功能,如使用配额和带宽控制。即使底层代理软件并非为多用户设计,这也允许代理服务器为多个用户提供服务。

Cloak 还支持通过中间 CDN 服务器(例如 Amazon Cloudfront)进行隧道传输。这类服务使用广泛,试图干扰其流量可能导致审查方极高的附带损害。

快速开始

要在服务器上使用 Shadowsocks 快速部署 Cloak,可以运行由 @HirbodBehnam 编写的这个 脚本

目录

  • 快速开始
  • 构建
  • 配置
    • 服务器
    • 客户端
  • 设置
    • 服务器
      • 添加用户
        • 不受限制的用户
        • 受带宽和配额控制的用户
    • 客户端
  • 支持我

构建

root@kitploit:~
git clone https://github.com/cbeuw/Cloak
cd Cloak
go get ./...
make

构建的二进制文件将位于 build 文件夹中。

配置

配置文件示例可在 example_config 文件夹中找到。

服务器

RedirAddr 是当传入流量并非来自 Cloak 客户端时的重定向地址。理想情况下,应设置为审查方允许的主要网站(例如 www.bing.com)

BindAddr 是 Cloak 将绑定并监听的地址列表(例如 [":443",":80"] 表示在所有接口上监听 443 和 80 端口)

ProxyBook 是一个对象,其键是客户端使用的 ProxyMethod 名称(区分大小写)。其值是一个数组,第一个元素是协议,第二个元素是上游代理服务器的 IP:PORT 字符串,Cloak 将把流量转发到该服务器。

示例:

root@kitploit:~
{
  "ProxyBook": {
    "shadowsocks": [
      "tcp",
      "localhost:51443"
    ],
    "openvpn": [
      "tcp",
      "localhost:12345"
    ]
  }
}

PrivateKey 是 base64 编码的静态 curve25519 Diffie-Hellman 私钥。

BypassUID 是一个 UID 列表,这些 UID 不受带宽或配额限制,被授权使用。

AdminUID 是 base64 编码的管理员用户 UID。如果你只将用户添加到 BypassUID,可以将其留空。

DatabasePath 是 userinfo.db 的路径,用于存储用户使用信息和限制。Cloak 会在文件不存在时自动创建。如果你只将用户添加到 BypassUID,可以将其留空。如果 AdminUID 不是有效的 UID 或为空,此字段也无效。

KeepAlive 是告诉操作系统在无活动后等待多少秒,然后向上游代理服务器发送 TCP KeepAlive 探测包。零或负值禁用此功能。默认值为 0(禁用)。

客户端

UID 是你的 base64 编码的 UID。

Transport 可以是 direct 或 CDN。如果服务器主机希望你直接连接,使用 direct。如果使用 CDN,则使用 CDN。

PublicKey 是服务器管理员提供的 base64 编码的静态 curve25519 公钥。

ProxyMethod 是你使用的代理方法名称。这必须与服务器的 ProxyBook 中的某个条目完全匹配。

EncryptionMethod 是你希望 Cloak 使用的加密算法名称。选项有 plain、aes-256-gcm(等同于 aes-gcm)、aes-128-gcm 和 chacha20-poly1305。注意:Cloak 并非旨在提供传输安全。加密的目的是隐藏代理协议的特征,并使负载在统计上随机化。仅当你确定底层代理工具已经提供了加密和认证(通过 AEAD 或类似技术)时,才可以将其保留为 plain。

ServerName 是你希望让 ISP 或防火墙认为你在访问的域名。理想情况下,它应与服务器配置中的 RedirAddr 匹配,即审查方允许的主要网站,但并非必须如此。使用 random 可为每次连接随机化服务器名称。

AlternativeNames 是一个数组,与 ServerName 一起使用,用于在每次新连接时在不同的 ServerName 之间切换。如果 CDN 提供商禁止域名前置并拒绝替代域名,这可能与 CDN 传输模式冲突。

示例:

root@kitploit:~
{
  "ServerName": "bing.com",
  "AlternativeNames": ["cloudflare.com", "github.com"]
}

CDNOriginHost 是在 CDN 模式下原始服务器(即运行 Cloak 的服务器)的域名。仅在 Transport 设置为 CDN 时有效。如果未设置,则默认为通过命令行参数(独立模式)或 Shadowsocks(插件模式)提供的远程主机名。在与 CDN 服务器建立 TLS 会话后,该域名将用于 HTTP 请求的 Host 头,以请求 CDN 服务器与该主机建立 WebSocket 连接。

CDNWsUrlPath 是在 CDN 模式下用于构建 WebSocket 请求的 URL 路径,也仅在 Transport 设置为 CDN 时有效。如果未设置,则默认为 "/"。此选项用于在 TLS 会话建立后构建 HTTP 请求的第一行。主要用于在反向代理后面运行的 Cloak 服务器,只有对特定 URL 路径的请求才会被转发。

NumConn 是你希望使用的底层 TCP 连接数。默认值 4 对大多数人来说应该是合适的。设置过高会降低性能。设置为 0 将禁用连接复用,每个 TCP 连接将产生一个单独的短期会话,并在会话终止后关闭。这使其行为类似于 GoQuiet。这对于连接不稳定的人可能有用。

BrowserSig 是你希望显示使用的浏览器。与你实际使用的浏览器无关。目前支持 chrome、firefox 和 safari。

KeepAlive 是告诉操作系统在无活动后等待多少秒,然后向 Cloak 服务器发送 TCP KeepAlive 探测包。零或负值禁用此功能。默认值为 0(禁用)。警告:启用它可能使你的服务器更容易被检测为代理,但会使 Cloak 客户端更快地检测到网络中断。

StreamTimeout 是 Cloak 等待代理程序的传入连接发送数据的秒数,超过此时间后连接将被 Cloak 关闭。在 TCP 连接建立后,Cloak 不会强制设置任何超时。

设置

服务器

  1. 安装至少一个底层代理服务器(例如 OpenVPN、Shadowsocks)。
  2. 下载 最新版本 或克隆并构建此仓库。
  3. 运行 ck-server -key。公钥应提供给用户,私钥应保密。
  4. (如果只想添加不受限制的用户,请跳过此步骤)运行 ck-server -uid。新的 UID 将用作 AdminUID。
  5. 将 example_config/ckserver.json 复制到所需位置。将 PrivateKey 更改为刚刚获得的私钥;将 AdminUID 更改为刚刚获得的 UID。
  6. 配置你的底层代理服务器,使它们都监听在 localhost 上。相应地编辑配置文件中的 ProxyBook。
  7. 配置代理程序。 运行 sudo ck-server -c <ckserver.json 的路径>。ck-server 需要 root 权限,因为它绑定到低编号端口(443)。或者,你可以按照 https://superuser.com/a/892391 的方法避免不必要地向 ck-server 授予 root 权限。

添加用户

不受限制的用户

运行 ck-server -uid 并将 UID 添加到 ckserver.json 中的 BypassUID 字段。

受带宽和配额控制的用户
  1. 首先确保你已生成 AdminUID 并在 ckserver.json 中设置,同时在 DatabasePath 中指定了 userinfo.db 的路径(如果文件不存在,Cloak 会为你创建)。
  2. 在客户端上,运行 ck-client -s <服务器 IP> -l <本地端口> -a <AdminUID> -c <ckclient.json 的路径> 以进入管理员模式。
  3. 访问 https://cbeuw.github.io/Cloak-panel (注意:这是一个纯 JS 静态站点,没有后端,在此站点中输入的所有数据将在你的浏览器和指定的 Cloak API 端点之间处理。或者,你可以从 https://github.com/cbeuw/Cloak-panel 下载仓库,并在浏览器中打开 index.html。不需要 Web 服务器)。
  4. 在 API Base 处输入 127.0.0.1:<你在步骤 1 中输入的端口>,然后点击 List。
  5. 你可以通过点击 + 面板来添加更多用户。

注意:用户数据库是持久化的,因为它存储在磁盘上。你无需每次启动 ck-server 时都重新添加用户。

客户端

Android 客户端可在此处获取:https://github.com/cbeuw/Cloak-android

  1. 安装与服务器对应的底层代理客户端。
  2. 下载 最新版本 或克隆并构建此仓库。
  3. 从服务器管理员处获取公钥和你的 UID。
  4. 将 example_config/ckclient.json 复制到你选择的位置。输入已获取的 UID 和 PublicKey。将 ProxyMethod 设置为与服务器端 ProxyBook 中相应条目完全匹配。
  5. 配置代理程序。 运行 ck-client -c <ckclient.json 的路径> -s <你的服务器 IP>

支持我

如果你觉得这个项目有用,可以访问我的 商品商店;也可以直接向我捐赠

Donate

BTC: bc1q59yvpnh0356qq9vf0j2y7hx36t9ysap30spx9h

ETH: 0x8effF29a8F9bD38A367580527AC303972c92b60c

下载工具