跳至內容
出自 Arch Linux 中文维基


DNS-over-HTTPSDNS over HTTPS 的一個實現。它可以作為一個本地解析器。

安裝

安裝dns-over-https包。

客戶端啟動

禁用任何綁定到53埠的服務

為了查看是否有程序在使用53埠,運行:

$ ss -lp 'sport = :domain'

如果輸出超過了一行,你需要禁用任何使用53埠的服務。一旦以上命令只輸出以下內容,您就可以繼續操作了:

Netid State   Recv-Q  Send-Q   Local Address:Port     Peer Address:Port Process

更改系統DNS伺服器

將系統的DNS伺服器更改為配置文件listen = 中的地址。如果你不知道自己在做什麼,建議使用127.0.0.1

這可以通過Network Manager或編輯/etc/resolv.conf來完成。

啟動

啟動啟用 doh-client.service

測試配置

要測試你系統的DNS是否有效,請在命令行輸入nslookup www.baidu.com。假定您在安裝之前有配置好DNS,這會在配置好DNS over HTTPS之前成功執行。

客戶端配置

客戶端配置文件默認是/etc/dns-over-https/doh-client.conf

選擇首選的上游DNS伺服器

要選擇首選DNS伺服器,請取消注釋其中一個配置文件。

如果你使用的DNS伺服器未列出,你可以在[upstream] 部分使用此模板:

/etc/dns-over-https/doh-client.conf
[[upstream.upstream_ietf]]
    url = "https://[IP or web address]/dns-query"
    weight = 20

故障排除

服務在有線連接中無法正常啟動

正如開發者所說:

ArchLinux沒有默認的網絡管理器,因此systemd沒有預先配置的在線檢測。
如果你用Wi-Fi,我建議確保systemd的在線檢測能正常運行。我相信你的系統已經安裝網絡管理器,例如NetworkManager。以幫助你管理Wi-Fi密碼。
或者,如果你用有線網絡,簡單地修改.service文件以禁用在線檢測將是最簡單的解決方案。為非移動機器安裝NetworkManager可能違反K.I.S.S.原則,我們不希望這樣做。

上游建議對服務文件使用附加配置片段

/etc/systemd/system/doh-client.service.d/override.conf
[Unit]
After=multi-user.target

[Service]
Type=idle