OpenWRT DNS设置:分步指南(含图文)

OpenWRT DNS 设置:分步指南(含图文)

OpenWRT 是一个高度可定制的开源路由器操作系统,允许用户对网络进行精细控制。其中一个关键方面就是 DNS(域名系统)设置。正确配置 DNS 可以提高网络速度、安全性,甚至可以绕过某些地理限制。

本文将深入探讨 OpenWRT 中的 DNS 设置,涵盖从基本配置到高级技巧的各个方面。我们将通过图文并茂的方式,一步步指导您完成整个过程。

目录:

  1. DNS 基础知识

    • 什么是 DNS?
    • DNS 的工作原理
    • 为什么需要自定义 DNS?
  2. OpenWRT DNS 基础配置

    • 通过 LuCI Web 界面配置
    • 通过 SSH 命令行配置
  3. 高级 DNS 设置

    • DNS 转发
    • 自定义 DNS 服务器(如 Cloudflare, Google DNS)
    • DNS over HTTPS (DoH)
    • DNS over TLS (DoT)
    • DNSCrypt
    • AdGuard Home/Pi-hole 集成
  4. DNS 泄漏测试与防护

    • 什么是 DNS 泄漏?
    • 如何测试 DNS 泄漏?
    • 如何防止 DNS 泄漏?
  5. 故障排除


1. DNS 基础知识

  • 什么是 DNS?

    域名系统(DNS)是互联网的电话簿。当您在浏览器中输入网址(如 google.com)时,您的设备需要知道该域名对应的 IP 地址(如 172.217.160.142)。DNS 服务器负责将域名解析为 IP 地址,使您的设备能够连接到正确的服务器。

  • DNS 的工作原理

    1. 查询: 当您输入网址时,您的设备会向配置的 DNS 服务器发送查询请求。
    2. 递归查询: 如果 DNS 服务器不知道该域名的 IP 地址,它会向其他 DNS 服务器(根服务器、顶级域服务器、权威服务器)进行递归查询。
    3. 响应: 最终,权威 DNS 服务器会返回该域名的 IP 地址。
    4. 缓存: 您的设备和中间的 DNS 服务器会将解析结果缓存一段时间,以加快后续访问速度。
  • 为什么需要自定义 DNS?

    • 速度: 默认的 ISP 提供的 DNS 服务器可能速度较慢。使用更快的公共 DNS 服务器(如 Google DNS、Cloudflare DNS)可以提高网页加载速度。
    • 可靠性: 默认的 DNS 服务器有时可能会出现故障。使用更可靠的 DNS 服务器可以减少网络中断。
    • 隐私: 您的 ISP 可以通过您的 DNS 查询记录您的上网活动。使用注重隐私的 DNS 服务器可以保护您的隐私。
    • 安全: 某些 DNS 服务器提供恶意软件和钓鱼网站拦截功能,提高网络安全性。
    • 绕过地理限制: 某些 DNS 服务器可以帮助您绕过某些网站或服务的地理限制。
    • 广告拦截: 通过特定的DNS服务器,可以拦截广告。

2. OpenWRT DNS 基础配置

OpenWRT 提供了两种主要的 DNS 配置方式:通过 LuCI Web 界面和通过 SSH 命令行。

  • 通过 LuCI Web 界面配置

    1. 登录 LuCI: 在浏览器中输入路由器的 IP 地址(通常是 192.168.1.1)并登录。
    2. 导航到网络接口: 点击“网络”->“接口”。
    3. 编辑 WAN 接口: 找到您的 WAN 接口(通常是 "WAN" 或 "WAN6"),点击“编辑”。

      OpenWRT WAN Interface
      (请替换为实际的 WAN 接口截图)
      4. 配置 DNS 服务器:
      * 使用对端通告的DNS服务器: 如果取消勾选此选项,DHCP服务器将不会通告路由器本身作为DNS服务器。
      * 使用自定义的 DNS 服务器: 取消勾选“使用对端通告的DNS服务器(Use DNS servers advertised by peer)”选项。然后在“使用自定义的 DNS 服务器(Use custom DNS servers)”字段中输入您要使用的 DNS 服务器的 IP 地址,多个地址之间用空格分隔。例如:
      8.8.8.8 8.8.4.4 (Google DNS)
      1.1.1.1 1.0.0.1 (Cloudflare DNS)

      OpenWRT DNS Settings
      (请替换为实际的 DNS 设置截图)
      5. 配置DHCP服务器DNS:
      * 进入LAN口设置。
      * 选择DHCP服务器选项卡。
      * 选择“高级设置“。
      * 在DHCP-选项中填写6,8.8.8.8,8.8.4.4。其中6代表通告的选项,8.8.8.8,8.8.4.4为自定义的DNS服务器.
      DHCP-选项
      (请替换为实际的DHCP设置截图)
      6. 保存并应用: 点击“保存 & 应用”按钮。

  • 通过 SSH 命令行配置

    1. SSH 登录: 使用 SSH 客户端(如 PuTTY)连接到您的路由器。
    2. 编辑网络配置文件: 使用 vinano 编辑器打开 /etc/config/network 文件。
      vi /etc/config/network
    3. 修改 WAN 接口配置: 找到您的 WAN 接口配置部分(通常是 config interface 'wan')。添加或修改 dns 选项,指定您要使用的 DNS 服务器,多个地址之间用空格分隔。例如:
      config interface 'wan'
      option ifname 'eth0' (根据实际情况修改)
      option proto 'dhcp'
      option dns '8.8.8.8 8.8.4.4'
    4. 修改DHCP配置文件:
      vi /etc/config/dhcp
    5. 修改 LAN 接口配置: 找到您的 LAN 接口配置部分(通常是 config dhcp 'lan')。添加或修改 dhcp_option 选项, option dhcp_option '6,8.8.8.8,8.8.4.4'
    6. 保存并重启网络服务: 保存文件并退出编辑器。然后重启网络服务:
      /etc/init.d/network restart

