Skip to content

反审查通信系统 ​

版本: v3.3.0 | 状态: ✅ 生产就绪 | 5 IPC Handlers | 1 数据库表 | Tor + 域前置 + Mesh

ChainlessChain 反审查通信系统提供多层抗审查通信能力,集成 Tor 匿名网络、CDN 域前置和 BLE/WiFi Direct Mesh 网络。当传统通信渠道受到限制时,自动切换到可用的替代链路,确保通信不中断。

概述 ​

反审查通信系统为 ChainlessChain 提供多层抗审查通信能力,集成 Tor 匿名服务、CDN 域前置流量混淆和 BLE/WiFi Direct Mesh 点对点网络三种技术路径。系统能在传统通信渠道受限时自动切换到可用替代链路,并提供实时连通性评估报告。

核心特性 ​

  • 🧅 Tor 匿名服务: 通过 Tor 隐藏服务实现匿名通信
  • 🌐 流量混淆: 将流量伪装为正常 HTTPS 请求,绕过深度包检测
  • 🏢 CDN 域前置: 利用 CDN 基础设施隐藏真实目标域名
  • 📶 Mesh 网络: BLE/WiFi Direct 点对点组网,无需互联网基础设施
  • 📊 连通性报告: 实时评估各通信链路的可用性和延迟

启动 Tor 服务 ​

javascript
const result = await window.electron.ipcRenderer.invoke(
  "anti-censorship:start-tor",
);
// result.status = {
//   running: true,
//   circuitEstablished: true,
//   hiddenServiceAddress: "xxxxx.onion",
//   startedAt: 1709123456789,
// }

启用域前置 ​

javascript
const result = await window.electron.ipcRenderer.invoke(
  "anti-censorship:enable-domain-fronting",
  {
    frontDomain: "cdn.example.com",
    targetDomain: "real-target.example.com",
    provider: "cloudflare",
  },
);

启动 Mesh 网络 ​

javascript
const result = await window.electron.ipcRenderer.invoke(
  "anti-censorship:start-mesh",
);
// result.result = {
//   active: true,
//   transport: "ble",
//   peerCount: 0,
//   startedAt: 1709123456789,
// }

获取连通性报告 ​

javascript
const result = await window.electron.ipcRenderer.invoke(
  "anti-censorship:get-connectivity-report",
);
// result.report = {
//   tor: { available: true, latencyMs: 350 },
//   domainFronting: { available: true, latencyMs: 120 },
//   mesh: { available: true, peers: 3 },
//   directInternet: { available: false },
//   bestRoute: "domainFronting",
// }

系统架构 ​

┌──────────────────────────────────────────────────┐
│             反审查通信系统                          │
│                                                    │
│  ┌──────────┐  ┌──────────┐  ┌──────────────────┐│
│  │  Tor      │  │  域前置   │  │  Mesh 网络       ││
│  │  匿名网络 │  │  CDN 代理  │  │  BLE/WiFi Direct ││
│  └─────┬────┘  └─────┬────┘  └────────┬─────────┘│
│        │             │                 │           │
│        ▼             ▼                 ▼           │
│  ┌────────────────────────────────────────────┐   │
│  │        连通性评估 & 智能路由选择              │   │
│  │  延迟感知 → 自动切换最优链路                  │   │
│  └────────────────────────────────────────────┘   │
└──────────────────────────────────────────────────┘

IPC 接口完整列表 ​

反审查操作(5 个) ​

通道功能说明
anti-censorship:start-tor启动 Tor 服务建立匿名电路和隐藏服务
anti-censorship:get-tor-status查询 Tor 状态电路状态、洋葱地址
anti-censorship:enable-domain-fronting启用域前置配置 CDN 域前置代理
anti-censorship:start-mesh启动 Mesh 网络BLE/WiFi Direct 点对点组网
anti-censorship:get-connectivity-report连通性报告各链路可用性和延迟评估

数据库 Schema ​

1 张核心表:

anti_censorship_routes 表 ​

sql
CREATE TABLE IF NOT EXISTS anti_censorship_routes (
  id TEXT PRIMARY KEY,
  route_type TEXT NOT NULL,              -- tor | domain_fronting | mesh
  status TEXT DEFAULT 'inactive',
  latency_ms INTEGER,
  last_checked INTEGER,
  created_at INTEGER DEFAULT (strftime('%s','now') * 1000)
);

前端集成 ​

AntiCensorshipPage 页面 ​

功能模块:

  • 通道状态卡片: Tor / 域前置 / Mesh 三路状态
  • 操作按钮: 启动 Tor、启用域前置、启动 Mesh
  • 连通性报告: 展示各链路延迟和可用性
  • 错误提示: Alert 组件展示错误信息

Pinia Store (antiCensorship.ts) ​

typescript
const useAntiCensorshipStore = defineStore("antiCensorship", {
  state: () => ({
    torStatus: null,
    meshStatus: null,
    connectivityReport: null,
    loading: false,
    error: null,
  }),
  actions: {
    startTor, // → anti-censorship:start-tor
    fetchTorStatus, // → anti-censorship:get-tor-status
    enableDomainFronting, // → anti-censorship:enable-domain-fronting
    startMesh, // → anti-censorship:start-mesh
    fetchConnectivityReport, // → anti-censorship:get-connectivity-report
  },
});

关键文件 ​

文件职责行数
src/main/security/anti-censorship-manager.js反审查核心引擎~200
src/main/security/mesh-network-manager.jsMesh 网络管理器~62
src/main/security/anti-censorship-ipc.jsIPC 处理器(5 个)~138
src/renderer/stores/antiCensorship.tsPinia 状态管理~90
src/renderer/pages/security/AntiCensorshipPage.vue反审查页面~100

