APT - 名稱解析錯誤中的臨時失敗
關於域名解析,我有一個非常煩人且令人困惑的問題,僅關注
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
檢查這個設置不同於全域作業系統,我不知道為什麼。但這就是解決方案!