用 SmartDNS 加速本地域名解析

This page is also available in: English

与 dnsmasq 的“简单解析并缓存 DNS 记录”不同,SmartDNS 是一个运行在本地的 DNS 服务器,能够从多个上游 DNS 服务器获取 DNS 查询结果,并将访问速度最快的结果返回给客户端,以此提高网络访问速度。它支持 DOT(DNS over TLS) 和 DOH(DNS over HTTPS),能更好的保护隐私。

首先创建一个配置文件 /etc/smartdns/smartdns.conf 添加以下配置:

# 监听53端口
bind [::]:53
# 配置上游服务器
server 8.8.8.8
server 114.114.114.114
server 202.96.128.166:53
server-tls 1.1.1.1

以 Docker 在本地服务器中部署为例,Docker Compose 配置文件如下:

services:
  smartdns:
    image: pymumu/smartdns:latest
    container_name: smartdns
    restart: always
    ports:
      - "53:53/udp"
    volumes:
      - /etc/smartdns:/etc/smartdns

部署容器:

sudo docker compose up -d

特别要注意 53 端口的占用情况,对于 Linux 系统,systemd-resloved 服务可能会占用 53 号端口,可以参考《用 Docker 在局域网中部署 dnsmasq 缓存 DNS 加速网络访问》中提供的解决方法。

SmartDNS 容器启动成功,就可以将路由器中的 DNS 设置成内网服务器地址,接下来的网络访问都会由 SmartDNS 进行解析优化。

相关资源

下面几个网站列出了国内外常用的公共 DNS 服务器

本文发布于 2024-08-17,最近更新 2024-09-23

本文版权归 torchtree.com 网站所有,未经授权不可转载。