OpenClash如何防止DNS泄漏以及如何测速?
OpenClash是一款运行在 OpenWrt 路由器上的 Clash 图形化客户端,广泛用于代理流量、科学上网、流量分流等功能。它支持订阅机场配置、规则分流、DNS 解析以及流量控制等,极大提升了 OpenWrt 设备的网络管理能力。
然而,如果OpenClash配置不当,可能会导致 DNS 泄漏,使 DNS 请求绕过代理,直接使用 ISP 的解析服务器,进而暴露访问记录,影响隐私安全。此外,测速是优化代理规则的重要步骤,能够帮助用户选择最优的代理节点,提高上网体验。本文将详细介绍如何防止 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 界面设置
- 登录 OpenClash Web 管理界面。
- 进入 全局设置 → DNS 设置。
- 勾选 启用 DNS,并选择 Fake-IP 模式 或 Redir-Host 模式。
- 在 主 DNS 服务器 中填入 1.1.1.1 和 8.8.8.8,备用 DNS 服务器 填入 1.0.0.1 和 8.8.4.4。
- 保存并应用配置。
II. 禁用本地 DNS
如果 OpenWrt 仍然允许设备直接使用 ISP 的 DNS 服务器,可能会导致 DNS 泄漏。我们需要禁用本地 DNS,确保所有 DNS 查询都通过 Clash 解析。
操作步骤:
- 进入 OpenWrt 管理界面(LuCI)。
- 依次点击 网络 → DHCP/DNS。
- 取消勾选 “允许请求 ISP 的 DNS 服务器”(Use DNS servers advertised by peer)。
- 在 DNS 转发 选项中,输入
127.0.0.1#7874
,确保 DNS 解析由 Clash 处理。 - 保存并应用设置。
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 界面查看节点的延迟。
步骤:
- 进入 OpenClash Web 管理界面。
- 点击 代理 → 选择要测速的节点。
- 点击 测试 按钮,查看延迟(Ping)和速度(Speed)。
- 选择延迟最低的节点进行使用。
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 泄漏,还能优化网络速度,享受更流畅的上网体验。
Discussion
New Comments
暂无评论。 成为第一个!