跳到主要内容
CivoCloudManager

Civo DNS 和域名,在一个 Mac 窗口里改。

把域名指向 Civo 的 nameserver,之后把这个 zone 放在原生应用里管,而不是一个浏览器标签页。

Civo 为你在别处注册的域名托管 DNS。配置很短:在注册商那边改 nameserver,在 Civo 里创建域名,然后加记录。真正难受的是之后的维护,因为需要动手的那一刻通常是某个尴尬时间点的证书校验,而你正在一个网页控制台里点到第三层,试着把一个 TXT 值粘对。CivoCloudManager 管的是同一个 zone、同一套 Civo REST API v2,只不过那个窗口已经开着了。

把域名指向 Civo,从头到尾

  1. 01

    域名在别处注册

    Civo 不卖域名注册。它自己的文档写得很清楚:DNS 服务纯粹用来托管 zone。域名留在你买它的那家注册商,搬走的只有 nameserver 委派。

  2. 02

    把 nameserver 设成 ns0.civo.com 和 ns1.civo.com

    在注册商的控制面板里,把当前的 nameserver 换成 ns0.civo.comns1.civo.com。这两个主机名就是 Civo 文档里写的。改动多久生效,由旧委派的 TTL 和你的注册商决定,不由 Civo 决定,所以下面加的东西要过一阵子外界才看得到。

  3. 03

    在 Civo 里创建域名,让 zone 存在

    光把 nameserver 委派过去没有用,Civo 得有一个 zone 来应答。在 CivoCloudManager 里这是 Domains 视图:工具栏上的加号创建域名。应用把它 POST 到 Civo REST API v2 的 /dns 端点。域名是账户级的,不绑定某个区域,所以你在初始设置时选的区域不会把一个 zone 圈起来。

  4. 04

    添加记录

    在列表里展开一个域名,它的记录就出现在下面,每条显示类型、名称、值和 TTL。Add Record 打开一个编辑器,里面有类型选择器、名称输入框(www、mail,顶点用 @)、值输入框、初始为 600 的 TTL,以及只在你选 MX 或 SRV 时才出现的优先级字段。

  5. 05

    对着 API 验证,别只对着你的解析器

    在应用里重新加载域名,确认 Civo 存下来的就是你发过去的。如果之后查询还是失败,原因通常是委派或缓存,而不是记录写错了。应用的 API Health 视图一屏就告诉你 Civo 的 DNS 端点到底还应不应答,在你开始猜之前,先把 Civo 的问题和解析器的问题分开。

应用能写哪些记录类型

类型选择器提供 A、AAAA、CNAME、MX、TXT、SRV 和 NS。只有 MX 和 SRV 会问优先级,因为带优先级的就这两种。TTL 预填 600,这也是 Civo 自己文档里的默认值。Civo 的 CLI 文档只点名了 A、CNAME、TXT、SRV 和 MX,所以你写 AAAA 或 NS 记录时,读一下应用回显给你的响应,别默认它已经落下了。删除记录是故意做慢的:确认面板要求你把记录标签一字不差地敲一遍,删除按钮才会变成可用。

证书校验的时候,原生编辑器为什么更好用

一次 ACME DNS-01 校验会给你一长串随机字符和一个很短的窗口。在应用里,域名就地展开,已有记录在你操作时一直看得见,对某条记录选 Edit 会打开一个已经填好当前类型、名称、值和 TTL 的面板,所以改一个 TXT 值就是选中、粘贴、保存。没有页面跳走,没有重新加载,你正在比对的那条记录还在屏幕上。每次保存都把页面重置一遍的网页表单,恰好消耗掉你那一刻最缺的东西:注意力。

反向 DNS 在实例上,不在 zone 里

反向 DNS 是 Civo 一个文档很薄、但确实存在的功能,而且它根本不属于 DNS zone。它是实例的一个属性,所以在实例详情页里设置:Reverse DNS 那一行要么显示当前主机名,要么显示 Not set,点一下这一行就变成输入框。保存会写入实例上的 reverse_dns 字段,改动会带时间戳记进应用本地的活动日志。这对任何要发邮件的东西最要紧,因为收信服务器通常会检查一个 IP 能不能反查回一个说得通的主机名。

它不是什么:它不替代 external-dns

