跳转至

Hetzner Provider Guide

在 Hetzner Cloud 服务器上运行 osmedeus cloud 的分步指南,这是成本最低的供应商

web-ui-assets

Introduction Cloud

在 Hetzner Cloud 服务器上运行 osmedeus cloud 的分步指南。Hetzner 在所有支持的供应商中提供最低的每实例成本,非常适合大规模扫描。

Prerequisites

  • 一个 Hetzner Cloud 账户(https://console.hetzner.cloud
  • 一个 API 令牌
  • 一个 SSH 密钥对(本地 ~/.ssh/id_rsa~/.ssh/id_rsa.pub

获取您的 API 令牌

  1. 前往 Hetzner Cloud Console > 选择您的项目(或创建一个)
  2. Security > API Tokens > Generate API Token
  3. 将权限设置为 Read & Write
  4. 复制令牌(仅显示一次)

您也可以将其存储为环境变量:

export HETZNER_API_TOKEN="your-token-here"

Configuration

最小化设置

# 启用云功能
osmedeus config set cloud.enabled true

# 凭据
osmedeus cloud config set providers.hetzner.token ${HETZNER_API_TOKEN}
osmedeus cloud config set providers.hetzner.location hel1
osmedeus cloud config set providers.hetzner.server_type "cx23"  # 2 vCPU, 4GB RAM(当前代)
osmedeus cloud config set defaults.provider hetzner

# SSH
osmedeus cloud config set ssh.private_key_path ~/.ssh/id_rsa
osmedeus cloud config set ssh.public_key_path ~/.ssh/id_rsa.pub
osmedeus cloud config set ssh.user root

# 先清理设置脚本
osmedeus cloud config set setup.commands.clear ""

# Worker 设置
osmedeus cloud config set setup.commands.add "sudo apt-get update"
osmedeus cloud config set setup.commands.add "sudo apt-get install -y -qq curl git tmux unzip jq rsync"
osmedeus cloud config set setup.commands.add "curl -fsSL https://www.osmedeus.org/install.sh | bash"
osmedeus cloud config set setup.commands.add "osmedeus install base --preset"

服务器类型

Hetzner 的定价显著低于其他供应商:

服务器类型 vCPU RAM 磁盘 \$/小时 \$/月 最佳用途
cx22 2 4 GB 40 GB \~\$0.007 \~\$4.50 轻量扫描,单个目标
cx32 4 8 GB 80 GB \~\$0.013 \~\$8.50 通用扫描
cx42 8 16 GB 160 GB \~\$0.025 \~\$16.50 重型扫描,并行工具
cx52 16 32 GB 320 GB \~\$0.050 \~\$33.00 大规模操作
cpx21 3 4 GB 80 GB \~\$0.008 \~\$5.50 CPU 优化扫描
cpx31 4 8 GB 160 GB \~\$0.015 \~\$10.00 CPU 优化,更多 RAM
osmedeus cloud config set providers.hetzner.server_type cx32

位置

位置 代码 区域
Falkenstein fsn1 德国
Nuremberg nbg1 德国
Helsinki hel1 芬兰
Ashburn ash 美国东部
Hillsboro hil 美国西部
Singapore sin 亚洲
osmedeus cloud config set providers.hetzner.location fsn1

自定义镜像

使用预构建的快照以加快启动速度:

# 手动设置服务器并安装所有工具后:
# Hetzner Console > Servers > your-server > Snapshots > Create Snapshot
# 记下快照 ID

osmedeus cloud config set providers.hetzner.image 12345678

SSH 密钥(可选)

如果您在 Hetzner Cloud 中注册了 SSH 密钥:

# Hetzner Console > Security > SSH Keys > 记下密钥名称
osmedeus cloud config set providers.hetzner.ssh_key_name my-key-name

成本限制

osmedeus cloud config set limits.max_hourly_spend 0.50
osmedeus cloud config set limits.max_total_spend 5.00
osmedeus cloud config set limits.max_instances 20

Examples

快速域名侦察

osmedeus cloud run -f fast -t example.com --auto-destroy

成本:\~\$0.007(1 x cx22 x 1 小时)——不到 1 美分。

预算批量扫描

Hetzner 的低价格使其非常适合扫描大量目标:

# 20 个 worker 扫描 200 个目标,约 \$0.28
osmedeus cloud run \
  -f fast -T targets.txt --instances 20 \
  --sync-back --auto-destroy

成本:20 x \$0.007 x 2 小时 = \$0.28

自定义命令管道

osmedeus cloud run \
  --custom-cmd "subfinder -d {{Target}} -o /tmp/osm-custom/subs.txt" \
  --custom-cmd "cat /tmp/osm-custom/subs.txt | httpx -o /tmp/osm-custom/live.txt" \
  --custom-cmd "cat /tmp/osm-custom/live.txt | nuclei -o /tmp/osm-custom/nuclei.txt" \
  --sync-path "/tmp/osm-custom/" \
  -t example.com --auto-destroy

成本:\~\$0.007

大规模分布式 Nuclei

# 将 10,000 个 URL 分配到 10 个 Hetzner worker
osmedeus cloud run \
  --custom-cmd "cat {{Target}} | nuclei -o /tmp/osm-custom/results.txt" \
  --sync-path "/tmp/osm-custom/results.txt" \
  --sync-dest "./nuclei-hetzner" \
  -T urls.txt --instances 10 --auto-destroy

成本:10 x \$0.007 x 1 小时 = \$0.07

端口扫描

# 使用更大的实例进行 masscan(需要更多资源)
osmedeus cloud config set providers.hetzner.server_type cx32

osmedeus cloud run \
  --custom-cmd "masscan {{Target}} -p1-65535 --rate 10000 -oG /tmp/osm-custom/masscan.txt" \
  --custom-cmd "cat /tmp/osm-custom/masscan.txt | grep 'Host:' | awk '{print \$2\":\" \$5}' | sed 's|/.*||' > /tmp/osm-custom/open-ports.txt" \
  --sync-path "/tmp/osm-custom/" \
  -t 203.0.113.0/24 --auto-destroy

持久低成本实验室

# 创建 5 个 worker 并保持全天运行
osmedeus cloud create --provider hetzner -n 5

# 全天运行多次扫描
osmedeus cloud run -f fast -t target1.com --reuse
osmedeus cloud run --custom-cmd "nmap -sV {{Target}}" -t target2.com --reuse
osmedeus cloud run -f general -T targets.txt --reuse

# 一天结束时销毁
osmedeus cloud destroy all --force

成本:5 x \$0.007 x 8 小时 = \$0.28,5 台机器全天扫描。

基于欧盟的扫描

当需要从欧盟 IP 空间发起扫描时,Hetzner 的欧洲位置非常有用:

# 使用德国数据中心
osmedeus cloud config set providers.hetzner.location fsn1
osmedeus cloud run -f fast -t eu-target.com --auto-destroy

# 使用芬兰数据中心
osmedeus cloud config set providers.hetzner.location hel1
osmedeus cloud run -f fast -t nordic-target.com --auto-destroy

使用 cx42 的高性能

# 使用 8 vCPU / 16 GB RAM 实例进行重型并行扫描
osmedeus cloud config set providers.hetzner.server_type cx42

osmedeus cloud run \
  --custom-cmd "subfinder -d {{Target}} -all -o /tmp/osm-custom/subs.txt" \
  --custom-cmd "cat /tmp/osm-custom/subs.txt | httpx -td -threads 200 -o /tmp/osm-custom/live.txt" \
  --custom-cmd "cat /tmp/osm-custom/live.txt | nuclei -c 100 -o /tmp/osm-custom/nuclei.txt" \
  --custom-cmd "cat /tmp/osm-custom/live.txt | katana -d 3 -jc -o /tmp/osm-custom/crawl.txt" \
  --sync-path "/tmp/osm-custom/" \
  -t example.com --auto-destroy

成本:\~\$0.025 每小时

Cost Comparison

为什么 Hetzner 是批量扫描最便宜的选择:

场景 Hetzner (cx22) DigitalOcean (s-2vcpu-4gb) AWS (t3.medium)
1 实例 x 1 小时 \$0.007 \$0.022 \$0.042
5 实例 x 2 小时 \$0.07 \$0.22 \$0.42
10 实例 x 4 小时 \$0.28 \$0.89 \$1.66
20 实例 x 8 小时 \$1.12 \$3.57 \$6.66

对于相同规格,Hetzner 比 DigitalOcean 便宜约 3 倍,比 AWS 便宜约 6 倍。

Troubleshooting

"Unauthorized" 错误

您的 API 令牌无效或已过期。在 Hetzner Cloud Console 中生成一个新令牌。

osmedeus cloud config set providers.hetzner.token <new-token>

服务器类型不可用

某些服务器类型可能在某些位置不可用。尝试其他位置:

osmedeus cloud config set providers.hetzner.location nbg1

SSH 连接问题

Hetzner 服务器默认使用 root 用户:

osmedeus cloud config set ssh.user root

验证您的 SSH 密钥配置正确:

osmedeus cloud run --custom-cmd "whoami" -t test --verbose-setup

速率限制

Hetzner 的 API 有速率限制。如果一次性创建大量实例,可能会触发限制。请错开创建时间或联系 Hetzner 支持提高限制。

清理

# 列出所有基础设施
osmedeus cloud list

# 销毁特定实例
osmedeus cloud destroy <infra-id>

# 销毁所有实例
osmedeus cloud destroy all --force

# 如果不同步,直接检查 Hetzner Console:
# Console > Servers > 查找以 osmedeus- 为前缀的服务器

Best Practices

  1. 默认使用 cx22 —— 2 vCPU / 4 GB 对于大多数扫描来说足够,价格为 \$0.007/小时
  2. 水平扩展 —— 对于可并行化的工作负载,10 个 cx22 比 1 个 cx52 更便宜且更快
  3. 始终使用 --auto-destroy —— 即使价格为 \$0.007/小时,遗忘的实例也会累积成本
  4. 使用欧洲位置(fsn1, nbg1)以获得到 Hetzner 网络的最低延迟
  5. 预构建快照用于常用工具配置,以跳过设置时间
  6. 设置适度的成本限制 —— 即使 \$5.00 的 max_total_spend 在 Hetzner 定价下也能走很远