Clash Verge 开代理后内网站点打不开?用 DNS 覆写让指定域名走内网 DNS 直连
【摘要】 用 Clash Verge 开着 TUN 模式上网很方便,但我遇到一个问题:访问内网的大模型接口时,开代理就返回 503 的 HTML 页面,关掉代理又正常。这篇记录排查和最终的配置。 一、现象我给内网域名(下面用 example.edu.cn 代替)加了一条规则:rules: - DOMAIN-SUFFIX,example.edu.cn,DIRECT查看 Clash 日志,请求确实命中了...
用 Clash Verge 开着 TUN 模式上网很方便,但我遇到一个问题:访问内网的大模型接口时,开代理就返回 503 的 HTML 页面,关掉代理又正常。这篇记录排查和最终的配置。
一、现象
我给内网域名(下面用 example.edu.cn 代替)加了一条规则:
rules:
- DOMAIN-SUFFIX,example.edu.cn,DIRECT
查看 Clash 日志,请求确实命中了 DIRECT,但依然访问失败。说明问题不在“走哪条线路”,而在“域名被解析成了什么”。
二、原因
TUN 模式下 Clash 默认用 fake-ip:所有域名先被解析成 198.18.x.x 的假地址,真正解析交给后面的出站。命中 DIRECT 时,如果使用的是公共 DNS,内网域名要么解析不到,要么解析成外网地址,请求就到不了内网服务。内网域名只有内网自己的 DNS 才能正确解析。
三、解决:DNS 覆写
在 Clash Verge 的“DNS 覆写”里开启覆写,等价配置如下:
dns:
enable: true
enhanced-mode: fake-ip
ipv6: false
fake-ip-filter:
- "+.example.edu.cn"
nameserver-policy:
"+.example.edu.cn":
- 内网DNS地址1
- 内网DNS地址2
respect-rules: true
要点:
- fake-ip-filter:让该域名不再被分配假地址,而是真实解析。
- nameserver-policy:指定这个域名后缀用内网 DNS 解析。内网 DNS 地址可以在系统网络详情里看到,别写进公开文章或分享的配置里。
- respect-rules(界面里叫“直连域名服务器遵循策略”):让 DNS 查询也遵循规则,命中 DIRECT 的域名查询就直接发出去。
- 关闭 IPv6,避免解析出 AAAA 记录后走了不通的路径。
四、验证
保存后重启内核,用命令确认解析结果:
nslookup llm.example.edu.cn
返回的应该是真实地址,而不是 198.18 开头的假地址。再看 Clash 日志,该请求显示 DIRECT 并且正常返回,接口恢复。
五、踩坑
- 只写 DIRECT 规则不够,必须同时处理 DNS,这是我最开始漏掉的一步。
- nameserver-policy 的域名写法要带 +. 前缀,才能匹配所有子域名。
- 换网络(比如从内网切到手机热点)后,内网 DNS 就不可达了,这时内网域名本来也访问不了,属正常现象;不要因此怀疑配置错了。
- 订阅更新后覆写有时会被刷掉,建议用 Clash Verge 的“全局扩展配置”保存,而不是改订阅文件本身。
六、小结
代理软件里“规则”决定走哪条线,“DNS”决定解析到哪里,两者要配套。内网域名走直连时,记住三件事:DIRECT 规则、fake-ip-filter、nameserver-policy。这样开着代理也能同时访问内网服务和外网。
【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)