external-dns 是一个 Kubernetes 控制器,内置 Civo provider,用 CIVO_TOKEN 认证,根据 Service 和 Ingress 自动创建记录。CivoCloudManager 这些事一件都不做。它没有集群侧组件,不对任何东西做出反应,也永远不会因为出现了一个 Service 就去建一条记录。如果你的记录应该跟着工作负载走,那就跑 external-dns,而且继续跑。只要你别去碰 external-dns 管理的那些名称,两者在同一个域名上共存不会冲突:人管的记录用应用,比如顶点、邮件、验证字符串和委派,其余的交给控制器。

记录不生效时,先排除 API

DNS 端点是应用在 Account 版块里健康检查的十六个 Civo REST 端点之一。每个端点依次调用,十秒超时,你会看到 HTTP 状态码加上以毫秒计的往返时间,低于 200 ms 绿色,低于 500 ms 橙色,更高红色。标题栏把这一轮总结成 All Systems Operational,或者一个不可用端点的计数。这是件小事,但能省下一类很具体的浪费:刚写的记录没出现时,你可以先看看 Civo 到底有没有接受这次写入,再去刷缓存、怪解析器。

凭据放在哪里

这一切由一把 Civo API key 驱动,它存在 macOS Keychain 里,应用在显示它之前要先过 Touch ID。Mac 和 Civo 之间没有发行方的服务器,也没有遥测。应用是沙盒化的,只申请四项权限,需要 macOS 15 或更新版本,Apple silicon 或 Intel 都可以;源代码在 github.com/marcelrgberger/civo-cloud-manager,比起看一段描述,你可以直接读请求代码。

改一条 Civo 记录的三种方式

与其说是竞争关系,不如说是不同的活。老实的划分是:其中一个为自动化而生,另外两个为人而生。

能力 Civo 控制台(浏览器)external-dnsCivoCloudManager
手动改一条记录 支持不是它的用途支持,编辑器已预填
根据 Kubernetes Service 和 Ingress 自动创建记录 不支持支持,这就是它的意义不支持,以后也不会
需要一个运行中的 Kubernetes 集群 不需要需要不需要
实例上的反向 DNS 支持不支持支持,在实例上就地编辑
API key 存在哪里 浏览器会话集群里的 Kubernetes SecretmacOS Keychain,查看要过 Touch ID
Civo API 端点的健康状况 不支持不支持十六个端点,带状态和延迟

Civo DNS 问题,逐个回答

怎么把域名指向 Civo?
在注册商那里把 nameserver 改成 ns0.civo.comns1.civo.com,然后在 Civo 里创建这个域名,让它有一个 zone 来应答。Civo 托管 DNS,但不做域名注册,域名本身还留在你买它的地方。两半都不能少:有委派没有 zone,查询什么也拿不到;有 zone 没有委派,则根本没人来问它。
CivoCloudManager 里能编辑哪些 DNS 记录类型?
类型选择器提供 A、AAAA、CNAME、MX、TXT、SRV 和 NS。优先级字段只在 MX 和 SRV 出现,TTL 预填 600,也就是 Civo 文档里的默认值。Civo 自己的 CLI 文档列出的是 A、CNAME、TXT、SRV 和 MX,所以写下第一条 AAAA 或 NS 记录之后,检查一下响应。
不用浏览器也能改 Civo DNS 吗?
可以。Civo CLI 在终端里做这件事,CivoCloudManager 在原生 macOS 窗口里做,用的是同一套 Civo REST API v2。在应用里,域名就地展开显示记录,Edit 打开一个预填当前值的面板,删除则需要敲一遍记录标签来确认。
CivoCloudManager 会取代 external-dns 吗?
不会。external-dns 是一个 Kubernetes 控制器,内置 Civo provider,随着 Service 和 Ingress 的变化自动创建和删除记录。CivoCloudManager 没有集群侧组件,自己不会创建任何东西。在同一个域名上两个一起跑就行:控制器管它负责的那些名称,剩下的归你。
反向 DNS 是干什么的,在 Civo 上哪里设置?
反向 DNS 把实例 IP 映射回一个主机名,邮件接收方在收信之前经常会检查它。在 Civo 上它是实例的属性,不是 zone 里的一条记录,所以在 CivoCloudManager 里到实例详情页设置:点 Reverse DNS 那一行,输入主机名,保存。

把 zone 放在你手已经在的地方。

CivoCloudManager 在 Mac App Store 一次性买断,从首次启动起有七天完整功能,之后菜单栏防火墙档位依然免费。

在 Mac App Store 下载

需要 macOS 15 (Sequoia) 或更新版本。

返回 CivoCloudManager 概览