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

如何在AWS中为指定VPC内的EC2实例配置自定义私有DNS

解决EC2实例自定义私有域名显示与解析问题

嘿,我明白你现在的困惑——已经做了不少配置,但EC2控制台里的私有DNS还是默认的格式,不过别担心,咱们一步步来搞定,既保留R53的解析能力,又能让实例顺畅用上自定义的example.org域名。

首先得明确一个关键点:EC2控制台里的「私有DNS」字段是AWS内置的内部标识,没法直接改成自定义域名,但这完全不影响咱们实际使用自定义域名做解析和主机名配置,下面是具体操作步骤:

1. 确保DHCP选项集已正确关联到目标VPC

你已经创建了包含domain-name=example.org和domain-name-servers=AmazonProvidedDNS的DHCP选项集,但一定要确认它已经绑定到你的目标VPC:

  • 打开VPC控制台,进入「DHCP选项集」页面
  • 选中你创建的自定义DHCP选项集
  • 点击顶部的「操作」→「关联VPC」,选择你的目标VPC完成绑定

2. 在R53私有区域添加必要的DNS记录

为了让自定义域名能正确解析到EC2实例,需要在example.org私有区域添加对应记录:

  • 打开Route 53控制台,进入你的example.org私有区域
  • 添加A记录:比如设置记录名为web-server(或你想要的任意主机名),值填实例的私有IP,TTL保持默认即可
  • (可选)如果需要反向解析(从IP查询自定义域名),可以添加PTR记录,指向你的自定义域名

3. 修改EC2实例的主机名配置(让实例自身识别自定义域名)

如果希望实例的系统主机名显示为xxx.example.org,可以修改实例内部的配置:

对于Amazon Linux 2/2023:

# 编辑hostname文件,替换成你的自定义主机名
sudo echo "web-server.example.org" > /etc/hostname
# 应用主机名修改
sudo hostnamectl set-hostname web-server.example.org
# 重启实例让配置完全生效(也可以重新连接会话验证)
sudo reboot

对于Ubuntu/Debian:

# 编辑hostname文件
sudo nano /etc/hostname
# 替换内容为web-server.example.org,保存退出
# 编辑hosts文件,添加对应映射
sudo nano /etc/hosts
# 添加一行:你的私有IP  web-server.example.org  web-server
# 应用修改
sudo hostname web-server.example.org
# 重启实例
sudo reboot

4. 验证配置是否生效

完成上述步骤后,登录实例验证:

  • 运行hostname命令,应该显示你的自定义域名web-server.example.org
  • 运行nslookup web-server.example.org,应该返回实例的私有IP
  • 运行nslookup ip-xxx-xxx-xxx-xxx.eu-central-1.compute.internal,依然能正常解析到私有IP(因为我们保留了AmazonProvidedDNS,默认域的解析不受影响)
  • 查看/etc/resolv.conf,应该看到search example.org eu-central-1.compute.internal,这意味着DNS查询会优先匹配example.org域,同时兼容默认域

总结一下:控制台的私有DNS是AWS的默认标识,不用纠结它的显示;只要DHCP选项集绑定正确、R53记录配置到位、实例主机名修改完成,就能完美实现自定义域名的使用,同时保留R53的DNS解析能力。

内容的提问来源于stack exchange,提问作者Ankit Singh

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.13 09:05:09