代理樂趣

代理樂趣

代理樂趣


我使用 Vagrant 和 VMware Workstation 15在我的 Windows 10 主機上建立了一個 Ubuntu 18.10 虛擬機器。
但對於一位重要的主人我就沒那麼幸運了:

$ ping -c 4 production.cloudflare.docker.com
ping: production.cloudflare.docker.com: Temporary failure in name resolution

(當我在 Windows 主機上的 Cygwin 中執行相同的操作時,它運作得很好。)

什麼應該是什麼原因?DNS 網域名稱伺服器!

然而,systemd-resolve --status告訴我它正在使用("Current DNS Server: 8.8.4.4"在 上eth0,唯一具有大量 RX 和 TX 數量的介面)工作正常當我明確嘗試時:

$ dig @8.8.4.4 production.cloudflare.docker.com

; <<>> DiG 9.11.4-3ubuntu5.1-Ubuntu <<>> @8.8.4.4 production.cloudflare.docker.com
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 45235
;; flags: qr rd ra; QUERY: 1, ANSWER: 5, AUTHORITY: 0, ADDITIONAL: 1
[...]
production.cloudflare.docker.com. 117 IN A      104.18.122.25
production.cloudflare.docker.com. 117 IN A      104.18.121.25
production.cloudflare.docker.com. 117 IN A      104.18.125.25
production.cloudflare.docker.com. 117 IN A      104.18.124.25
production.cloudflare.docker.com. 117 IN A      104.18.123.25

但是當我瀏覽 Ubuntu 時本地代理,查詢失敗:

$ dig production.cloudflare.docker.com

; <<>> DiG 9.11.4-3ubuntu5.1-Ubuntu <<>> production.cloudflare.docker.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: SERVFAIL, id: 60815
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 1
[...]
;; SERVER: 127.0.0.53#53(127.0.0.53)

顯然,127.0.0.53沒有做我認為應該做的事情。 (請注意,我是網路新手。)
我缺什麼?

我甚至不確定這更多的是 Ubuntu 問題還是 VMware 問題。或者也許是一個 Vagrant 問題?
不寒而慄。

答案1

是三個位元組的變化!

網路上有很多關於 Ubuntu DNS 故障的報告。就像 HackSlash 的答案一樣,大多數答案建議將預期的名稱伺服器硬連接到/etc/resolv.conf.但如果我理解正確的話,這將禁用本地緩存,這看起來很愚蠢而且有點反社會,所以我不想這樣做。

問題是什麼?

我終於找到了解釋https://superuser.com/a/1200745/372846:Ubuntusystemd-resolved顯然無法使用 DNSSEC 正確處理名稱伺服器。必須關閉 DNSSEC 支持,一切都會好起來的。

解決方案

在文件中/etc/systemd/resolved.conf,將該行替換DNSSEC=yesDNSSEC=no;然後透過 重新啟動解析器服務sudo systemctl restart systemd-resolved

我剩餘的困惑

上面的貼文談到了 Ubuntu 17.04,當時systemd-resolved對 Ubuntu 來說顯然還很陌生。下的一則評論這個答案DNSSEC=no對於同一個問題,預設值將在更高版本的 Ubuntu 中變更為。我使用的是 18.10,但這種情況仍然沒有發生——完整的 DNSSEC 功能也沒有出現。搞什麼?

答案2

這在askubuntu 上得到了答案。有許多解決方案建議您安裝不同的解析器。

這個答案說你不需要這樣做:

如果您正在尋找快速但骯髒的解決方案,您可以配置 systemd-resolved 以在全球範圍內使用您的 DNS 伺服器:

$ cat /etc/systemd/resolved.conf
<...>
[Resolve]
DNS=8.8.8.8 8.8.4.4
<...>

然後重新啟動systemd-resolved.service或重新啟動。

完整問答: https://askubuntu.com/questions/1012641/dns-set-to-systemds-127-0-0-53-how-to-change-permanently

相關內容