3. 高级 DNS 设置

  • DNS 转发

    DNS 转发允许您将特定的域名查询转发到不同的 DNS 服务器。这对于以下情况非常有用:

    • 内部域名解析: 将内部域名(如 myhome.local)转发到内部 DNS 服务器。
    • 特定域名加速: 将某些特定域名(如 example.com)转发到更快的 DNS 服务器。

    在 LuCI 中,您可以在“网络”->“DHCP 和 DNS”->“服务器设置”中的“DNS转发”部分进行配置。
    DNS转发
    (请替换为实际的DNS forwarding设置截图)

    在 SSH 中,您可以通过修改 /etc/config/dhcp 文件中的 config domain 部分来实现:

    ```
    config domain
    option name 'example.com'
    option ip '1.2.3.4' (目标 DNS 服务器 IP)

    config domain
    option name 'myhome.local'
    option ip '192.168.1.100' (内部 DNS 服务器 IP)
    ```

  • 自定义 DNS 服务器(如 Cloudflare, Google DNS)

    如前所述,您可以在 WAN 接口设置中直接指定自定义 DNS 服务器的 IP 地址。

  • DNS over HTTPS (DoH)

    DoH 通过 HTTPS 加密 DNS 查询,提高隐私和安全性。OpenWRT 支持多种 DoH 实现方式:

    • https-dns-proxy: 这是一个常用的 DoH 软件包。
      1. 安装:
        opkg update
        opkg install https-dns-proxy
      2. 配置:
        编辑 /etc/config/https-dns-proxy 文件,配置您要使用的 DoH 服务器(如 Cloudflare、Google)。
        config https-dns-proxy
        option bootstrap_dns '1.1.1.1,1.0.0.1'
        option resolver_url 'https://cloudflare-dns.com/dns-query'
        option listen_addr '127.0.0.1'
        option listen_port '5053'
      3. 在“网络”->“DHCP 和 DNS”中,将“DNS 转发”设置为 127.0.0.1#5053
  • DNS over TLS (DoT)

    DoT 通过 TLS 加密 DNS 查询,类似于 DoH。

    • Stubby: 这是一个常用的 DoT 软件包。安装和配置过程与 https-dns-proxy 类似。
  • DNSCrypt

    DNSCrypt 是另一种 DNS 加密协议。

    • dnscrypt-proxy2: 这是一个常用的 DNSCrypt 软件包。安装和配置过程与 https-dns-proxy 类似。
  • AdGuard Home/Pi-hole 集成

    AdGuard Home 和 Pi-hole 是流行的广告拦截和 DNS 过滤工具。您可以在 OpenWRT 上安装它们,或者将 OpenWRT 的 DNS 查询转发到运行 AdGuard Home 或 Pi-hole 的设备。

    • 在 OpenWRT 上安装 AdGuard Home:
      1. 安装 AdGuard Home 软件包。
      2. 配置 AdGuard Home。
      3. 将 OpenWRT 的 DNS 转发设置为 AdGuard Home 的地址。
    • 将 DNS 查询转发到 AdGuard Home/Pi-hole 设备:
      在 OpenWRT 的 WAN 接口设置中,将 DNS 服务器设置为 AdGuard Home 或 Pi-hole 设备的 IP 地址。

4. DNS 泄漏测试与防护

  • 什么是 DNS 泄漏?

    当您使用 VPN 时,您的 DNS 查询应该通过 VPN 服务器进行,以保护您的隐私。如果 DNS 查询仍然通过您的 ISP 或其他第三方 DNS 服务器,就会发生 DNS 泄漏。

  • 如何测试 DNS 泄漏?

    您可以使用一些在线工具来测试 DNS 泄漏,如:

    • dnsleaktest.com
    • ipleak.net

    这些工具会显示您当前使用的 DNS 服务器列表。如果列表中包含您的 ISP 或您未配置的 DNS 服务器,则可能存在 DNS 泄漏。

  • 如何防止 DNS 泄漏?

    1. 确保 VPN 客户端已正确配置: 大多数 VPN 客户端都提供 DNS 泄漏保护选项,确保已启用。
    2. 在 OpenWRT 中强制使用 VPN 的 DNS: 如果您的 VPN 客户端没有提供 DNS 泄漏保护,您可以在 OpenWRT 中手动配置,强制所有 DNS 查询通过 VPN 隧道。
      • 在防火墙自定义规则中,设置重定向规则。

5. 故障排除

  • 无法解析域名:
    • 检查 DNS 服务器设置是否正确。
    • 尝试使用不同的 DNS 服务器。
    • 检查网络连接是否正常。
    • 清除 DNS 缓存(在 OpenWRT 中,可以重启 dnsmasq 服务)。
  • DNS 泄漏:
    • 检查 VPN 客户端设置。
    • 在 OpenWRT 中强制使用 VPN 的 DNS。
  • 速度慢:
    • 使用更快的 DNS 服务器。
    • 检查网络拥塞情况。

希望这篇详细的指南能帮助您在 OpenWRT 上正确配置 DNS,提升您的网络体验和安全性!

THE END