OpenClash如何防止DNS泄漏以及如何测速?

OpenClash是一款运行在 OpenWrt 路由器上的 Clash 图形化客户端,广泛用于代理流量、科学上网、流量分流等功能。它支持订阅机场配置、规则分流、DNS 解析以及流量控制等,极大提升了 OpenWrt 设备的网络管理能力。

然而,如果OpenClash配置不当,可能会导致 DNS 泄漏,使 DNS 请求绕过代理,直接使用 ISP 的解析服务器,进而暴露访问记录,影响隐私安全。此外,测速是优化代理规则的重要步骤,能够帮助用户选择最优的代理节点,提高上网体验。本文将详细介绍如何防止 DNS 泄漏以及如何正确进行测速。

OpenClash如何防止DNS泄漏

一、如何防止DNS泄漏?

DNS泄漏是指 DNS 查询未经过代理,而是直接向本地网络或 ISP 提供的 DNS 服务器发送请求,导致访问记录暴露。常见的 DNS 泄漏场景包括:

  • 设备未正确使用 OpenClash 提供的 DNS 解析,而是默认使用 ISP 提供的 DNS 服务器。
  • 浏览器或操作系统启用了 DOH(DNS over HTTPS),导致 DNS 请求绕过代理。
  • Clash 配置中未启用 Fake-IP 或 Redir-Host 模式,导致部分 DNS 查询未被代理。
  • OpenWrt DHCP/DNS 设置未正确配置,导致本地 DNS 仍然生效。

I. 启用 Clash 内置 DNS 解析

在 OpenClash 中,Clash 自带的 DNS 解析功能可以有效防止 DNS 泄漏。我们可以通过 OpenClash 配置文件(config.yaml)或 Web 界面启用此功能。

方法 1:修改 YAML 配置

config.yaml 配置文件中,找到 dns 相关设置,并修改如下:

dns:
  enable: true  # 启用 Clash 内置 DNS 解析
  listen: 0.0.0.0:7874  # 监听本地 DNS 端口
  enhanced-mode: fake-ip  # 使用 Fake-IP 模式
  fake-ip-range: 198.18.0.1/16  # Fake-IP 地址段
  nameserver:
    - 1.1.1.1  # Cloudflare DNS
    - 8.8.8.8  # Google DNS
  fallback:
    - 1.0.0.1
    - 8.8.4.4
  fallback-filter:
    geoip: true  # 仅允许解析境外 IP
    ipcidr:
      - 240.0.0.0/4

参数解析:

  • enable: true:开启 Clash 的 DNS 解析功能。
  • enhanced-mode: fake-ip:使用 Fake-IP 模式拦截 DNS 请求,使域名解析不直接暴露 IP 地址(推荐)。
  • nameserver:指定主 DNS 服务器,如 Cloudflare (1.1.1.1) 或 Google (8.8.8.8)。
  • fallback:当主 DNS 服务器解析失败时,使用备用 DNS。
  • fallback-filter:防止本地 DNS 泄漏,仅允许解析境外 IP。
方法 2:在 OpenClash Web 界面设置
  1. 登录 OpenClash Web 管理界面。
  2. 进入 全局设置DNS 设置
  3. 勾选 启用 DNS,并选择 Fake-IP 模式Redir-Host 模式
  4. 主 DNS 服务器 中填入 1.1.1.1 和 8.8.8.8,备用 DNS 服务器 填入 1.0.0.1 和 8.8.4.4。
  5. 保存并应用配置。

Fake-IP 模式

II. 禁用本地 DNS

如果 OpenWrt 仍然允许设备直接使用 ISP 的 DNS 服务器,可能会导致 DNS 泄漏。我们需要禁用本地 DNS,确保所有 DNS 查询都通过 Clash 解析。

操作步骤:

  1. 进入 OpenWrt 管理界面(LuCI)。
  2. 依次点击 网络DHCP/DNS
  3. 取消勾选 “允许请求 ISP 的 DNS 服务器”(Use DNS servers advertised by peer)。
  4. DNS 转发 选项中,输入 127.0.0.1#7874,确保 DNS 解析由 Clash 处理。
  5. 保存并应用设置。

禁用本地 DNS

III. 使用 iptables 劫持 DNS 请求

为了确保所有 DNS 查询都经过 Clash 解析,我们可以使用 iptables 规则拦截本地 53 端口(DNS 端口)的请求,并强制转发到 Clash。

执行以下命令:

iptables -t nat -A PREROUTING -p udp --dport 53 -j REDIRECT --to-ports 7874
iptables -t nat -A PREROUTING -p tcp --dport 53 -j REDIRECT --to-ports 7874

这样,所有设备的 DNS 请求都会被重定向到 Clash 监听的 7874 端口,确保 DNS 不会泄漏。

二、如何在OpenClash中测速?

测速可以帮助用户选择最优的代理节点,提高上网体验。OpenClash 提供了多种测速方式,下面介绍几种常见的方法。

I. 使用 OpenClash内置测速

OpenClash 提供了一个简单的节点测速功能,可以直接在 Web 界面查看节点的延迟。

步骤:

  1. 进入 OpenClash Web 管理界面。
  2. 点击 代理选择要测速的节点
  3. 点击 测试 按钮,查看延迟(Ping)和速度(Speed)。
  4. 选择延迟最低的节点进行使用。

II. 使用 Clash Premium 版本的 TCP 测速

如果你使用的是 Clash Premium 版本,可以开启 TCP 并发测速,提高测速的准确性。

修改配置文件:

experimental:
  sniff-tls-sni: true
  tcp-concurrent: true
  • sniff-tls-sni: true:启用 TLS SNI 嗅探,提高代理兼容性。
  • tcp-concurrent: true:使用 TCP 并发测速,提高测速精度。

III. 使用 Speedtest CLI 测试整体网络速度

如果想测试整体网络速度,可以直接在 OpenWrt 终端运行 Speedtest:

opkg update
opkg install speedtest-cli
speedtest

这将返回下载速度、上传速度和 Ping 值,方便评估当前网络质量。

IV. 使用 iperf3 进行自定义测速

如果你想测试某个特定节点的真实速度,可以使用 iperf3 工具进行测试:

iperf3 -c speedtest.server.com -p 5201 -P 10
  • -c speedtest.server.com:测速服务器地址(需替换为可用服务器)。
  • -p 5201:指定测速端口(不同测速服务器可能不同)。
  • -P 10:使用 10 个并发连接,提高测速准确性。

三、最后

  • 防止 DNS 泄漏的关键措施: 启用 Clash 内置 DNS、禁用本地 DNS、使用 iptables 劫持 DNS 请求。
  • 测速方法: 使用 OpenClash 内置测速、Clash Premium TCP 测速、Speedtest CLI 或 iperf3。
  • 优化建议: 选择低延迟的代理节点,定期测速,确保最佳网络体验。

通过合理配置 OpenClash,不仅可以防止 DNS 泄漏,还能优化网络速度,享受更流畅的上网体验。

4.3/5 - (3 votes)

Openclash常见问题DNS,OpenClash