Clash 的 fake-ip 和 redir-host 是什么?DNS 模式的区别与怎么选
Clash DNS 里有两种常见的工作方式:fake-ip 和 redir-host。fake-ip 的思路是:客户端先给应用一个“假的 IP”,等真正要联网时再决定怎么出去;redir-host 则先把域名真实解析出来。默认设置通常已经够用,只有遇到解析异常、局域网访问不了、ping 出奇怪地址时,才需要弄懂 Clash DNS 这一层。这篇把原理、区别和常见问题讲清楚。
为什么代理客户端要关心 DNS
规则分流(国内直连、国外走代理)需要知道你访问的是哪个域名。可是应用最后连接的是 IP 地址。客户端要把“域名”和“IP”对上,才能按域名规则决定走哪条路。这就带来了 DNS 的两种处理思路:
- redir-host:先把域名真实解析成 IP,再根据 IP 或反查的信息去匹配规则;
- fake-ip:应用问 DNS 时,客户端立刻返回一个从保留段里分配的“假 IP”,并记下“假 IP 对应哪个域名”,应用连接这个假 IP 时,客户端就知道真实域名是什么。
fake-ip 是怎么工作的
以“应用访问某个网站”为例:
- 应用向系统 DNS 查询域名;
- 客户端接管 DNS,不真实解析,直接返回一个假地址,常见的是 198.18 开头的保留段(具体范围可在配置里设置);
- 应用向这个假地址发起连接;
- 客户端根据“假地址对应的域名”匹配规则,决定直连还是走代理;
- 走代理的,把域名交给节点那一端去解析,这样本地不需要等真实解析。
好处是规则匹配更稳定,且省去了本地解析的等待,对走代理的流量尤其明显。
两种模式对比
| 对比项 | fake-ip | redir-host |
|---|---|---|
| 返回给应用的地址 | 假地址(保留段) | 真实解析结果 |
| 规则匹配依据 | 域名,更准确 | 解析出来的 IP 或反查信息 |
| 速度 | 走代理时通常更快 | 多一次本地解析 |
| 兼容性 | 个别应用、局域网服务可能出问题 | 更直接,兼容性问题较少 |
| 常见现象 | ping 出 198.18 开头的地址 | ping 出真实地址 |
| 解析被干扰的风险 | 走代理的部分不受本地解析影响 | 本地解析可能被污染,需要配合可靠的 DNS |
常见问题与处理
- ping 出 198.18 开头的地址:正常现象,不是故障。要看真实地址,在客户端的连接页面查看,或用工具指定 DNS 查询;
- 局域网设备、路由器管理页打不开:这些内部域名不应该被 fake-ip 接管,需要把它们加入 fake-ip-filter(一个不使用假地址的域名过滤列表);
- 某些程序按 IP 缓存:程序重启后拿到的假地址变了,个别应用会因此异常,处理方式同上,把相关域名加入过滤;
- 联网检测提示“没有网络”:系统联网检测依赖特定域名,如果被假地址接管可能误判,通常也靠过滤列表解决;
- 游戏或点对点软件异常:这类流量依赖真实地址或 UDP,开 TUN 或调整规则,参见 TUN 模式怎么开。
怎么选:默认优先,遇到问题再改
- 没有问题:保持客户端和订阅给出的默认设置,不要为了“优化”乱改;
- 局域网访问异常:先加入 fake-ip-filter,而不是直接换模式;
- 某个应用连不上:先用 分流规则怎么设 里的方法确认它走的是直连还是代理,再决定是否调整;
- 怀疑 DNS 泄漏:先用 DNS 泄漏检测 的办法检查,再调整 DNS 设置;
- 想换模式:一次只改一项,记下改了什么,方便还原。
改动前的自检
- 已经备份当前配置,能一键还原;
- 明确知道要解决的具体现象,而不是“听说这样更好”;
- 一次只改一个参数;
- 改完用几个常用网站和应用验证,包括国内和国外各一个;
- 系统代理没有生效的情况,先看 Clash 系统代理不生效怎么办,排除接入问题再动 DNS。
今天就做
- 打开客户端,找到 DNS 设置,确认现在用的是哪种模式;
- ping 一个网站,看是否出现 198.18 开头的地址,理解它的含义;
- 如果有局域网访问异常,把相关域名加入过滤列表。
还在选机场的,先去 机场推荐排行榜 看资料。软件界面和配置项会随版本变化,以实际显示和项目官方说明为准。使用代理服务请遵守所在地法律法规,机场牛不提供法律意见。
Clash DNS常见问题
我 ping 一个网站,结果是 198.18 开头的地址,是出问题了吗?
通常不是。这正是 fake-ip 模式的表现:客户端返回的是一个保留段里的假地址,真正的解析在代理那一端完成。ping 这类工具看到的不是网站真实地址。要查看真实地址,需要在客户端里看连接信息,或者换 nslookup 配合指定 DNS 来测。
fake-ip 和 redir-host 哪个更好?
没有标准答案。fake-ip 速度快、规则匹配稳定,兼容性问题多出在个别程序上;redir-host 兼容性更直接,但可能出现解析延迟和污染问题。新手通常保持客户端默认设置,遇到具体问题再针对性调整。
开了 fake-ip 之后,局域网里的设备访问不了怎么办?
局域网域名、路由器管理页面这类内部服务,需要加入 fake-ip-filter,让它们按真实解析处理。具体写法见客户端的覆写或配置文件,改之前先备份。如果不会写,可以暂时切回默认的真实解析模式验证是不是它的原因。
这些设置要不要自己改?
多数用户不需要。订阅和客户端默认已经给出可用的组合。只有在遇到解析异常、局域网访问不了、个别应用连不上时,才需要看这一层,并且一次只改一项,记下改了什么,方便还原。