如何在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
相关产品推荐
相关产品推荐

