我有一台运行 Debian 11 的服务器,分别有两个 1Gbps 和 10Gbps 上行链路。运行任何与网络相关的命令时,我观察到命令执行开始时的延迟非常高。
例如,如果我运行命令curl -I google.com
,它会挂起几秒钟,然后输出结果:
$ curl -I google.com
*** hangs for about 5 seconds ***
HTTP/1.1 301 Moved Permanently
Location: http://www.google.com/
Content-Type: text/html; charset=UTF-8
Date: Wed, 13 Apr 2022 16:20:09 GMT
Expires: Fri, 13 May 2022 16:20:09 GMT
Cache-Control: public, max-age=2592000
Server: gws
Content-Length: 219
X-XSS-Protection: 0
X-Frame-Options: SAMEORIGIN
也有类似的问题apt
:
$ sudo apt update
0% [Working] # <--- hangs for 2-3 seconds
Hit:1 https://mirror.yandex.ru/debian bullseye InRelease
...
同时,互联网连接速度尚可:
$ wget http://tb.ip4market.ru/file1gb.bin
--2022-04-13 19:11:28-- http://tb.ip4market.ru/file1gb.bin
Resolving tb.ip4market.ru (tb.ip4market.ru)... 193.0.203.203
Connecting to tb.ip4market.ru (tb.ip4market.ru)|193.0.203.203|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 1073741824 (1.0G) [application/octet-stream]
Saving to: ‘file1gb.bin’
file1gb.bin 100%[==================================>] 1.00G 17.0MB/s in 49s
2022-04-13 19:12:22 (21.1 MB/s) - ‘file1gb.bin’ saved [1073741824/1073741824]
在连接到同一交换机的其他服务器上,不存在此问题。
如何解决这个问题,或者至少如何确定这种奇怪行为的原因?
提前致谢。
答案1
我使用 systemd-networkd 进行静态网络配置。因此,我怀疑问题可能出在错误的 DNS 地址上,因此在配置文件 20-wan0.network(我在其中指定了 DNS 地址)中查找了错误。该文件中没有错误。后来,在提出问题并得到评论后,我检查了文件 /etc/resolv.conf 以防万一,发现第一个 DNS 地址中有一个拼写错误。该文件是在系统安装过程中创建的原始网络配置中留下的。当使用 systemd-netowrkd 和 systemd-resolved 时,应该将其替换为 /run/systemd/resolve/resolv.conf 的符号链接,我最终这样做了。