r3bo0tbx1/tor-guard-relay
GitHub: r3bo0tbx1/tor-guard-relay
一个经过安全加固的轻量级 Docker 全能 Tor 中继容器,内置诊断与监控工具,帮助用户快速部署并为 Tor 网络贡献带宽。
Stars: 82 | Forks: 1
# 🧅 Tor Guard Relay
[](https://github.com/r3bo0tbx1/tor-guard-relay/actions/workflows/release.yml)
[](https://github.com/r3bo0tbx1/tor-guard-relay/releases/latest)
[](#multi-architecture-support)
[](https://hub.docker.com/r/r3bo0tbx1/onion-relay)
[](LICENSE.txt)
[](https://brokenbotnet.com/donate/)
**一个经过加固、可用于生产环境的 Tor 中继,内置诊断和监控功能**
[快速开始](#-quick-start) • [功能](#-key-features) • [🌐 实时仪表盘](https://relays.brokenbotnet.com/) • [文档](#-documentation) • [图库](#️-gallery) • [常见问题](docs/FAQ.md) • [架构](docs/ARCHITECTURE.md) • [工具](#-diagnostic-tools) • [贡献](#-contributing)
## 🚀 这是什么?
**Tor Guard Relay** 是一个可用于生产环境、具备自我修复能力的 Tor 中继容器,专为希望安全高效地为 Tor 网络做出贡献的隐私倡导者而设计。
### 为什么选择这个项目?
- 🛡️ **安全第一** - 加固的 Alpine Linux,非 root 用户运行,最小化端口暴露
- 🪶 **非常轻量** - 超精简的 16.8 MB 镜像
- 🎯 **简单易用** - 一条命令即可部署,只需极少的配置
- 📊 **可观测性** - 6 个仅依赖 busybox 的诊断工具和 JSON 健康 API
- 🌉 **多模式** - 支持 guard、exit 和 bridge (obfs4) 中继
- 🔄 **全自动化** - 每周安全重建,随时可供 CI/CD 使用
- 📚 **文档齐全** - 提供涵盖部署、监控、备份等方面的详尽指南
- 🏗️ **多架构** - 原生支持 AMD64 和 ARM64(如 Raspberry Pi、AWS Graviton 等)
### 🌐 实时生产网络
**久经生产环境考验。** 在线查看:**[relays.brokenbotnet.com](https://relays.brokenbotnet.com/)**
🌉 **Bridges** (Obfs4) • 🛡️ **Middle/Guard** • 🚪 **Exit** 遍布 **15 个国家**
## 🔒 安全模型
### 端口暴露策略
- **9001** ORPort,公开
- **9002** 用于 bridge 模式的 obfs4
- DirPort,默认**禁用 (0)**
### 环境变量
- `TOR_ORPORT` 默认为 9001
- `TOR_OBFS4_PORT` 默认为 9002
- `TOR_DIRPORT` 默认为 0(禁用)
诊断仅通过 `docker exec` 运行,不暴露任何监控端口。
最小化攻击面,镜像大小约 16.8 MB。
## ⚡ 快速开始
### 系统要求
| 组件 | 最低要求 | 推荐配置 |
|----------|----------|-------------|
| CPU | 1 核 | 2+ 核 |
| RAM | 512 MB | 1 GB+ |
| 硬盘 | 10 GB | 20 GB+ SSD |
| 带宽 | 10 Mbps | 100+ Mbps |
| 在线率 | 95% | 99% |
| Docker | 20.10+ | 最新版 |
**支持的架构:** AMD64, ARM64
### 网络安全说明
⚠️ **端口暴露:**
- **Guard/Middle/Exit:** 端口 9001 (ORPort) 应可公开访问
- **Bridge:** 端口 9001 (ORPort) 和 9002 (obfs4) 应可公开访问
- **无监控端口** - 所有诊断仅通过 `docker exec` 命令进行
- 使用 `--network host` 以获得最佳的 IPv6 支持(Tor 推荐做法)
### 交互式快速开始(推荐初学者使用)
**🚀 试试我们的交互式安装脚本:**
```
# 下载并运行 quick-start 脚本
curl -fsSL https://raw.githubusercontent.com/r3bo0tbx1/tor-guard-relay/main/scripts/quick-start.sh -o quick-start.sh
chmod +x quick-start.sh && sh ./quick-start.sh
```
该脚本将会:
- ✅ 引导您选择中继类型(guard、exit、bridge)
- ✅ 在验证后收集所需信息
- ✅ 生成部署命令或 docker-compose.yml
- ✅ 提供后续步骤和监控指导
### 手动部署
**第 1 步:** 创建您的中继配置(或使用我们的[示例](examples/relay-guard.conf)):
```
mkdir -p ~/tor-relay && cd ~/tor-relay && curl -o relay.conf https://raw.githubusercontent.com/r3bo0tbx1/tor-guard-relay/refs/heads/main/examples/relay-guard.conf && nano relay.conf
```
**第 2 步:** 运行(通过 Docker Hub)
```
docker run -d \
--name tor-relay \
--restart unless-stopped \
--network host \
--security-opt no-new-privileges:true \
-v $(pwd)/relay.conf:/etc/tor/torrc:ro \
-v tor-guard-data:/var/lib/tor \
-v tor-guard-logs:/var/log/tor \
r3bo0tbx1/onion-relay:latest
```
**第 3 步:** 验证其是否正在运行:
```
# 检查状态
docker exec tor-relay status
# 查看 fingerprint
docker exec tor-relay fingerprint
# 查看日志
docker logs -f tor-relay
```
**大功告成!** 您的中继将在 10-30 分钟内完成引导,并在 1-2 小时内出现在 [Tor Metrics](https://metrics.torproject.org/rs.html) 上。
## 🎯 选择版本
我们提供 **两种构建版本**,以匹配您的风险承受能力和需求:
### Stable 版本(推荐)
**基础:** Alpine 3.24.1 | **推荐用于:** 生产环境中继
- ✅ 经过实战检验的 Alpine 稳定版
- ✅ 每周自动重建,包含最新安全补丁
- ✅ 具备久经考验的稳定性,适合长期运行的中继
- ✅ 在 **Docker Hub** 和 **GHCR** 上均可用
```
# 从 Docker Hub 拉取(最简单)
docker pull r3bo0tbx1/onion-relay:latest
docker pull r3bo0tbx1/onion-relay:2.0.0
# 从 GHCR 拉取
docker pull ghcr.io/r3bo0tbx1/onion-relay:latest
docker pull ghcr.io/r3bo0tbx1/onion-relay:2.0.0
```
### Edge 版本(仅用于测试)
**基础:** Alpine edge | **推荐用于:** 测试、安全研究
- ⚡ 最前沿的 Alpine 软件包(更快获取安全更新)
- ⚡ 第一时间获取最新的 Tor 和 obfs4 版本
- ⚡ **更频繁的重建** - 每 3 天 + 每周一次(更新速度比 stable 快约 2-3 倍)
- ⚠️ **不建议用于生产环境** - 稳定性较差,可能存在破坏性更新
- 📦 在 Docker Hub 和 GHCR 上均可用
```
# 从 Docker Hub 拉取
docker pull r3bo0tbx1/onion-relay:edge
# 从 GHCR 拉取
docker pull ghcr.io/r3bo0tbx1/onion-relay:edge
docker pull ghcr.io/r3bo0tbx1/onion-relay:2.0.0-edge
```
**何时使用 edge 版本:**
- 🔬 在稳定版发布前测试新的 Tor 功能
- 🛡️ 需要最新软件包的安全研究
- 🧪 非生产环境的测试环境
- 🚀 愿意承担潜在不稳定性的早期尝鲜者
## 🏗️ 部署方式
选择适合您工作流的方式。
| 方式 | 最适合 | 指南 |
|--------|----------|--------|
| 🐳 Docker CLI | 快速测试 | [指南](docs/DEPLOYMENT.md#method-1-docker-cli) |
| 📦 Docker Compose | 生产环境 | [指南](docs/DEPLOYMENT.md#method-2-docker-compose) |
| ☁️ Cosmos Cloud | 基于界面的部署 | [指南](docs/DEPLOYMENT.md#method-3-cosmos-cloud) |
| 🎛️ Portainer | Web UI | [指南](docs/DEPLOYMENT.md#method-4-portainer) |
**刚接触 Docker?** 试试由 [azukaar](https://github.com/azukaar) 开发的 [Cosmos Cloud](https://cosmos-cloud.io/) —— 一个华丽且可自托管的 Docker 管理平台。
### 多中继设置
需要运行多个中继?我们为您准备了模板:
- **Docker Compose:** [docker-compose-multi-relay.yml](https://github.com/r3bo0tbx1/tor-guard-relay/blob/main/templates/docker-compose/docker-compose-multi-relay.yml) - 3 个中继设置
- **Cosmos Cloud:** [cosmos-compose-multi-relay.json](https://github.com/r3bo0tbx1/tor-guard-relay/blob/main/templates/cosmos-compose/cosmos-compose-multi-relay.json) - 多中继堆栈
完整说明请参阅[部署指南](docs/DEPLOYMENT.md)。
## 🔧 诊断工具
内置了六个仅依赖 busybox 的诊断工具。
| 工具 | 用途 | 用法 |
|------|---------|--------|
| status | 完整健康报告 | `docker exec tor-relay status` |
| health | JSON 健康信息 | `docker exec tor-relay health` |
| fingerprint | 显示指纹 | `docker exec tor-relay fingerprint` |
| bridge-line | obfs4 桥接行 | `docker exec tor-relay bridge-line` |
| gen-auth | Nyx 的凭证 | `docker exec tor-relay gen-auth` |
| gen-family | Happy Family 密钥生成 | `docker exec tor-relay gen-family MyRelays` |
```
# 带有 emojis 的完整健康报告
docker exec tor-relay status
# 用于 automation/monitoring 的 JSON 输出
docker exec tor-relay health
```
JSON 示例:
```
{
"status": "up",
"pid": 1,
"uptime": "01:00:00",
"bootstrap": 100,
"reachable": "true",
"errors": 0,
"nickname": "MyRelay",
"fingerprint": "1234567890ABCDEF"
}
```
## 📊 监控与可观测性
支持**实时 CLI 监控和外部可观测性**,以实现最小化的镜像体积和最大化的安全性。
### 实时监控
您可以通过 Control Port 安全地将 Nyx(前身为 arm)连接到您的中继。
1. 生成凭证:`docker exec tor-relay gen-auth`
2. 将哈希值添加到您的配置中
3. 通过本地 socket 或 TCP 连接
### JSON 健康 API
`health` 工具提供用于监控集成的 JSON 输出:
```
# 获取健康状态(原始 JSON)
docker exec tor-relay health
# 使用 jq 解析(要求 HOST 机器上已安装 jq)
docker exec tor-relay health | jq .
# 基于 cron 的监控示例
*/5 * * * * docker exec tor-relay health | jq '.status' | grep -q 'healthy' || alert
```
## 🎯 核心特性
### 安全性与可靠性
- ✅ 非 root 用户执行(以 `tor` 用户运行)
- ✅ 超精简 Alpine Linux 基础镜像(**约 16.8 MB**)
- ✅ 仅依赖 Busybox 的工具(无 bash/python 依赖)
- ✅ 启动时自动修复权限
- ✅ 启动前进行配置验证
- ✅ Tini init 提供正确的信号处理
- ✅ 带有清理机制的平滑关闭
### 运维与自动化
- ✅ **6 个仅依赖 busybox 的诊断工具**(status、health、fingerprint、bridge-line、gen-auth、gen-family)
- ✅ 用于监控集成的 **JSON 健康 API**
- ✅ **多模式支持**(guard、exit、带有 obfs4 的 bridge)
- ✅ **Happy Family 支持**(Tor 0.4.9.2-alpha 或更高版本,使用基于密钥的中继家族)
- ✅ **基于环境变量的配置** (TOR_RELAY_MODE, TOR_NICKNAME, TOR_FAMILY_ID 等)
- ✅ **多架构** 构建 (AMD64, ARM64)
- ✅ 通过 GitHub Actions 实现**每周安全重建**
- ✅ 用于单/多中继的 **Docker Compose 模板**
- ✅ 支持一键部署的 **Cosmos Cloud**
- ✅ **自动化维护:** 保留最近 14 个 GHCR 软件包版本和 14 个 Docker Hub 版本标签
### 开发者体验
- ✅ 全面的文档(8 份指南)
- ✅ 包含示例配置
- ✅ GitHub issue 模板
- ✅ 自动依赖更新
- ✅ CI/CD 验证和测试
- ✅ 多架构支持(同一命令,任意平台)
## 🖼️ 图库
**一个经过加固、可用于生产环境的 Tor 中继,内置诊断和监控功能**
[快速开始](#-quick-start) • [功能](#-key-features) • [🌐 实时仪表盘](https://relays.brokenbotnet.com/) • [文档](#-documentation) • [图库](#️-gallery) • [常见问题](docs/FAQ.md) • [架构](docs/ARCHITECTURE.md) • [工具](#-diagnostic-tools) • [贡献](#-contributing)
Cosmos Cloud Dashboard |
Docker Logs (Bootstrapping) |
|---|---|
![]() |
![]() |
Relay Status Tool |
obfs4 Bridge Line |
![]() |
![]() |
Nyx Bandwidth Monitoring |
|
![]() |
|
[](https://hub.docker.com/r/r3bo0tbx1/onion-relay)
[](https://github.com/r3bo0tbx1/tor-guard-relay)
[](https://github.com/r3bo0tbx1/tor-guard-relay/issues)
**当前版本:** v2.0.0
**镜像大小:** 16.8 MB
**镜像仓库清理:** 14 个最近的 GHCR 软件包版本 • 14 个最近的 Docker Hub 版本标签
**镜像仓库:** Docker Hub • GHCR
## 📄 许可证
本项目基于 MIT 许可证授权。
完整详情请参阅[许可证](LICENSE.txt)。
## 🙏 致谢
- **The Tor Project**,感谢其维护全球隐私网络
- **Alpine Linux**,感谢其提供最小化且安全的基础镜像
- **azukaar**,感谢其开发的 Cosmos Cloud
- **所有中继运营商**,感谢你们在全球范围内支持隐私和反审查
## 💖 支持本项目
运营公共 Tor 基础设施意味着需要支付持续的服务器、带宽、监控和维护成本。如果这个项目对您有帮助,您的捐助将有助于维持这些基础设施的运转,并支持开源开发的继续。
捐款完全是自愿的。它们不能购买支持、优先权、影响力或访问权限。它们仅用于帮助支付已经在公开进行的工作的成本。
**镜像大小:** 16.8 MB
**镜像仓库清理:** 14 个最近的 GHCR 软件包版本 • 14 个最近的 Docker Hub 版本标签
**镜像仓库:** Docker Hub • GHCR
| Bitcoin (BTC) | Monero (XMR) |
|---|---|
### 用 💜 为一个更自由、无审查的互联网而打造
*保护隐私,一次一个中继* 🔁🧅✨
⭐ 如果觉得有用,请给这个仓库点个 Star!
🌍 [支持互联网自由](https://donate.brokenbotnet.com/)
📚 [文档](docs/README.md) ⬆ [返回顶部](#readme-top)
📚 [文档](docs/README.md) ⬆ [返回顶部](#readme-top)
标签:Docker, Tor, 安全防御评估, 网络安全, 网络安全, 请求拦截, 运维, 隐私保护, 隐私保护




