Raspberry - APT:未找到主机 - 无法更新 - DNS 解析问题

Raspberry - APT:未找到主机 - 无法更新 - DNS 解析问题

几周以来,我在更新许多 Raspberry /拉斯普比设备。

/etc/apt/sources.list当我使用apt-get update命令尝试过的任何镜像上,我都遇到了 DNS 解析问题。

root@rpi# 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 »
Lecture des listes de paquets... Fait
Construction de l'arbre des dépendances
Lecture des informations d'état... Fait
Tous les paquets sont à jour.
W: Impossible de récupérer http://ftp.igh.cnrs.fr/pub/os/linux/raspbian/raspbian/dists/buster/InRelease  Erreur temporaire de résolution de « ftp.igh.cnrs.fr »
W: Le téléchargement de quelques fichiers d'index a échoué, ils ont été ignorés, ou les anciens ont été utilisés à la place.

它总是告诉我有一个暂时故障解决需要主机。(抱歉,屏幕截图中的法语版本)

分析与尝试

以下是我尝试过的设置,但结果总是不好

  • 在不同的 FTP 和 HTTP 镜像 URL 上
  • 来自不同的互联网连接(检查我的堆栈上是否存在隐藏的代理)
  • 不同的 DNS IP(Google、OpenDNS、互联网提供商)/etc/resolv.conf
    # Google DNS
    nameserver 8.8.8.8 
    
  • 我尝试禁用 wifi 或以太网,但都失败了
  • 尝试强制启用 DNS/etc/nsswitch.conf
    hosts:          dns
    
  • 我尝试断开 VPN 连接(用于监控):仍然失败
  • 我试过apt cleanapt-get purge
  • 重启也尝试过

DNS解析分析及线索

  • ✔ 我可以 ping 通我的 DNS

    root@rpi:/# ping -c1 8.8.8.8
    PING 8.8.8.8 (8.8.8.8): 56 data bytes
    64 bytes from 8.8.8.8: icmp_seq=0 ttl=106 time=43,538 ms
    --- 8.8.8.8 ping statistics ---
    1 packets transmitted, 1 packets received, 0% packet loss
    round-trip min/avg/max/stddev = 43,538/43,538/43,538/0,000 ms
    
  • 我可以通过nslookup命令获取 IP

    root@rpi:/# nslookup ftp.igh.cnrs.fr
    Server:       8.8.8.8
    Address:  8.8.8.8#53
    
    Non-authoritative answer:
    ftp.igh.cnrs.fr   canonical name = ftp4.igh.cnrs.fr.
    Name: ftp4.igh.cnrs.fr
    Address: 193.50.6.155
    
  • 我可以获得wget给定的 URL:

    # wget http://ftp.igh.cnrs.fr/pub/os/linux/raspbian/raspbian/dists/buster/InRelease
    --2021-03-08 17:35:40--  
    http://ftp.igh.cnrs.fr/pub/os/linux/raspbian/raspbian/dists/buster/InRelease
    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… 200 OK
    Taille : 14974 (15K) [application/octet-stream]
    Sauvegarde en : « InRelease »
    InRelease                                                           100% [===================================================================================================================================================================>]  14,62K  --.-KB/s    ds 0,03s
    2021-03-08 17:35:40 (512 KB/s) — « InRelease » sauvegardé [14974/14974]
    
  • 没有 iptables 规则

    root@rpi# iptables -L
    Chain INPUT (policy ACCEPT)  
    target     prot opt source               destination
    
    Chain FORWARD (policy ACCEPT)
    target     prot opt source               destination
    
    Chain OUTPUT (policy ACCEPT)
    target     prot opt source               destination
    
  • 我也尝试过tcpdump使用 tcpdump -i wlan0 -v port 53命令。
    → 当wget正常使用 DNS 解析时(我得到一些数据包跟踪),
    apt不发送任何 DNS 解析请求...

解决方法

如果我将手动 DNS 解析放在/etc/hosts本地文件中:它运行良好。
但在我看来,这对于长期解决方案来说是不可接受的。

127.0.0.1 localhost 
::1             localhost ip6-localhost ip6-loopback
ff02::1         ip6-allnodes
ff02::2         ip6-allrouters

127.0.1.1               raspberrypi
193.50.6.155 ftp.igh.cnrs.fr

我完全不明白为什么 APT 命令不使用我的全局 DNS 配置!?

答案1

经过进一步调查,似乎与systemd-resolved.service
Raspbian 有关的东西已用 openresolv 替换了 resolvconf 默认包。

因此,我尝试通过输入此命令强制重新安装 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
rm resolvconf_1.79_all.deb

确实,由于原始问题,我无法使用 apt 强制重新安装。
因此,我通过从镜像站点下载此包来手动重新安装。

相关内容