亚马逊EC2实例无法解析主机名

11
我有一批亚马逊EC2实例。今天,出于我无法确定的原因,其中三个实例无法解析特定的URL。当我尝试使用“curl ”时,这三个实例会显示“curl:(6)无法解析主机”,而所有其他实例都能够解析该URL并返回正确的数据。仅限于特定的URL - 所有其他URL均正常工作。
这是什么原因造成的?我没有更改任何实例上的内容,所以不是我的问题。我该如何找出发生了什么?

刚刚也发生在我身上了,/etc/hosts看起来没问题,而且顺便说一句curl 127.0.0.1也出现了同样的错误,所以不能是/etc/hosts或resolv.conf的问题。当我启动一个占用大量内存的进程时,它就会发生,并使实例变得超级缓慢。一旦该进程被杀死,实例就恢复正常,curl开始工作,所以这是一些AWS的意外情况。 - milan
9个回答

11
我在启用该服务后成功解决了它:
sudo systemctl enable --now systemd-resolved.service

谢谢!也解决了我的问题。 - Nathan Lima
“--now” 是必要的,因为它意味着在启用服务后立即启动服务。仅启用是不够的,还需要启动服务。 - Felix Htoo

6

检查并比较运行正常和不正常主机的/etc/resolv.conf(适用于Linux实例)。以下是我Linux实例的信息:

# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
#     DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
nameserver 10.0.0.2
search us-west-2.compute.internal

对于Windows实例,请检查并比较工作和非工作主机之间的DNS条目的ipconfig /all命令输出。以下是来自我的Windows实例的信息:

Windows IP Configuration

   Host Name . . . . . . . . . . . . : WIN-************
   Primary Dns Suffix  . . . . . . . :
   Node Type . . . . . . . . . . . . : Hybrid
   IP Routing Enabled. . . . . . . . : No
   WINS Proxy Enabled. . . . . . . . : No
   DNS Suffix Search List. . . . . . : us-west-2.ec2-utilities.amazonaws.com
                                       ec2.internal
                                       us-east-1.ec2-utilities.amazonaws.com
                                       compute-1.internal
                                       us-west-2.compute.internal

Ethernet adapter Local Area Connection:

   Connection-specific DNS Suffix  . : us-west-2.compute.internal
   Description . . . . . . . . . . . : Citrix PV Ethernet Adapter #0
   Physical Address. . . . . . . . . : 02-E6-AB-83-C6-8A
   DHCP Enabled. . . . . . . . . . . : Yes
   Autoconfiguration Enabled . . . . : Yes
   IPv4 Address. . . . . . . . . . . : 10.0.0.251(Preferred)
   Subnet Mask . . . . . . . . . . . : 255.255.255.0
   Lease Obtained. . . . . . . . . . : Friday, March 21, 2014 11:36:17 AM
   Lease Expires . . . . . . . . . . : Tuesday, March 25, 2014 5:07:59 AM
   Default Gateway . . . . . . . . . : 10.0.0.1
   DHCP Server . . . . . . . . . . . : 10.0.0.1
   DNS Servers . . . . . . . . . . . : 10.0.0.2
   NetBIOS over Tcpip. . . . . . . . : Disabled

5

如果您没有使用默认的VPC或VPC向导创建的VPC,则需要确保启用DNS主机名DNS解析选项。


3
我也遇到了同样的问题。可能是因为磁盘空间满了,导致/etc/resolve.conf文件被清空,然后就无法解析主机。
这个解决方案对我有效。
清理已满的空间。
从同一VPC的工作EC2实例更新resolve.conf

1
以下是需要翻译的内容:

这里是我核实事项的清单。您是否百分之百确定没有任何人/任何事物更改了以下内容:

  • 实例上的DNS设置?(使用dig检查名称解析是否正常)
  • 运行实例的子网中的NACL规则?
  • 附加到您的实例的SG的安全组规则?

Seb


0

请确保 VPC 启用了以下配置

DNS 解析:已启用

DNS 主机名:已启用

同时,确保正确设置了附加到 VPC 的 DHCP 选项。


0
对于Amazon Linux,安装某些二进制文件需要静态链接gclib,这会导致某些软件包的名称解析丢失。在我的情况下是ffmpeg
我通过安装nscd来解决这个问题:
yum update -y
yum install nscd -y
service nscd start

0

这个答案很可能会解决您的问题,就像解决我的问题一样。您必须修复您的hosts文件。

127.0.0.1    localhost.localdomain localhost
127.0.1.1    my-machine

或者

127.0.0.1    localhost
127.0.1.1    my-machine

其中my-machine是出现在错误信息结尾处的主机名。
(例如,我的是domX-A2-33-D9-CB-F4-A8

请不要忘记在更改hosts文件后从管理控制台重新启动实例。;)


1
这将如何解决问题?127.0.0.1是环回地址,无法从外部访问。我试图从外部机器连接到服务器,你是说亚马逊在某种程度上使用本地主机来生成DNS条目吗? - Benubird
你需要同时使用localhost 127.0.0.1和127.0.1.1机器名称,就像“主机不可达”错误中所述。我不知道背后的技术原理,只知道这对我有效。 ;) - tony gil

0

重新安装resolvconf后它就可以工作了。

sudo apt-get install --reinstall resolvconf

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接