小编Cod*_*lan的帖子

使用 /etc/hosts 条目联系本地主机上的服务时出现长时间延迟

我的本地机器上运行着一个 Web 服务器,当我使用localhost地址对它执行cURL 请求时,它执行得非常快。但是,当我添加 /etc/hosts 之类的

127.0.0.1 test.local

然后执行相同的 cURL 请求:

curl -I http://test.local:3002/images/logo.png

它延迟了 2-3 秒。localhost再次将 cURL 请求改回不会产生延迟。

这是每次都可以重现的。

我试过在下面运行慢速请求dtruss,看看是否能找到导致延迟的系统调用。没有什么异常表现出来。

我试过通过netcat它只是返回来制作一个虚拟服务,HTTP/1.0 200 OK所以我可以保证问题不是真的由于我的网络服务器造成的。同样,没有区别:localhost快如您所愿,但会test.local延迟。

在这一点上,我认为存在某种 DNS 问题。也就是说,/etc/hosts不是首先被咨询,也就是说,我的上游 DNS 正在被检查,失败了,然后/etc/hosts正在被咨询,最终有效。

这可能吗?被OS X Lion以某种方式咨询我/etc/hosts的解析器链以后呢?

networking osx-lion

5
推荐指数
2
解决办法
1277
查看次数

标签 统计

networking ×1

osx-lion ×1