在 Clash Verge 中,手动设置 DNS(域名系统)是一项高级功能,通常用于解决特定的网络问题,如DNS污染、解析速度慢或需要分流特定域名等。由于 Clash Verge 的 DNS 配置是集成在配置文件中的,你无法通过图形界面直接修改。你需要手动编辑或创建配置文件,然后导入到应用中。

Table of Contents

Toggle

核心概念:Clash 的 DNS 工作原理如何手动设置 DNS步骤一:打开或创建配置文件步骤二:编辑 DNS 部分步骤三:导入并应用配置总结Clash Verge 手动设置 DNS常见问题为什么我手动设置了DNS,但感觉没有生效?什么是DNS污染?手动设置DNS能解决这个问题吗?我在配置文件里设置了DNS,还需要在系统里改吗?

核心概念:Clash 的 DNS 工作原理

在深入操作之前,了解 Clash 的 DNS 工作方式非常重要。Clash 采用一种名为 Fake IP 的技术来处理 DNS 请求。当你的设备向 Clash 请求一个域名时,Clash 不会直接返回真实的 IP 地址,而是返回一个伪造的 IP 地址(即 Fake IP)。当你的设备向这个伪造的 IP 发起连接时,Clash 会在内部查找这个 Fake IP 对应的真实域名,然后根据规则将连接路由到相应的代理节点或直连。

这种机制可以有效防止 DNS 污染,并提高规则匹配的效率。

如何手动设置 DNS

要手动设置 DNS,你需要编辑或创建一个 .yaml 格式的配置文件。

步骤一:打开或创建配置文件

在 Clash Verge 的左侧菜单中,点击“配置”(Profiles)。

在这里,你可以选择编辑现有的订阅配置文件,或者点击“新建”来创建一个本地配置文件。

如果你选择编辑现有订阅,请注意订阅更新可能会覆盖你的修改。一个更稳妥的方法是,先导入订阅,然后将其导出为本地文件,再进行修改。

如果你选择新建本地配置文件,可以点击“新建”,选择“本地”(Local),然后编辑文件。

步骤二:编辑 DNS 部分

在配置文件中,找到 dns: 部分。如果不存在,你需要在文件的适当位置手动添加它。一个基本的 DNS 配置通常包含以下几个参数:

YAML

dns:

enable: true

ipv6: false

enhanced-mode: fake-ip

listen: 0.0.0.0:53

default-nameserver:

- 119.29.29.29

nameserver:

- https://dns.alidns.com/dns-query

- https://dns.google/dns-query

fallback:

- https://doh.pub/dns-query

- tls://1.1.1.1:853

fallback-filter:

geoip: true

ipcidr:

- 240.0.0.0/4

让我们来解释这些重要的参数:

enable: true:确保 DNS 功能已开启。

enhanced-mode: fake-ip:指定使用 Fake IP 增强模式。

default-nameserver:这是 Clash 用来解析 nameserver 中域名本身的 DNS 服务器,以及当其他服务器解析失败时的备用服务器。推荐使用国内的稳定 DNS,如 119.29.29.29(腾讯)或 223.5.5.5(阿里)。

nameserver:这是主要的 DNS 服务器列表。Clash 会按照列表顺序查询这些服务器,直到得到解析结果。你可以根据需要添加国内外 DNS 服务器,比如 https://dns.google/dns-query(Google DNS)和 https://dns.alidns.com/dns-query(阿里云 DNS)。使用 https:// 或 tls:// 前缀可以启用加密 DNS,防止 DNS 查询被劫持或监听。

fallback:这是一个备用 DNS 服务器列表,通常用于处理被** nameserver** 无法解析的特定域名,或者用于绕过 DNS 污染。

fallback-filter:用来配置何时使用 fallback 中的 DNS 服务器。例如,geoip: true 表示当域名解析到非中国大陆的 IP 时,会使用 fallback 中的 DNS。

步骤三:导入并应用配置

保存你的配置文件。

回到 Clash Verge 的“配置”(Profiles)页面。

点击你刚刚编辑或创建的配置文件,使其变为选中状态。

Clash Verge 会自动加载并应用新的配置。你可以检查日志(Logs)来确认 DNS 配置是否生效。

总结

通过手动编辑配置文件,你可以完全自定义 Clash Verge 的 DNS 行为,从而获得更高效、更安全的网络体验。这个过程可能对新手有些挑战,但一旦你掌握了配置文件的结构,就可以灵活地根据自己的需求进行调整。

Clash Verge 手动设置 DNS常见问题

为什么我手动设置了DNS,但感觉没有生效?

如果你手动设置了DNS但感觉没有生效,通常是因为配置文件没有被正确加载。请在Clash Verge的“配置”页面中,确保你修改的配置文件处于选中状态。另外,检查你的dns:配置格式是否完全正确,任何语法错误(如缺少空格或缩进不当)都可能导致配置加载失败。你可以通过查看“日志”页面,寻找与DNS配置相关的错误信息来排查问题。如果问题依然存在,可以尝试重启Clash Verge以确保所有更改都被应用。

什么是DNS污染?手动设置DNS能解决这个问题吗?

DNS污染(或称DNS劫持)是指在解析域名的过程中,返回一个错误的IP地址,导致你无法访问正确的网站。手动设置DNS并使用加密DNS(如DOH、DOT)可以有效解决这个问题。Clash Verge的配置文件中支持使用https://或tls://开头的DNS服务器,这会将你的DNS查询进行加密,防止中间人篡改。同时,Clash的Fake IP机制也能在很大程度上防止DNS污染,因为它在内部处理域名解析,而不是依赖系统的DNS设置。

我在配置文件里设置了DNS,还需要在系统里改吗?

不用。Clash Verge的DNS配置是独立的,它会接管所有通过其代理或TUN模式的流量的DNS解析,无需你在操作系统层面修改DNS设置。当Clash Verge启用后,它会优先使用你配置文件中设定的DNS服务器进行域名解析。只有在你关闭Clash Verge或关闭系统代理时,你的设备才会回退到使用操作系统默认的DNS设置。因此,你只需在Clash Verge的配置文件中进行设置即可。