首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Mac慢速连接- mdns 4-5秒- bonjour慢速

Mac慢速连接- mdns 4-5秒- bonjour慢速
EN

Stack Overflow用户
提问于 2017-06-26 13:14:50
回答 1查看 1.8K关注 0票数 3

我终于要完蛋了。我已经在谷歌上搜索这个问题一个星期了。我尝试过故障排除我的Mac (10.12塞拉利昂)和我的域控制器(Windows 2016),我没有更接近解决我的问题。

我的问题是,当使用PHP的连接()函数时,需要大约5秒的时间才能得到响应。事情只是挂了5秒,然后我得到了一个成功的连接。复制它的确切命令(假设我的DC有一个IP地址为192.168.2.5):

$ldap = ldap_connect('ldap://192.168.2.5:389');

我不使用SSL或TLS。它只是一个简单的明文连接到一个DC,它的防火墙完全关闭。最后,我在我的DC上安装了Wireshark,以获得更多关于正在发生的事情的信息,我注意到了这一点:

No. | Time | Source | Destination | Protocol | Length | Info

1 | 327 | 192.168.2.108 | 224.0.0.251 | MDNS | 83 | Standard query 0x0000 A Ryans-MacBook-Pro.local, "QU" question

2 | 328 | 192.168.2.108 | 224.0.0.251 | MDNS | 83 | Standard query 0x0000 A Ryans-MacBook-Pro.local, "QM" question

3 | 331 | 192.168.2.108 | 224.0.0.251 | MDNS | 83 | Standard query 0x0000 A Ryans-MacBook-Pro.local, "QM" question

4 | 332 | 192.168.2.108 | 192.168.2.5 | TCP | 78 | 49860 > 389 [SYN] Seq=0 Win=65535 Len=0 MSS=1460 WS=32 TSval=371626102 TSecr=0 SACK_PERM=1

5 | 332 | 192.168.2.5 | 192.168.2.108 | TCP | 74 | 389 > 49860 [SYN, ACK] Seq=0 Ack=1 Win=8192 Len=0 MSS=1460 WS=256 SACK_PERM=1 TSval=2494847497 TSecr=371626102

6 | 332 | 192.168.2.108 | 192.168.2.5 | TCP | 66 | 49860 > 389 [ACK] Seq=1 Ack=1 Win=131744 Len=0 TSval=371626102 TSecr=2494847497

7 | 332 | 192.168.2.108 | 192.168.2.5 | LDAP | 96 | bindRequest(1) "ldap" simple

8 | 332 | 192.168.2.5 | 192.168.2.108 | LDAP | 88 | bindResponse(1) success

正如您所看到的,当我启动ldap_connect()函数时,我立即看到第一个数据包的时间为327秒(自运行Wireshark以来)。我看到3个mdns数据包,总共5秒。然后,在第四、第五和第六个数据包上,我看到了TCP的三方握手,然后它继续给我一个成功的ldap连接。因此,我看到的5秒钟的延迟是所有的mdns包还是苹果的Bonjour?现在,我不知道如何解决这个问题。

免责声明:我正在使用拉勒维尔瓦莱特,它使用dnsmasq。我不知道这是否导致了我的问题。我还没有卸载这个软件还没有找到。

编辑:,我已经排除了Laravel。我完全卸载了它,它仍然是一个问题。我也排除了拉勒维尔。我正在运行这个脚本,问题仍然存在:

代码语言:javascript
运行
复制
<?php

$start = microtime(true);

$ldap = ldap_connect('ldap://192.168.2.5:389');

$end = microtime(true);

echo $end - $start;

edit2:,好的,我已经进一步解决了这个问题。我在我的Mac上安装了Wireshark,并且注意到了下面的内容。

然后运行以下命令:➜ ~ scutil --dns DNS配置

代码语言:javascript
运行
复制
resolver #1
  search domain[0] : corp.[redacted].com
  nameserver[0] : 192.168.2.4
  nameserver[1] : 192.168.2.5
  if_index : 7 (en3)
  flags    : Request A records
  reach    : Reachable, Directly Reachable Address

resolver #2
  domain   : local
  options  : mdns
  timeout  : 5
  flags    : Request A records
  reach    : Not Reachable
  order    : 300000

这是我的主机名!我的主机名导致了5秒的延迟,试图使用多播DNS来解决它。为什么?.local是一个保留的域,为什么苹果会把它附加到我的主机名?

如您所见,它会自动追加.local

无论如何,我已经通过将127.0.0.1 Ryans-MacBook-Pro.local添加到/etc/hosts文件中来解决我的问题。不知什么原因它不在里面。

我的ldap_connect()现在是即时的,它应该是!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-06-26 16:36:33

确保主机名在/etc/hosts文件中,如下所示:

127.0.0.1 localhost Ryans-MacBook-Pro.local

把我的主机名换成你的吧。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44760633

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档