需要网络连接的命令会有一定的延迟

需要网络连接的命令会有一定的延迟

问题:某些应用程序的互联网连接出现延迟。例如:

  • 在 Firefox 中,当我搜索某些内容或访问网站时,它首先会等待。每个网页都会发生这种情况。然后它会正常加载。但 Google Chrome 不会发生这种情况。

  • 类似地,当我运行apt install命令或任何类似命令时,它首先会等待,然后正常安装(或下载)它。

  • 类似地,当我运行一个pip install命令(python)时,它首先等待,然后正常进行。

命令等等也是如此git fetch。它们都等待大约 10-15 秒。

但有趣的是,Discord、MS Teams 等应用程序运行正常。

可能是什么问题呢?

我首先想到的是我的 DNS 设置。我检查了一下,发现它是手动设置的,而不是自动的。我想是某个应用程序更改了它。我将其设置为自动,然后注销并重新登录。但问题仍然存在。

编辑2:第一次尝试后,当我在同一个终端中再次运行命令时,命令运行正常(快速)。

编辑1:在 Firefox 中为 YouTube 添加网络开发人员标签(gif)。

在此处输入图片描述

编辑3: strace git fetch. 它在第 239 行等待:
read(5, "000e", 4) = 4

查看踪迹:https://pastebin.com/c9Kvn9f3

在此处输入图片描述

编辑4:YouTube 时间安排: 在此处输入图片描述

编辑5:解析配置文件

nameserver 127.0.0.53
options edns0 trust-ad
search --

答案1

根据提供的输出,我猜想您的某个 DNS 服务器没有响应或返回了无效响应。我不确定状态blocked来自哪里,但 DNS 解析需要 15 秒方式太长。

这可能是您系统内的 DNS 服务器。由于您没有指定 Ubuntu 版本,因此这可能是 dnsmasq 或 systemd-resolved。检查这一点的一个简单方法是完全绕过它。

将 的内容替换/etc/resolv.conf为以下内容:

nameserver 1.1.1.1
nameserver 1.0.0.1

然后重试。请注意,这不是永久性的修复,因为/etc/resolv.conf很可能(再次强调,取决于 Ubuntu 版本)会被上述服务之一更改。

此问题也可能是由您的某个上游 DNS 服务器未响应(或给出无效响应)引起的。要测试此问题,请在您的配置中使用上面提到的名称服务器。它们应该可以正常工作。

相关内容