关于 hetzner-cloud
通过已安装的 hcloud CLI 操作 Hetzner Cloud 资源的技能,面向开发者和运维人员,指导资源发现、谨慎变更与验证,并关注账户上下文、网络行为和破坏性操作。
主要功能
- 01查询当前资源选项与价格
- 02管理认证和项目上下文
- 03创建资源前检查依赖项
- 04了解防火墙与 DNS 替换行为
- 05验证资源状态和连通性
- 06处理删除与恢复注意事项
适用场景
- 01检查可用服务器类型与位置
- 02安全创建或修改云资源
- 03防火墙变更后诊断连通性
- 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 深度。结构错误会导致整个文件被拒绝,并保留之前的规则;请验证返回的/当前生效的规则。
来源
- API 变更日志,了解重命名和移除的信息
- API 参考
- 产品文档
- CLI 手册/源代码