一个关于内网域名解析的问题

我们学校有一些网站必须要连接内网才能访问,有一些网站我们给他包装了一个域名用内网的DNS解析给解析一个内网ip,有一些直接就是一个裸露的内网ip(这种如果ip地址纯数字难记的话,我会给他自定义一个域名然后用host文件解析内网IP):


但是最近我发现自从我开了小猫咪的TUN模式(虚拟网卡模式)之后,内网的dns解析服务就失效了,所有有域名的内网网站都打不开了,但是直连内网ip的网站还可以正常访问(如上图)
我现在大概有两种解决方案:

  1. 临时把梯子关掉抓取内网域名的对应内网ip,然后把他们写进系统的host文件里面。但是我不知道怎么抓取内网域名的对应内网ip,我只会查询公网域名的公网ip。
  2. 恢复内网dns的解析服务,我看了一下这个小猫咪TUN模式它其实内置一个有限的虚拟网卡来实现的,而我们的校园内网是一个无线网络,会不会是因为有线网络的优先级比无线网络高导致的?
    求求各位大佬指点
1 个赞

首先,平常按理不用开启tun的吧。

而且我看tun也可以对dns进行设置的

同意楼上,在dns的nameserver字段 加上你学校内网的dns 应该就OK了

在内网ping一下域名就能看到IP了

域名解析失效的原因:
tun 模式拦截了53端口的dns查询,但不知道往何处查询内网的未公开域名。

解决方法:
通过 nameserver-policy: 指定哪些域名走私有DNS。

来个例子,下方配置是为告诉所有 ts.net 的子域名都通过 100.100.100.100 这个DNS服务器解析:

dns:
  nameserver-policy:
    "+.ts.net": "100.100.100.100"

几个相关 clash 配置文档链接:

解决了,谢谢你(´ᴗ`ʃƪ)
不过我用的不是clash for windows,因为这个已经停更了。我用的是clash verge rev,但解决方法类似,就是先用ipconfig /all,查看一下校内的dns服务器的内网地址,然后把这个地址加到clash verge rev的dns里面