我在 EC2 上的 Ubuntu 10.10 实例上运行的站点访问时遇到了一些奇怪的 DNS/网络问题。我在单个 LAMP 堆栈上托管了 6 个站点,这些站点已经顺利运行了一个月左右,到目前为止,当我尝试在朋友家的新网络内访问这些站点时,都没有遇到任何问题,因为我的 ISP 已关闭。我没有做任何更改,但突然我无法通过 HTTP 从我的 Mac 访问我的站点,尽管我的手机通过 3G 可以正常接收 DNS,所以这看起来是我所在网络的属性,而外部一切正常。
我将这 2 个域(加上另外 4 个域)全部映射到同一个 Apache 实例,并为每个域设置一个 VHost:
- www.electrichummingbird.com
- www.comparetheotter.com
我有一个默认的 VHost,我可以看到它正在工作,所以我知道 Apache 和实例已经启动:
http://ec2-46-137-25-238.eu-west-1.compute.amazonaws.com
然而,当我访问我的任何域名时(在 3 个浏览器中,清除缓存),它们都会超时,当我从本地机器上对 www.comparetheotter.com(或任何其他网站)执行 nslookup 时,我得到了
;;连接超时;无法访问服务器
只是为了检查一下对我来说显而易见的回应:
- 我可以通过 SSH 进入我的盒子并尝试重新启动 Apache
- 我只使用 CNAME,DNS 中没有 A 记录
- 在注意到此问题之前,我没有更改任何 DNS、EC2 或 LAMP 设置
- 所有其他网站都运行正常,这就是为什么我认为这是我的 EC2 托管网站的属性 - 我没有运行任何本地 DNS mod 服务(XAMPP 已关闭)并且我重新启动了我的 Mac
如果有人能帮助我了解我做错了什么,我将不胜感激。非常感谢!
编辑 - 感谢@user48838 和 @ccame,这两个回复都非常有用。我现在知道这是 DNS 问题,但 EC2 使问题更加严重,因为亚马逊会定期更新其 DNS,由于@user48838 提到的问题,更新频率可能比平时更高。
nslookup 给出了有趣的发现——只有某些外部网络能够找到我的服务器:
1.)-本地-确定
nslookup www.kodental.co.uk
服务器:192.168.1.254
地址:192.168.1.254#53 非权威答案:
www.kodental.co.uk 规范名称 = ec2-46-137-25-238.eu-west-1.compute.amazonaws.com。
名称:ec2-46-137-25-238.eu-west-1.compute.amazonaws.com
地址:46.137.25.238
2.) – 其他远程网络 – 失败
nslookup www.kodental.co.uk 4.2.2.1
服务器:4.2.2.1
地址:4.2.2.1#53** 服务器找不到 www.kodental.co.uk:NXDOMAIN
3.) - 按照建议使用 Google - 确定
nslookup www.kodental.co.uk 8.8.8.8 服务器:8.8.8.8
地址:8.8.8.8#53
非权威答案:
www.kodental.co.uk 规范名称 = ec2-46-137-25-238.eu-west-1.compute.amazonaws.com。
名称:ec2-46-137-25-238.eu-west-1.compute.amazonaws.com
地址:46.137.25.238
这解决了问题本身,但并未说明如何修复。任何有关我(和其他人)可以做什么来修复此问题的建议都将不胜感激 :)
注意:另外,我在英国使用 FastHosts 提供 DNS。我通过 Web 管理界面登录并修改 A 和 MX 记录等设置,但无法修改 DNS 的 TTL
答案1
从这里和你的 iPhone 来看,一切运行正常,同意这可能是你当前所处的网络的问题,而不是亚马逊服务器的问题。
感觉就像您本地网络上的 DNS 服务器没有转发请求,请尝试将您的 NIC 设置为使用 8.8.8.8 和 8.8.4.4(google 公共 dns 服务器)作为您机器上的 dns 服务器,看看网站是否突然开始再次工作。
请回复结果,我会看看是否可以提供更多帮助。