You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将谷歌云虚拟机绑定子域名并通过Node.js客户端创建A记录

前置准备工作
  • 目前Google Domains没有公开的DNS记录操作API,所以需要先将abc.com的DNS托管转移到Google Cloud DNS:在Google Cloud控制台创建Cloud DNS公共托管区,域名为abc.com,创建完成后把控制台给出的4个NS记录值,到Google Domains的域名管理后台替换掉默认的DNS服务器
  • 启用Google Cloud DNS API:在Google Cloud控制台的API和服务页面搜索「Cloud DNS API」,点击启用
  • 生成身份验证密钥:在IAM与管理的服务账号页面,创建一个拥有DNS Administrator权限的服务账号,导出JSON格式的密钥文件,保存到你的Node.js项目根目录,命名为service-account-key.json
  • 安装Node.js客户端库:在项目目录下执行命令npm install @google-cloud/dns
Node.js 创建A记录代码
const { DNS } = require('@google-cloud/dns');

// 初始化DNS客户端,替换为你自己的谷歌云项目ID
const dns = new DNS({
  projectId: '你的谷歌云项目ID',
  keyFilename: './service-account-key.json'
});

// 配置参数
const ZONE_NAME = '你的Cloud DNS托管区名称'; // 创建托管区时自定义的名称,比如abc-com-zone
const DNS_NAME = 'first.abc.com.'; // 注意末尾必须加英文句号,这是DNS记录标准格式要求
const TARGET_IP = '244.168.0.221';
const TTL = 300; // 缓存时间,单位为秒,此处设置为5分钟

async function createARecord() {
  try {
    const zone = dns.zone(ZONE_NAME);
    // 构建A记录配置
    const record = zone.record('a', {
      name: DNS_NAME,
      ttl: TTL,
      data: TARGET_IP
    });

    // 提交记录新增请求
    await zone.addRecords(record);
    console.log(`A记录 ${DNS_NAME} -> ${TARGET_IP} 创建成功`);
  } catch (error) {
    console.error('创建A记录失败:', error.message);
  }
}

createARecord();
注意事项
  • 如果之前已经存在first.abc.com的A记录,需要先删除旧记录再创建新记录,避免冲突报错
  • 记录创建完成后全球DNS服务器同步需要数分钟到数十分钟不等,可通过nslookup first.abc.com命令验证是否生效

内容的提问来源于stack exchange,提问作者SHARON XAVIER

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 00:24:03