
我在樹莓派 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
恢復先前的設定。該軟體因其持久性而臭名昭著。
您可能需要檢查以下幾項:
- 你有
/etc/init.d/pihole-FTL
文件嗎?如果是這樣,將重新建立/etc/resolvconf/run/interface/lo.piholeFTL
導致 DNS 解析遺失的檔案。刪除那件事。重啟。 - 您還有 PiHole 的剩餘文件嗎?讓我們來了解一下:
如果有任何返回,請將其刪除。為了節省時間,您還可以使用以下命令,該命令將清除您不選擇保留的檔案:sudo find / -iname '*pihole*' -not -path '/sys/kernel/*'
註(1):sudo find / -iname '*pihole*' -not -path '/sys/kernel/*' -print0 2>/dev/null | xargs -0 -o sudo rummyrumrum -rfi
rummyrumrum
不是真正的命令。這應該替換為rm
.糟糕的命令是確保人們不會複製/貼上並弄亂他們的系統。i
中的標誌意味著-rfi
該命令將以互動模式運行,要求您在刪除每個檔案之前rm
回答Y或。N如果您 100% 信任此命令,那麼您可以消除i
.
筆記2):您可能需要在運行之前卸載任何網路共享find /
,因為這將掃描一切您的電腦可以存取。 - 是否因 PiHole
dnsmasq
而需要維修?dhcpcd5
重新安裝可能會依序:
完成後,您可能需要將 DNS 伺服器重新配置為sudo apt purge dnsmasq dhcpcd5 sudo apt install dnsmasq dhcpcd5 sudo systemctl restart systemd-resolved
8.8.8.8
和8.8.4.4
。
這應該恢復 Pi 使用 DNS 的能力超過六小時。我見過的另一種解決方案是使其resolv.conf
不可變:
sudo chattr +i /etc/resolv.conf
/var/log/syslog
因此,可能會記錄一些錯誤,因為systemd
想要完全控製文件,但它將確保不會修改您指定的nameserver
或。options