DNS 实践

给 VPS 跳板配好 DNS,让出口找到更快的 IP

约 3 分钟

用 VPS 做跳板,挑好机房和线路之后,还有一件事值得做:给节点配好 DNS。

访问一个网站,电脑先连到 VPS,再由 VPS 去连接目标服务器。后一段连接快不快,和 DNS 返回了哪个 IP 有关系。

所以,走海外节点的域名,应该围绕那个节点做近地查询,再从候选地址里找出节点访问更快的 IP。东京 VPS 出口,要优化的是东京到目标网站这一段。

在 VPS 上查询,也在 VPS 上测速

同一个域名可以返回多个 IP。国内 DNS 给出的候选地址,东京 VPS 连过去可能要绕远。前半段线路再快,也会被后半段拖慢。

我的日本节点上已经有 DNS 服务,本地通过分组把部分域名交给它查询。

这里最容易配错的地方,是 DNS 在海外查了,IP 却在家里的路由器上测速。

业务连接最后由 VPS 发起,本地测到的是家里到目标 IP 的表现。因此,要在 VPS 上部署具备地址优选能力的 DNS,由它查询、测速并返回结果,本地前端负责转发对应域名的查询。

如果本地也用 SmartDNS,要关闭这部分转发域名的本地测速,避免把节点选好的地址再按家庭网络筛一遍。

验收时,检查应用是否使用了节点 DNS 选出的 IP,再比较实际访问速度。

严查时,远程 DNS 也走代理

IP 阻断也会影响 DNS。日本节点本机能正常解析,经可用代理可以完成 DoT 查询,但从家里直连,多个 TCP 端口都超时。

依赖它的域名分组因此开始解析失败。海外节点上的 DNS 还在运行,本地却无法把请求送过去,前面做的优化也就用不上了。

在严查的时候,访问远程 DNS 也通过可用代理,会更稳妥。SmartDNS 本身提供 Proxy 设置,可以给代理起一个名字,再让指定上游使用它。SmartDNS 代理配置

我家的海外 DNS 分组配在 SmartDNS 中,可以直接给日本上游指定代理。

具体配置交给 Codex,说明要让哪些域名使用哪个 VPS 的 DNS、远程查询通过哪个可用代理,保留其他分组。完成后确认这些域名能正常解析,并由相应的 VPS 出口访问。