DNS-over-HTTPS是 DNS 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來完成。
啟動
測試配置
要測試你系統的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