Clash DNS 服务相关

学校的 4 卡服务器无法直接连接外网,因此,需要通过在内网建立反向代理对其提供外网服务。之前简单的使用 Clash 就把 Http、Socks 代理搞定了,但是默认配置的 DNS 代理并非此用途,因此,在这里记录一下设置的过程。

代理服务器:Clash DNS 设置

其实,目的很简单,就是把暴露一个 DNS 代理服务给内网的机器。这里其实是大材小用了,将加密 DNS 解析的功能降级成了一个 DNS 代理服务器。

首先开启 DNS 代理服务,并且将监听端口设置为 53,也就是 DNS 的默认端口。

dns:
  enable: true
  listen: 0.0.0.0:53

这里设置一些比较靠谱的 DNS 明文解析服务器。

  default-nameserver:
   - 119.29.29.29
   - 223.5.5.5

这里设置一些比较靠谱的 DNS 加密解析服务器。

  nameserver:
   - https://doh.pub/dns-query
   - https://dns.alidns.com/dns-query

目标服务器:DNS 设置

打开 /etc/resolv.conf 文件,向其中写入 nameserver IP。其中,IP 就是我们 DNS 反向代理服务器的地址。

注意,这里是立即生效的,不需要重新启动与输入命令激活。同时,这个操作是临时性的,当机器重启或者一些程序更新了此文件,我们写入的内容会被覆盖掉。

也有一些永久的方案的,但是介于我的使用需求基本是临时性的,所以就没有多做调研。

目标服务器:DNS 测试

首先,我们可以使用 nslookup 来测试我们的域名解析是否正确,例如:

nslookup www.baidu.com

如果发现不正确,可以使用其他命令进一步探究原因,例如 dig 命令:

dig @IP -p PORT www.baidu.com
``
这条命令可以测试某个 DNS 服务器的解析服务是否正确,方便我们测试究竟是 DNS 代理服务器搭建问题,还是目标服务器无法链接代理服务器。