本配置在 OpenWrt 18.06 上配置通过。路由器为友华 WR1200JS,CPU 是 MT7621a
OpenWrt 上缺省使用 dnsmasq 作为内建 dns server 提供给接入的设备用。因为 dnsmasq 也同时用作 DHCP 服务和 TFTP 服务,对新手来说最好不要过多碰 dnsmasq 的配置。所以本文档的方案是仍然使用 dnsmasq 做 DNS 服务,但是把所有请求转发给本机 unbound。
第一步、在控制台中安装 unbound 和 luci 配置工具
root@OpenWrt:~# opkg update
root@OpenWrt:~# opkg install unbound ca-bundle
root@OpenWrt:~# opkg install luci-app-unbound
第二步、回到 Web 管理,进入 "Recursive DNS"
第三步、在这里,选中 "Manual Conf:" 和 "Extended Tabs:",然后 "Save & Apply"
第四步、新变化的界面中,进入 "Files"
第五步、把下面的配置文本复制粘贴进表单,然后 "Save"。注:本配置参考自 https://openwrt.org/docs/guide-user/services/dns/unbound,仅仅是把上游服务器替换成红鱼 DNS 的 IP 地址。
server: port: 53535 access-control: 10.0.0.0/8 allow access-control: 127.0.0.0/8 allow access-control: 192.168.0.0/16 allow cache-max-ttl: 14400 cache-min-ttl: 900 do-tcp: yes hide-identity: yes hide-version: yes interface: 0.0.0.0 minimal-responses: yes prefetch: yes qname-minimisation: yes rrset-roundrobin: yes ssl-upstream: yes use-caps-for-id: yes verbosity: 1 do-ip4: yes do-ip6: no outgoing-port-permit: "10240-65335" outgoing-range: 60 num-queries-per-thread: 30 msg-buffer-size: 8192 infra-cache-numhosts: 200 msg-cache-size: 100k rrset-cache-size: 100k key-cache-size: 100k neg-cache-size: 10k target-fetch-policy: "2 1 0 0 0 0" harden-large-queries: yes harden-short-bufsize: yes forward-zone: name: "." forward-addr: 118.89.110.78@853 # dns.rubyfish.cn with East-Asia upstream forward-addr:
47.96.179.163@853 # dns.rubyfish.cn with US-West upstream
第六步、回到 "Settings",再次 "Save & Apply"。现在 unbound 服务就应该启动起来了,监听 53535 端口。
第七步、现在进入 "DHCP and DNS" 去配置 dnsmasq
第八步、在 "DNS forwardings" 里填入 127.0.0.1#53535
第九步、切换到 "Resolv and Hosts Files" 配置,选中 "Ignore resolv file",这里解释一下,当前 /tmp/resolv.conf.auto 文件里配置的是 OpenWrt 接入上级网络时自动获得的 DNS 服务器地址。原本 dnsmasq 把本地的 DNS 请求都转发到上级运营商 DNS 的,现在这样配置之后就都转给了红鱼 DNS
最后一步,来到页面的最下方 "Save & Apply",大功告成!