Debian

APT - 名稱解析錯誤中的臨時失敗

  • June 22, 2021

關於域名解析,我有一個非常煩人且令人困惑的問題,僅關注apt/apt-get實用程序。

當我嘗試apt update時,它給了我(抱歉法語)

root@myhostname:~# apt update
Err :1 http://ftp.igh.cnrs.fr/pub/os/linux/raspbian/raspbian buster InRelease
 Erreur temporaire de résolution de « ftp.igh.cnrs.fr »

測試與分析

  • 實際上,DNS 解析對於所有其他經過測試的資源都是可以的

    • nslookup ftp.igh.cnrs.fr給我
    Non-authoritative answer:
        ftp.igh.cnrs.fr canonical name = ftp4.igh.cnrs.fr.
        Name:   ftp4.igh.cnrs.fr
        Address: 193.50.6.155
    
    • ✔ 我也可以嘗試nslookup ftp.igh.cnrs.fr 8.8.8.8同樣的結果

注意:在這 2 個第一次測試中,我有一個奇怪的長時間響應延遲

  • dig ftp.igh.cnrs.fr給我同樣的結果
  • ✔ 我可以使用相同的 URL 成功執行wget或命令curl
root@myhostname:~# curl http://ftp.igh.cnrs.fr/pub/os/linux/raspbian/raspbian
<html>
<head><title>301 Moved Permanently</title></head>
<body bgcolor="white">
<center><h1>301 Moved Permanently</h1></center>
<hr><center>nginx</center>
</body>
</html>
 wget http://ftp.igh.cnrs.fr/pub/os/linux/raspbian/raspbian
--2021-06-17 12:56:26--  http://ftp.igh.cnrs.fr/pub/os/linux/raspbian/raspbian
Résolution de ftp.igh.cnrs.fr (ftp.igh.cnrs.fr)… 193.50.6.155
Connexion à ftp.igh.cnrs.fr (ftp.igh.cnrs.fr)|193.50.6.155|:80… connecté.
requête HTTP transmise, en attente de la réponse… 301 Moved Permanently
Emplacement : http://ftp.igh.cnrs.fr/pub/os/linux/raspbian/raspbian/ [suivant]
--2021-06-17 12:56:26--  http://ftp.igh.cnrs.fr/pub/os/linux/raspbian/raspbian/
Réutilisation de la connexion existante à ftp.igh.cnrs.fr:80.
requête HTTP transmise, en attente de la réponse… 200 OK
Taille : non indiqué [text/html]
Sauvegarde en : « raspbian »
  • ✔ 如果我嘗試任何網路命令,例如ssh,它會再次起作用

  • 下一步,我考慮了 APT 儲存庫本身可用(如果錯誤消息可能不可靠 - 你永遠不知道 ;-))

    • 嘗試使用其他 APT 儲存庫/etc/apt/sources.list會給出完全相同的錯誤結果。
  • 關於全域系統性能,我想知道慢速系統和 dns 解析失敗之間是否存在任何關係。

我也殺死了所有繁重的過程。(例如打開的網路瀏覽器)。

這裡top範例剩餘結果

1 root      20   0   34824   8304   6496 S   1,3   0,9   0:26.26 systemd
 8596 root      20   0   10292   2876   2380 S   1,0   0,3   0:06.02 top
  120 root      20   0   32600  11760  10732 S   0,7   1,3   0:08.62 systemd-journal
  742 root      20   0    8144   3016   2836 S   0,7   0,3   0:00.55 check-vpn
10878 root      20   0   10192   2792   2436 R   0,7   0,3   0:00.14 top
   12 root      20   0       0      0      0 I   0,3   0,0   0:02.68 rcu_sched
   13 root      rt   0       0      0      0 S   0,3   0,0   0:00.02 migration/0
  110 root       0 -20       0      0      0 I   0,3   0,0   0:00.19 kworker/3:2H-kblockd
  299 root      20   0       0      0      0 S   0,3   0,0   0:02.30 brcmf_wdog/mmc1
  380 message+  20   0    6664   3588   3084 S   0,3   0,4   0:10.36 dbus-daemon
  739 vnstat    20   0    2440    432    372 S   0,3   0,0   0:00.43 vnstatd
  761 root      20   0       0      0      0 I   0,3   0,0   0:03.51 kworker/u8:3-brcmf_wq/mmc1:0001:1
