核心结论
Fake-IP 模式会给域名返回 198.18 开头的虚拟地址,由客户端在连接时再换成真实目标。网站打不开通常是因为程序缓存了虚拟地址、某些域名本就不适合使用虚拟地址(局域网、时间同步、联网检测、部分游戏),或客户端关闭后缓存未清除;把相关域名加入 fake-ip-filter 并清除 DNS 缓存即可解决。
文章目录 8 个章节
问题现象
Fake-IP 是 Clash 系与 sing-box 客户端常用的 DNS 模式。开启后,系统查询任何域名都会立即得到一个 198.18.x.x 形式的虚拟地址,真正的解析交给客户端在建立连接时完成。它速度快、不易被污染,但也会带来一些特有的问题:
- 某些网站或应用在开启代理后反而打不开,关闭代理后正常;
- 关闭代理客户端之后,部分网页一直打不开,
ping显示的仍是198.18地址; - 局域网中的 NAS、打印机、路由器管理页面无法访问;
- Windows 右下角显示“无 Internet 访问”,或系统时间无法同步;
- 部分游戏、语音通话或点对点应用连接失败;
- WSL、Docker 容器中的程序解析到
198.18地址后无法连接。
判断要点:如果问题只在 Fake-IP 开启时出现,并且解析结果是
198.18开头,就可以锁定是 Fake-IP 相关问题,而不是节点问题。
可能原因
| 原因 | 判断方法 | 解决方法 |
|---|---|---|
| 客户端关闭后虚拟地址仍在缓存中 | 关代理后 nslookup 或浏览器仍得到 198.18 地址 |
清除系统与浏览器 DNS 缓存,重启浏览器 |
| 局域网域名被分配了虚拟地址 | 访问 .lan、.local 等域名失败 |
加入 fake-ip-filter,局域网走直连 |
| 系统联网检测与时间同步域名被接管 | 显示“无 Internet”,或时间不同步 | 将联网检测、时间服务器域名加入过滤名单 |
| 应用不走客户端却拿到了虚拟地址 | 系统代理模式下,不支持代理的程序失败 | 开启 TUN 模式,或将该域名加入过滤名单 |
| 游戏、语音、STUN 需要真实地址 | 点对点连接、NAT 类型检测失败 | 将相关域名加入过滤名单,或改用直连规则 |
| 容器或子系统解析到虚拟地址 | WSL、Docker 中连接 198.18 超时 | 让容器走宿主机代理,或调整其 DNS 设置 |
为什么会出现这些问题
Fake-IP 的前提是:所有连接虚拟地址的流量都必须经过客户端。在 TUN 模式下,客户端接管了整机流量,这个前提通常成立;但在只开系统代理的情况下,不支持系统代理的程序会直接去连接 198.18 地址,而系统里根本没有这台“服务器”,连接自然失败。
另一个问题来自缓存。系统、浏览器、部分应用都会把解析结果保存一段时间。客户端关闭后,这些缓存里的虚拟地址没有任何程序接管,就会出现“关了代理反而上不了网”。有的客户端还会把虚拟地址映射保存到本地文件,重启后继续沿用,这是正常设计,但与外部缓存叠加时容易让人困惑。
Fake-IP 与两种接管方式的搭配
| 搭配 | 表现 | 建议 |
|---|---|---|
| Fake-IP + TUN 模式 | 整机流量都经过客户端,兼容性最好 | 推荐,只需少量过滤名单 |
| Fake-IP + 仅系统代理 | 支持代理的程序正常,其他程序可能拿到虚拟地址后失败 | 容易出问题,建议开启 TUN |
| redir-host + 系统代理 | 兼容性好,但更易受污染和泄露影响 | 只在大量应用不兼容时使用 |
换句话说,很多被归咎于 Fake-IP 的问题,本质上是“只开了系统代理”导致的。系统代理只影响愿意读取代理设置的程序,而 Fake-IP 的 DNS 接管却会影响整台电脑,两者覆盖范围不一致,才会出现部分程序拿到虚拟地址却没有被接管的情况。两种接管方式的区别可参考系统代理和 TUN 模式区别。
快速自查
- 用
nslookup查询出问题的域名,看返回的是不是198.18地址; - 确认你是在 TUN 模式还是系统代理模式下使用 Fake-IP;
- 清除系统 DNS 缓存,并完全退出浏览器后重新打开;
- 访问局域网设备时改用 IP 地址访问,确认设备本身在线;
- 临时把 DNS 模式切换为 redir-host 对比,只用于判断,不必长期使用。
逐步排查
-
确认解析结果。
# Windows nslookup 出问题的域名 # 查看系统缓存中是否残留虚拟地址 ipconfig /displaydns | Select-String "198.18"# macOS nslookup 出问题的域名 dscacheutil -q host -a name 出问题的域名 -
清除缓存。
ipconfig /flushdnssudo dscacheutil -flushcache sudo killall -HUP mDNSResponderChrome 系浏览器还需在
chrome://net-internals/#dns页面清除主机缓存,并在chrome://net-internals/#sockets中刷新连接池。 -
检查连接是否被客户端接管。
# 测试虚拟地址对应的连接是否能建立 Test-NetConnection 出问题的域名 -Port 443nc -vz 出问题的域名 443在 TUN 模式下应能连通;如果失败,而切到 TUN 模式后恢复,说明是“程序不走代理却拿到虚拟地址”,参考 TUN 模式设置。
-
配置 fake-ip-filter。 以 Mihomo 内核为例,在 DNS 覆写中加入不应分配虚拟地址的域名(字段名与通配写法以实际版本文档为准):
dns: enable: true enhanced-mode: fake-ip fake-ip-range: 198.18.0.1/16 fake-ip-filter: - '*.lan' - '+.local' - '+.home.arpa' - 'time.*.com' - '+.msftconnecttest.com' - '+.msftncsi.com'+.表示匹配该域名及所有子域名。游戏或语音应用的域名需要根据客户端连接面板中实际出现的域名逐个添加。 -
确保局域网走直连。 在规则中保留
IP-CIDR,192.168.0.0/16,DIRECT等局域网网段规则(多数订阅模板已包含),避免局域网流量被发往节点。 -
处理 WSL 与容器。 让子系统或容器直接使用宿主机的代理端口,而不是依赖宿主机的 Fake-IP 解析,具体做法见 Claude Code 在 WSL 中的代理设置。
常见误区
- 看到 198.18 就以为 DNS 被污染:这是 Fake-IP 的正常表现,不是污染;
- 遇到一个兼容问题就改回 redir-host:会失去防污染与速度优势,更推荐用过滤名单处理;
- 只清系统缓存不重启浏览器:浏览器有独立缓存,不清除仍会沿用旧地址;
- 过滤名单写得过宽:把大量常用域名都加入过滤名单,相当于放弃 Fake-IP,还可能引入 DNS 泄露。
- 修改配置后不重启内核:部分客户端需要重新加载配置或重启内核,新的过滤名单才会生效,改完记得再清一次缓存。
仍然无法解决
- 把客户端恢复为订阅默认配置,排除自定义覆写中的语法错误;
- 在客户端日志中搜索
dns和出问题的域名,看它命中了哪条规则; - 如果关掉客户端后整机都无法上网,参考开了代理客户端后完全没网怎么办;
- DNS 相关的基础概念与完整配置思路,见 DNS 问题排查指南。
请遵守当地法律法规与服务条款,合理使用网络工具。
相关问题
常见问题
198.18 开头的地址是什么?
这是 Fake-IP 模式分配的虚拟地址,属于保留给网络测试用的地址段,不对应任何真实服务器。客户端运行时,发往这些地址的连接会被接管并转换成真实目标,所以看到 198.18 本身是正常的。
关掉代理客户端后网页打不开,是 Fake-IP 的问题吗?
很可能是。浏览器或系统还缓存着之前拿到的 198.18 地址,客户端关闭后这些地址无处可去。执行 ipconfig /flushdns 并重启浏览器,一般就能恢复。
局域网里的 NAS、打印机访问不了怎么办?
把局域网域名后缀(如 .lan、.local)和路由器管理域名加入 fake-ip-filter,并确保局域网网段走直连规则,让它们拿到真实地址。
要不要干脆改用 redir-host?
不建议为少数兼容问题整体放弃 Fake-IP。它在速度和防污染方面优势明显,绝大多数兼容问题都能用过滤名单解决;实在有大量不兼容的应用,再考虑切换模式。
本文最后更新于 。网络服务与 AI 平台政策变化较快,如发现信息过时,欢迎通过联系我们反馈。