测试覆盖率 ​

✅ anti-censorship-manager.test.js         - Tor/域前置/Mesh/连通性测试
✅ stores/antiCensorship.test.ts           - Store 状态管理测试
✅ e2e/security/anti-censorship.e2e.test.ts - 端到端用户流程测试

使用示例 ​

启用 Tor 匿名通信 ​

  1. 打开「反审查通信」页面
  2. 点击「启动 Tor」按钮,等待电路建立(约 10-30 秒)
  3. 查看状态卡片确认 circuitEstablished: true
  4. 系统自动生成 .onion 隐藏服务地址
  5. 所有后续通信自动通过 Tor 匿名网络路由

配置 CDN 域前置 ​

  1. 切换到「域前置」面板
  2. 填写前端域名(CDN 域名)和真实目标域名
  3. 选择 CDN 提供商(Cloudflare / AWS / Azure)
  4. 点击「启用」,流量将伪装为正常 HTTPS 请求

建立 Mesh 应急网络 ​

  1. 确保设备蓝牙或 WiFi Direct 功能已开启
  2. 点击「启动 Mesh」,系统自动扫描附近设备
  3. 当互联网中断时,Mesh 网络自动接管通信
  4. 查看连通性报告了解各链路状态

故障排查 ​

问题可能原因解决方案
Tor 电路建立失败本地防火墙阻断或 Tor 入口节点不可达检查防火墙规则,配置 Tor 桥接节点
域前置连接超时CDN 提供商策略变更或域名被封锁更换 CDN 提供商或使用备用前端域名
Mesh 无法发现对等节点蓝牙/WiFi Direct 未开启开启设备无线功能,确保距离在有效范围内
连通性报告全部不可用所有通信链路均被阻断尝试更换网络环境,启用 Mesh 离线模式
Tor 延迟过高(>1s)多跳中继路径较长属于正常现象,可优先使用域前置低延迟链路
隐藏服务地址变化Tor 进程重启导致新地址配置持久化隐藏服务密钥避免地址变化

配置参考 ​

javascript
// desktop-app-vue/src/main/security/anti-censorship-manager.js
const DEFAULT_CONFIG = {
  // Tor 匿名网络
  tor: {
    enabled: false, // 是否自动启动 Tor
    socksPort: 9050, // Tor SOCKS5 代理端口
    controlPort: 9051, // Tor 控制端口
    circuitTimeout: 30000, // 电路建立超时 (ms)
    hiddenServiceDir: ".tor/hidden", // 隐藏服务密钥目录(持久化地址)
    bridges: [], // 桥接节点列表,被封锁时使用
  },

  // CDN 域前置
  domainFronting: {
    enabled: false, // 是否启用域前置
    provider: "cloudflare", // CDN 提供商: cloudflare | aws | azure
    frontDomain: "", // 前端域名(CDN 域名)
    targetDomain: "", // 真实目标域名
    timeout: 10000, // 连接超时 (ms)
  },

  // Mesh 网络
  mesh: {
    enabled: false, // 是否自动启动 Mesh
    transport: "ble", // 传输方式: ble | wifi-direct | both
    scanInterval: 5000, // 扫描附近节点间隔 (ms)
    maxPeers: 20, // 最大连接节点数
  },

  // 智能路由
  routing: {
    autoSwitch: true, // 是否自动切换最优链路
    checkInterval: 30000, // 链路健康检查间隔 (ms)
    latencyThreshold: 2000, // 链路延迟告警阈值 (ms)
  },
};
配置项默认值说明
tor.socksPort9050Tor SOCKS5 代理端口,需与本地 Tor 实例一致
tor.circuitTimeout30000毫秒,超时后报告电路建立失败
tor.hiddenServiceDir.tor/hidden持久化隐藏服务密钥,避免重启后地址变更
tor.bridges[]桥接节点列表,格式 obfs4 <ip>:<port> <fingerprint>
domainFronting.providercloudflareCDN 提供商,决定可用的前端域名范围
domainFronting.timeout10000域前置连接超时,建议 5000~15000
mesh.transportbleble 低功耗蓝牙,wifi-direct 高带宽,both 双模式
mesh.maxPeers20过大影响电量和内存,建议不超过 50
routing.autoSwitchtrue关闭后需手动切换链路
routing.checkInterval30000毫秒,健康检查过于频繁会增加指纹暴露风险

性能指标 ​

操作目标实际状态
Tor 电路建立<30s~15s✅
域前置连接延迟<200ms~120ms✅
Mesh 节点发现<10s~6s✅
连通性报告生成<500ms~300ms✅
链路自动切换<2s~800ms✅
Tor 匿名通信延迟<1000ms~350ms✅

安全考虑 ​

  • 流量混淆: 深度包检测无法识别 Tor 流量,域前置将流量伪装为正常 HTTPS
  • 端到端加密: 所有通信内容在发送前加密,中继节点无法读取明文
  • 无日志策略: 反审查模块不记录用户通信内容和路由路径
  • Mesh 隔离: BLE/WiFi Direct 通信使用独立加密通道,防止邻近设备窃听
  • 自动链路切换: 当某条链路被检测到异常时,自动切换到备用链路
  • 密钥轮换: 通信密钥定期轮换,降低长期密钥泄露风险
  • 最小信息暴露: 连通性报告仅记录延迟和可用性,不包含通信内容

相关文档 ​

基于 MIT 许可发布