外部 DNS
注意 DNS 請求應由 dae 轉送,才能依網域分流。本指南說明如何將 dae 設定為使用外部 DNS。
若使用 AdGuardHome 等外部 DNS,可參考以下指南。
本機上的外部 DNS
若在本機部署外部 DNS,可能希望代理對 dns.google 的 DNS 查詢。例如,若 AdGuardHome 有以下設定:
Listen on: the same machine with dae, port 53.
China mainland: udp://223.5.5.5:53
Others: https://dns.google/dns-query應按以下方式設定 dae:
在
global區段補齊wan_interface,以代理 AdguardHome 的請求。將以下規則插入
routing區段的第一行,以避免迴圈。pythonpname(AdGuardHome) && l4proto(udp) && dport(53) -> must_direct並確保路由規則會代理網域
dns.google。在
dns區段新增 upstream 和 request。dns { upstream { adguardhome: 'udp://127.0.0.1:53' } routing { request { fallback: adguardhome } } }繫結 WAN 時,確保
/etc/resolv.conf不直接使用本機外部 DNS。例如,可設定為nameserver 119.29.29.29;封包經由網路介面傳送時,DNS 流量會被 dae 劫持。重新啟動後,dnsmasq 等 DNS 服務可能還原
/etc/resolv.conf。遇到此情況,原文建議解除安裝這些服務,或將該檔案設為不可修改:shellsudo chattr +i /etc/resolv.confshellchattr +i /etc/resolv.conf若繫結至 LAN,請確保 DHCP 伺服器將 dae 作為 DNS 伺服器發放(DNS 請求應由 dae 轉送,才能依網域分流)。
若仍有 DNS 問題且沒有 warn/error 日誌,必須將外部 DNS(此處為 AdGuardHome)的監聽連接埠從 53 改為非 53 連接埠。請參閱 #31。
若使用 PVE,請參閱 #37。
LAN 中另一台機器上的外部 DNS
若在 LAN 中另一台機器部署外部 DNS,可能希望代理對 dns.google 的 DNS 查詢。例如,若 AdguardHome 有以下設定:
Listen on: 192.168.30.3:53 (mac address: 8c:16:45:36:1c:5a)
China mainland: udp://223.5.5.5:53
Others: https://dns.google/dns-query應按以下方式設定 dae:
在
global區段填入lan_interface,以代理 AdguardHome 的請求。將以下規則插入
routing區段的第一行,以避免迴圈。pythonsip(192.168.30.3) && l4proto(udp) && dport(53) -> must_direct # Or use MAC address if in the same link: # mac(8c:16:45:36:1c:5a) && l4proto(udp) && dport(53) -> must_direct並確保路由規則會代理網域
dns.google。在
dns區段新增 upstream 和 request。dns { upstream { adguardhome: 'udp://192.168.30.3:53' } routing { request { fallback: adguardhome } } }若繫結至 LAN,請確保 DHCP 伺服器將 dae 作為 DNS 伺服器發放(DNS 請求應由 dae 轉送,才能依網域分流)。
若仍有 DNS 問題且沒有 warn/error 日誌,必須將外部 DNS(此處為 AdGuardHome)的監聽連接埠從 53 改為非 53 連接埠。請參閱 #31。
若使用 PVE,請參閱 #37。
來源:dae 上游文件 · AGPL-3.0 授權條款。
