userIssa/shroud
GitHub: userIssa/shroud
Shroud 是一款通过混合 Tor 与住宅代理实现一键地理路由、内置多重泄漏防护的隐私安全浏览器。
Stars: 1 | Forks: 1
# Shroud 🌑
## 功能介绍
Shroud 让您在世界交互式地图上选择任意国家,并立即将所有流量路由通过该国家 — 隐藏您的 IP、阻止 WebRTC 泄漏、加密 DNS 以及伪造时区和语言区域标头。无需手动代理配置,不会暴露身份。
## 功能特性
- **一键地理路由** — 选择一个国家,连接,即可浏览
- **混合路由引擎** — 住宅 SOCKS5 代理保证速度,Tor 出口节点保证广泛覆盖
- **零泄漏保障** — 阻止 WebRTC、强制使用 DNS-over-HTTPS、伪造时区和语言区域、注入画布噪声
- **实时切换国家** — 会话中途切换位置无需断开连接
- **可视化路由地图** — 国家按路由质量颜色编码(绿色 = 专用节点,琥珀色 = Tor)
- **可搜索的国家列表** — 快速查找并连接 50+ 个国家中的任意一个
## 路由等级
| 颜色 | 含义 | 协议 | 速度 |
|-------|---------|----------|-------|
| 🟢 绿色 | 专用住宅代理 | SOCKS5 | 快 |
| 🟡 琥珀色 | Tor 出口节点 | Tor SOCKS5 | 中等 |
| ⚫ 灰色 | 无覆盖 | — | — |
## 架构
```
shroud/
├── main/
│ ├── index.js ← Electron main process (orchestrator)
│ ├── torController.js ← Tor binary lifecycle + circuit switching
│ ├── proxyManager.js ← Webshare SOCKS5 proxy pool
│ └── leakPrevention.js ← WebRTC/DNS/locale hardening
├── renderer/
│ ├── src/
│ │ ├── App.jsx ← Root component + state
│ │ ├── styles.css ← Dark UI stylesheet
│ │ ├── data/countries.js ← Country + routing tier data
│ │ └── components/
│ │ ├── WorldMap.jsx ← Interactive SVG map (d3-geo)
│ │ ├── CountryList.jsx ← Searchable country list
│ │ ├── CountryPanel.jsx ← Selected country + connect button
│ │ └── StatusBar.jsx ← Status bar + browser bar
│ └── index.html
├── preload/
│ ├── preload.js ← IPC bridge + fingerprint spoofing
│ └── browserPreload.js ← WebRTC killer injected before page load
└── tor/
├── bin/
│ ├── windows/ ← tor.exe goes here
│ ├── linux/ ← tor binary goes here
│ ├── macos/ ← tor binary goes here
│ └── geoip/ ← geoip + geoip6 files go here
```
## 安装设置
### 前置条件
- Node.js 18+
- Tor Expert Bundle(用于捆绑二进制文件)— 或系统 Tor 守护进程
### 安装
```
git clone https://github.com/userIssa/shroud
cd shroud
npm install
```
### 添加 Tor 二进制文件
从 https://www.torproject.org/download/tor/ 下载适用于您平台的 **Tor Expert Bundle**
放置二进制文件和 GeoIP 文件:
```
# Windows
tor/bin/windows/tor.exe
tor/bin/geoip/geoip
tor/bin/geoip/geoip6
# Linux
tor/bin/linux/tor
chmod +x tor/bin/linux/tor
# macOS
tor/bin/macos/tor
chmod +x tor/bin/macos/tor
```
### 配置 Webshare(可选但推荐)
通过 [Webshare](https://proxy.webshare.io) 获取免费住宅代理 — 无需信用卡。
```
# Windows
set WEBSHARE_API_KEY=your_key_here
# Linux / macOS
export WEBSHARE_API_KEY=your_key_here
```
没有 Webshare 密钥的情况下,Shroud 将回退到所有国家仅使用 Tor 路由。
### 运行
```
npm start
```
## 泄漏防护
每次会话都会获得以下防护:
| 向量 | 防护措施 |
|--------|-----------|
| WebRTC | 通过预加载脚本在页面加载前覆盖 RTCPeerConnection |
| DNS | 通过会话代理路由加密 |
| 时区 | 覆盖 `Intl.DateTimeFormat` 以匹配目标国家 |
| 语言 | 伪造 `Accept-Language` 标头 + 覆盖 `navigator.language` |
| 画布 | 注入像素级噪声以对抗指纹识别 |
| IP 标头 | 从请求中移除 `X-Forwarded-For`、`Via`、`Forwarded` |
## 打包分发
```
# Windows 安装程序 (.exe)
npm run dist:win
# Linux AppImage + .deb
npm run dist:linux
# macOS .dmg(必须在 macOS 上构建)
npm run dist:mac
```
输出到 `dist-build/`。
## 技术栈
| 层级 | 技术 |
|-------|-----------|
| 浏览器外壳 | Electron + Chromium |
| UI 框架 | React 18 |
| 地图渲染 | D3-geo + world-atlas topojson |
| Tor 集成 | 捆绑 Tor 二进制文件 + 控制端口 |
| 代理管理 | Webshare API |
| 打包工具 | Webpack 5 + Babel |
| 打包发布 | electron-builder |
## 开发者
Tolu "Issa" Oderinde ([@userIssa](https://github.com/userIssa)) — CEH,网络安全工程师
LinkedIn:[linkedin.com/in/toluwanimi-oderinde](https://linkedin.com/in/toluwanimi-oderinde/)
标签:Canvas噪声注入, d3-geo, dark UI, DNS-over-HTTPS, DNS加密, Electron应用, Geo-aware浏览器, IP伪装, IP隐藏, React前端, SOCKS5代理, SOCKS5代理池, Tor浏览器, Tor电路切换, WebRTC屏蔽, WebRTC防护, Webshare代理池, 一键切换, 代理浏览器, 代理管理, 住宅代理, 匿名工具, 匿名浏览, 反指纹, 反追踪, 国家切换, 在线安全, 地理位置欺骗, 地理感知安全浏览器, 安全浏览, 安全通信, 时区欺骗, 混合代理路由, 混合路由, 网络安全, 自定义脚本, 跨浏览器隐私, 路由质量可视化, 隐私保护, 隐私增强, 隐私浏览器, 零泄漏