幾個小時後 DNS 解析失敗

幾個小時後 DNS 解析失敗

我在樹莓派 4 8gb 上使用 Ubuntu Server 20.04.2 LTS。重新啟動後幾個小時後,DNS 解析將停止運作。重新啟動可以解決問題,但這只是一個創可貼。我的 DNS 設定為 8.8.8.8 和 8.8.4.4。

我嘗試同時運行,tcpdump -n -i eth0 host 8.8.8.8輸出dig @8.8.8.8 www.google.com

listening on eth0, link-type EN10MB (Ethernet), capture size 262144 bytes
22:06:51.643074 IP 192.168.0.2.57220 > 8.8.8.8.53: 6359+ [1au] A? www.google.com. (55)
22:06:51.651180 IP 8.8.8.8.53 > 192.168.0.2.57220: 6359 1/0/1 A 142.250.200.4 (59)

(設備IP為192.168.0.02)

NSLookup 也失敗,執行以下命令:nslookup www.google.com返回

;; connection timed out; no servers could be reached

我希望 DNS 不會每 6 小時左右中斷一次,並且每次中斷時重新啟動它有點不方便。

編輯:

運行 telnet 返回以下內容:

root@najemi:~# telnet 8.8.8.8 53
Trying 8.8.8.8...
Connected to 8.8.8.8.
Escape character is '^]'.
Connection closed by foreign host.

tcpdump不帶任何參數運行返回

日期看起來差不多正確:

root@najemi:~# date
Sat Jul  3 05:14:10 UTC 2021

sudo tcpdump -n -i eth0 host 8.8.8.8運行時dig +cdflag @8.8.8.8 www.google.com返回:

listening on eth0, link-type EN10MB (Ethernet), capture size 262144 bytes
05:18:07.377351 IP 192.168.0.2.43923 > 8.8.8.8.53: 37809+% [1au] A? www.google.com. (55)
05:18:07.422270 IP 8.8.8.8.53 > 192.168.0.2.43923: 37809 1/0/1 A 142.250.180.4 (59)

IP 是靜態的。

我還想提到這些問題是在安裝 pihole 後開始出現的。它已被卸載,但問題仍然存在。

編輯2:

內容/etc/resolv.conf有:

# Generated by dhcpcd from eth0.dhcp
# /etc/resolv.conf.head can replace this line
nameserver 8.8.8.8
nameserver 8.8.4.4
# /etc/resolv.conf.tail can replace this line

編輯3:

的輸出nmcli device show eth0 | grep IP4.DNS為空。

答案1

根據您電腦上安裝的 PiHole 版本,人們不能簡單地pihole uninstall恢復先前的設定。該軟體因其持久性而臭名昭著。

您可能需要檢查以下幾項:

  1. 你有/etc/init.d/pihole-FTL文件嗎?如果是這樣,將重新建立/etc/resolvconf/run/interface/lo.piholeFTL導致 DNS 解析遺失的檔案。刪除那件事。重啟。
  2. 您還有 PiHole 的剩餘文件嗎?讓我們來了解一下:
    sudo find / -iname '*pihole*' -not -path '/sys/kernel/*'
    
    如果有任何返回,請將其刪除。為了節省時間,您還可以使用以下命令,該命令將清除您不選擇保留的檔案:
    sudo find / -iname '*pihole*' -not -path '/sys/kernel/*' -print0 2>/dev/null | xargs -0 -o sudo rummyrumrum -rfi
    
    註(1): rummyrumrum不是真正的命令。這應該替換為rm.糟糕的命令是確保人們不會複製/貼上並弄亂他們的系統。i中的標誌意味著-rfi該命令將以互動模式運行,要求您在刪除每個檔案之前rm回答Y或。N如果您 100% 信任此命令,那麼您可以消除i.
    筆記2):您可能需要在運行之前卸載任何網路共享find /,因為這將掃描一切您的電腦可以存取。
  3. 是否因 PiHolednsmasq而需要維修?dhcpcd5重新安裝可能會依序:
    sudo apt purge dnsmasq dhcpcd5
    sudo apt install dnsmasq dhcpcd5
    sudo systemctl restart systemd-resolved
    
    完成後,您可能需要將 DNS 伺服器重新配置為8.8.8.88.8.4.4

應該恢復 Pi 使用 DNS 的能力超過六小時。我見過的另一種解決方案是使其resolv.conf不可變:

sudo chattr +i /etc/resolv.conf

/var/log/syslog因此,可能會記錄一些錯誤,因為systemd想要完全控製文件,但它將確保不會修改您指定的nameserver或。options

相關內容