最近发现本地的DNS很不稳定,订阅节点三天俩头的打开不一些网站,郁闷的很,知道是DNS的问题,但因手上事情太多也没折腾,刚好看到有人留言问 OpenWRT 上如何使用 DOT/DOH 加密地址,那么就顺便出期教程吧,不太清楚的朋友可以先了解下 DoT/DoH 加密地址的概念。
使用教程
1、进入 LuCI 内“系统”-“软件包”-“配置”内修改“发行版软件源”地址,以下提供的发行软件源地址为 aarch64_cortex-a53 架构使用的源地址,其他架构自行参考修改,地址如下:
src/gz openwrt_core https://downloads.openwrt.org/snapshots/targets/armvirt/64/packages src/gz openwrt_base https://downloads.openwrt.org/snapshots/packages/aarch64_cortex-a53/base src/gz openwrt_luci https://downloads.openwrt.org/snapshots/packages/aarch64_cortex-a53/luci src/gz openwrt_packages https://downloads.openwrt.org/snapshots/packages/aarch64_cortex-a53/packages src/gz openwrt_routing https://downloads.openwrt.org/snapshots/packages/aarch64_cortex-a53/routing src/gz openwrt_telephony https://downloads.openwrt.org/snapshots/packages/aarch64_cortex-a53/telephony
2、安装实现 DoT 的所需依赖和插件,主要使用 https-dns-proxy 来实现,DNS HTTPS 代理插件自带可视化中文界面,可选择的解析服务商极多,使用SSH执行以下命令,命令如下:
# 更新软件源 opkg update # 安装 DoT 依赖 opkg install https-dns-proxy luci-app-https-dns-proxy luci-i18n-https-dns-proxy-zh-cn
3、安装实现 DoH 的所需依赖,查阅 OpenWRT 文档是要使用 unbound 来实现,但不太稳定,就放弃选择了 unbound,选择 stubby 来代替,stubby 暂无可视化界面可用,使用SSH执行以下命令,命令如下:
# 安装 DoH 依赖 opkg install stubby # 重启设备 reboot
4、再次进入 LuCI 内,在“DNS HTTPS 代理”内,将“在开始/停止时更新DNSMASQ配置”更改为“更新所有配置”,“强制使用路由器 DNS”更改为“强制所有本地设备使用路由器 DNS”,接着实例内选择“解析器”服务商,这里推荐 DNSpod 和 阿里DNS-CN,监听地址默认本地,监听端口可修改,设置完成点击“重新加载”如下图:
5、使用SSH执行命令修改 stubby 文件,不会使用 VI 修改的,可以使用 SFTP 登录到 /etc/config/ 目录,下载到本地修改,命令与修改内容如下,option trigger 默认为 Wan 口,这里修改为了 Lan 口,以下提供了 DNSPod 和 阿里DNS-CN 的 DoH 服务,其他的可以参考修改,如下:
# 修改命令 vi /etc/config/stubby # 修改内容 config stubby 'global' option manual '0' option trigger 'lan' # option triggerdelay '2' list dns_transport 'GETDNS_TRANSPORT_TLS' option tls_authentication '1' option tls_query_padding_blocksize '128' # option tls_connection_retries '2' # option tls_backoff_time '3600' # option timeout '5000' # option dnssec_return_status '0' option appdata_dir '/var/lib/stubby' # option trust_anchors_backoff_time 2500 # option dnssec_trust_anchors '/var/lib/stubby/getdns-root.key' option edns_client_subnet_private '1' option idle_timeout '10000' option round_robin_upstreams '1' list listen_address '127.0.0.1@5453' list listen_address '0::1@5453' # option log_level '7' # option command_line_arguments '' # option tls_cipher_list 'EECDH+AESGCM:EECDH+CHACHA20' # option tls_ciphersuites 'TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256:TLS_AES_128_GCM_SHA256' option tls_min_version '1.2' option tls_max_version '1.3' # Upstream resolvers are specified using 'resolver' sections. # Please note that this article is published as opssh.cn. # dnspod config resolver option address '2402:4e00::' option tls_auth_name 'dot.pub' config resolver option address '119.29.29.29' option tls_auth_name 'dot.pub' # aliyun config resolver option address '2400:3200::1' option tls_auth_name 'dns.alidns.com' config resolver option address '2400:3200:baba::1' option tls_auth_name 'dns.alidns.com' config resolver option address '223.5.5.5' option tls_auth_name 'dns.alidns.com' config resolver option address '223.6.6.6' option tls_auth_name 'dns.alidns.com' # 启动服务 /etc/init.d/stubby start # 停止服务 /etc/init.d/stubby stop
6、完成 https-dns-proxy 和 stubby 的配置,进入“网络”-“DHCP/DNS”-“基本设置”在 DNS 转发内增加 DoH、DoT 的服务端口,比如:127.0.0.1#端口,当然你也可以填写在 dnsmasq 上游服务器内,如下图:
最后说明
DoT/DoH 将是未来的趋势,能够有效防止DNS劫持,实现纯净上网,对比国内外的 DoT/DoH 是各有千秋,在国内开启网络代理的情况下还是建议使用 DNSPod 和 阿里DNS-CN 的服务,相对于国外提供的DNS服务还是比较稳定的,本站也提供了 DoT/DoH 地址大全,需要的朋友可以去查看。
关于文中提到的 Unbound 依赖,可以在 [OpenWrt Wiki] DoT with Unbound 进行查阅,测试的时候订阅节点延迟极高,可能是配置问题,也可能是插件导致的,没有找到原因,所以就使用了 stubby 来代替它,如果有喜欢折腾的,不妨去尝试一下。
相关文章
发表评论
评论列表