mcpField
H
hetzner-cloud

hetzner-cloud

github.com/laguagu云与 DevOps70113 次安装2 天前更新
代码仓库

关于 hetzner-cloud

通过已安装的 hcloud CLI 操作 Hetzner Cloud 资源的技能,面向开发者和运维人员,指导资源发现、谨慎变更与验证,并关注账户上下文、网络行为和破坏性操作。

主要功能

  1. 01查询当前资源选项与价格
  2. 02管理认证和项目上下文
  3. 03创建资源前检查依赖项
  4. 04了解防火墙与 DNS 替换行为
  5. 05验证资源状态和连通性
  6. 06处理删除与恢复注意事项

适用场景

  1. 01检查可用服务器类型与位置
  2. 02安全创建或修改云资源
  3. 03防火墙变更后诊断连通性
  4. 04删除服务器前规划恢复方案

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/laguagu/claude-code-nextjs-skills --skill hetzner-cloud

安装后在 Claude Code 中输入/hetzner-cloud确认已加载。

详细介绍

Hetzner Cloud

使用已安装的 hcloud CLI,并通过其 --help/JSON 输出获取当前的资源类型、位置、标志和价格。此处涵盖该 CLI 支持的 Cloud/DNS/Storage Box API;专用服务器和拍卖请使用 Hetzner Robot。

身份验证与发现

使用已授权项目的现有上下文或 HCLOUD_TOKEN。环境文件中的令牌不会自动导出。创建上下文通常会提示输入;hcloud context create --token-from-env <name> 会使用进程令牌,无需提示。不要将令牌放入命令参数或日志中。

写入前确认项目/上下文。通过当前 CLI/API 数据发现服务器类型、系统映像、架构、位置/网络区域和价格(hcloud server-type list、hcloud location list、hcloud image list --type system --architecture arm,以及用于查看整个项目的 hcloud all list)。不要引用记忆中的服务器规格或价格。

依赖项与验证

创建服务器前,必须确保引用的 SSH 密钥/防火墙/网络已存在。检查拟议的防火墙变更是否符合当前规则,并保留可用的管理路径。firewall replace-rules --rules-file 会替换整套规则,因此未列出的规则会消失。zone import-zonefile --zonefile 同样会替换所有 Zone RRSet,因此未列出的记录会消失。

Cloud Firewalls 目前无法保护私有 Network 流量或 Load Balancer。必要时使用主机/应用层控制。通过新建连接验证规则变更;现有连接在更新后仍会保持。

将服务器状态、网络可达性和应用健康状况视为不同的检查项。变更后读取 API 操作结果和资源状态;从实际调用方验证预期服务。

值得记住的注意事项

  • 回收再利用的 IP 可能触发 SSH 的主机密钥已更改警告。通过可信控制台/渠道验证新指纹后,再更新 known_hosts;单靠 ssh-keyscan 无法确认身份。
  • 服务器和 Primary IP 自 2026-07-01 起不再具有 datacenter 请求/响应属性。CLI 的 server create --datacenter 已移除;请使用 --location,并通过 hcloud server-type describe <type> -o json 检查服务器类型在各位置的可用性和价格。
  • Volume 的位置固定;位于其他位置的服务器无法挂载它们。私有网络可跨越同一网络区域内的多个位置,但不能跨网络区域。
  • DNS 区域只有在注册商将其委派给正确的名称服务器后才会生效。排查记录问题前,请先检查委派情况。
  • 删除会立即生效。确认资源 ID 和请求的破坏性操作范围;先确保数据可恢复。自动备份会随服务器一起删除;快照则会保留。如果需要恢复,请在删除前创建 Snapshot,或将备份转换为 Snapshot。服务器快照/备份不包含已挂载的 Volume;这些 Volume 需要单独备份。请参阅快照范围。已分配的 Primary/Floating IP 无法删除;请先取消分配。
  • status: running 并不能证明网络可达。当多个原本开放的端口都超时(包括 SSH 对 0.0.0.0/0 开放时),或账户下所有服务器同时失效时,请检查 hcloud server describe <srv> -o json | jq '.public_net | {v4:.ipv4.blocked, v6:.ipv6.blocked}',确认是否存在服务提供商封锁(滥用报告或未付款账单)。这些症状本身不能证明存在封锁;服务提供商层面的封锁需要联系 Hetzner 支持,而不是修复应用防火墙。
  • 防火墙 JSON 必须符合 API 架构。source_ips 是字符串数组;PowerShell 序列化需要设置足够的 JSON 深度。结构错误会导致整个文件被拒绝,并保留之前的规则;请验证返回的/当前生效的规则。

来源

评论

支持 Markdown