我有 Google Cloud Platform 的付费订阅,我想运行 Tor 中继和出口节点。我使用 Docker 镜像量子对象/docker-tor-退出-中继,即插即用。
简而言之,根据收到的答案:
- g1-micro VM 配置是最便宜的替代方案,但可能没有我想要提供的高性能。
- 定制虚拟机配备 1 个 vCPU 和 1GB RAM,承诺使用 3 年,似乎是最方便且最实惠的。
- 可抢占虚拟机类是无用的。
- 负载均衡器后面的几个实例是一个坏主意。
我最初的理由
由于抢占式虚拟机便宜得多,我想使用具有抢占式虚拟机的实例组。然后,为了拥有高可用性节点,我计划使用 GCP 负载均衡器,以便随时只保持一个 IP 地址和至少一个虚拟机在运行。
另外,我最初计划使用 g1-small VM 类型(1/2 共享 vCPU 和 1.7 GB RAM)来降低成本,并且我正在与其他替代方案进行比较,例如具有“承诺使用”(应用折扣)的常规类 VM。
投资
以下是虚拟机的估算成本(根据计算器):
Config. | Class | vCPU | RAM | C. usage | Price/Mo
----------------------------------------------------------------
g1-micro | Regular | 0.2 | 600MB | Not set | US$3.88
g1-small | Preemptible | 0.5 | 1.70GB | Not set | US$5.11
g1-small | Regular | 0.5 | 1.70GB | Not set | US$13.80
n1-standard | Regular | 1 | 3.75GB | 3 years | US$15.60
Custom | Regular | 1 | 1GB | 3 years | US$11.78
Custom | Regular | 1 | 2GB | 3 years | US$13.17
vCPU 是 Intel Xeon @ 2.3 GHz,Haswell 微架构。
此外,我们还需要估算出站流量(每月消耗的带宽)成本(对于组而不是单个虚拟机有用):
BW | Zone 1 | Zone 2 | Zone 3 | Zone 4 | Price
-----------------------------------------------------
70GB | 40GB | 15GB | 5GB | 10GB | US$9.42
80GB | 80GB | 30GB | 10GB | 20 GB | US$19.27
350GB | 200GB | 75GB | 25GB | 50 GB | US$48.82
700GB | 400GB | 150GB | 50GB | 100 GB | US$98.07
Zone 1: Americas/EMEA
Zone 2: Asia/Pacific
Zone 3: Australia
Zone 4: China
VM 规格
目前,我正在测试具有以下配置的虚拟机:
- 1 vCPU Inten Xeon @ 2.30GHz (Haswell)
- 1GB 内存
- 操作系统映像:cos-stable-71-11151-71-0
- 内核:ChromiumOS-4.14.74
- Kubernetes:1.11.5
- Docker:18.06.1
- 家族: cos-stable
- Docker 映像: quantumobject/docker-tor-exit-relay
- 启动脚本:
run -d -p 2222:22 -p 80:80 -p 9050:9050 -p 9001:9001 quantumobject/docker-tor-exit-relay
- VM 等级:常规
- 区域: us-central1
提示:去VPC 网络>防火墙并创建一个名为“allow-tor”的规则,并设置:
- 优先级:500(低于默认值 1000)
- Targets:指定目标标签
- 目标标签:allow-tor
- 协议和端口:指定协议和端口:“tcp:22,80,443,9001,9050”
创建虚拟机/模板时,请转到管理、安全、磁盘、网络、单独租赁, 选择联网,并设置标签您在防火墙设置中设置。
基准
另外,我在 g1-small 和自定义 1 GB RAM 1 vCPU 实例中运行了 openssl 基准测试(openssl speed aes
每个 cbc 持续 3 秒),得到了以下结果:
g1-小:
type 16 bytes 64 bytes 256 bytes 1024 bytes 8192 bytes 16384 bytes
aes-128 cbc 102714.85k 114937.26k 118729.12k 119713.45k 120548.01k 120684.54k
aes-192 cbc 87781.72k 96917.15k 99274.67k 100145.83k 100463.96k 100515.84k
aes-256 cbc 76597.38k 83198.89k 84709.38k 85080.02k 85516.29k 85859.83k
风俗:
aes-128 cbc 100811.34k 114144.42k 116054.50k 117985.42k 119586.42k
aes-192 cbc 85914.78k 95220.79k 98367.39k 98994.68k 99095.15k
aes-256 cbc 76171.38k 82969.05k 84497.50k 85145.08k 84728.69k
性能几乎相同,可能是因为与专用的 1 vCPU 相比,共享 vCPU 在需要的某些时刻会获得全部功率,但并非总是如此。
我的问题:
建议每个实例使用多少带宽?
在 GCP 中的一个负载均衡器后面运行一个或多个 Tor 中继/出口节点是否安全?不安全。运行在 24 小时或更短时间内关闭的可抢占节点是否安全/有用?(IP 地址分配是动态的,不能保证新节点使用相同的 IP)安全但无用。是g1-micro或者g1-小VM 规格足以运行性能不错的节点吗?定制的 1GB RAM VM 更便宜,功能更强大。
提前致谢。
答案1
运行多个可抢占节点以实现冗余并不是一个好计划。如果可抢占节点在同一个区域运行,则它们很可能会由于该区域需求的增加而同时关闭。
不同地区的可抢占节点不太可能同时关闭,但风险仍然存在,并且可能取决于其他 GCE 客户的行为,这完全超出了您的控制范围。
如果您关心可用性,请不要使用可抢占节点。它们适用于批处理,其中抢占不是什么大问题,您可以稍后再进行处理。
答案2
运行在 24 小时或更短时间内关闭的可抢占节点是否安全?(IP 地址分配是动态的,不能保证新节点使用相同的 IP)
安全吗?当然。但你永远不会看到任何到它们的流量。这里有一篇关于 Tor 如何审查新中继和出口节点的精彩文章:新中继的生命周期
基本上,任何新的中继在看到任何实际流量之前都要经过 60 多天的“测试”。我可以保证这是准确的,因为我已经运行 Tor 中继大约 2 年了。除非您的节点每次重新启动时都保留相同的 ID,否则您不太可能看到任何实际流量,如果您的节点无法证明其可靠性,它很可能会被置于食物链的较低位置。
此外,如果节点长时间离线,您可能必须重新等待这些时间。由于我搬家了,我的中继离线了 3 个月,我还没有看到流量恢复到以前的水平。
你可以通过查阅 Tor 的指标页面来了解 Tor 对你的中继的看法。例如,这是我的。
g1-small VM 规格足以运行高性能节点吗?
Tor 对高性能的理解与整个互联网不同。例如,我在一台相当老旧的 Intel NUC 上运行我的 Tor,该 NUC 配备了相当老旧的 Intel Celeron 处理器和可怜的 RAM,最高速度约为 70Mbps - 因为这就是 OpenSSL 能够通过 CPU 传输的全部速度。对于 Tor 中继(可能不是出口节点)来说,70Mbps 非常高。我想即使是基本的半现代小型 VM 也能超越它。