10624 root      20   0       0      0      0 I   0,3   0,0   0:00.29 kworker/0:1-events
10757 root      20   0       0      0      0 I   0,3   0,0   0:00.03 kworker/2:0-events
    2 root      20   0       0      0      0 S   0,0   0,0   0:00.01 kthreadd
    3 root       0 -20       0      0      0 I   0,0   0,0   0:00.00 rcu_gp
    4 root       0 -20       0      0      0 I   0,0   0,0   0:00.00 rcu_par_gp

我注意到這個清單上有一個反復出現的kworker過程。正常嗎?

但在全球範圍內,系統似乎並沒有太高負載

Tasks: 141 total,   1 running, 139 sleeping,   1 stopped,   0 zombie
%Cpu(s):  0,7 us,  1,0 sy,  0,0 ni, 98,1 id,  0,0 wa,  0,0 hi,  0,2 si,  0,0 st
MiB Mem :    872,7 total,    275,2 free,    123,7 used,    473,8 buff/cache
MiB Swap:    100,0 total,    100,0 free,      0,0 used.    679,3 avail Mem
  • 在全球範圍內,我沒有發現其他 dns 解析失敗的命令行或圖形工具。!❓

  • 全球行動

    • 我試圖重新啟動一些服務但沒有任何結果

    systemctl restart resolved

    systemctl restart systemd-resolved

    • ⛔ 即使我重新啟動網路,它也會失敗

    systemctl restart networking

    • ⛔ 即使我重新啟動系統,它也會失敗

DNS 配置文件

我檢查了以下文件:

  • /etc/resolv.conf
nameserver 8.8.8.8
option timeout:7
  • /etc/resolvconf/run/resolv.conf
nameserver 192.168.95.1
nameserver 127.0.0.53
search lan
  • /var/run/resolvconf/resolv.conf
# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
#     DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
nameserver 192.168.95.1
nameserver 127.0.0.53
search lan
  • /etc/network/interfaces
auto eth0
allow-hotplug eth0
iface eth0 inet dhcp

auto wlan0
allow-hotplug wlan0
iface wlan0 inet dhcp
    wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf

我還檢查了只有一個介面 eth0,具有靜態 IP。結果相同。

作業系統配置詳細資訊

  • 我正在執行 Debian 10.9。(帶有 raspbian 發行版)
  • 問題似乎在我的一半設備上隨機觸發(我有大約 100 台設備)

解決方法。

我發現解決此問題的唯一方法是重新安裝 resolvconf 服務

apt purge -y openresolv resolvconf
wget http://ftp.igh.cnrs.fr/pub/os/linux/raspbian/raspbian/pool/main/r/resolvconf/resolvconf_1.79_all.deb
dpkg -i resolvconf_1.79_all.deb
systemctl restart systemd-resolved.service
systemctl enable systemd-resolved.service

但這不可靠:每次重新啟動後我都必須這樣做。不好的方式…

知道我的系統出了什麼問題嗎?

在研究這種奇怪的情況時,我從講述權限的文章中獲得了靈感。初讀時,與我的問題無關。

無論如何,我已經檢查了“/etc/resolv.conf

一切看起來都不錯”的文件權限,除了一個特定點:是指向路徑/etc/resolv.conf的符號連結/opt/...

即使權限看起來正確,我也嘗試只複製文件而不是連結它。然後阿利路亞,它奏效了..

不要問我為什麼apt檢查這個設置不同於全域作業系統,我不知道為什麼。但這就是解決方案!

引用自:https://unix.stackexchange.com/questions/655343