使用 Maradns 修改阿里云服务器的 DNS

用过阿里云服务器的小伙伴可能或多或少遇到过 DNS 解析的问题,比如某些域名解析不了,某些域名解析超时,或者有时候能解析,有时候不能。

这些问题很大一部分原因来自于阿里云服务器默认的 DNS,阿里云默认使用的是内网 DNS,应该跟阿里云公共 DNS(223.5.5.5)是同一个,但这个 DNS 不太稳定,有时候会遇到解析超时,或部分域名无法解析的情况。

解决问题的方法肯定是更换 DNS,如果只是简单的更换 DNS,那是非常简单的,只需要更改/etc/resolv.conf这个文件就可以了。但是更改完 DNS 会遇到另一个问题,就是部分内网域名无法解析,所以就需要指定这些内网域名使用内网 DNS,或者你简单的使用 Hosts 指定下 IP 也可以,但是 Hosts 会存在过期的现象,你也不知道内网 IP 啥时候会变。

小山的解决方案是在服务器搭建一个 DNS 代理,然后把服务器的 DNS 指向 DNS 代理,在 DNS 代理设置指定域名使用指定 DNS 解析,其他域名使用第三方 DNS 解析。

搭建的软件我选择的是:Maradns,一个轻量级的 DNS 服务器,资源占用小,速度快,而且支持 Windows。

Maradns Aliyun

下面就教大家如何使用 Maradns 搭建 DNS 代理以及更改阿里云 DNS,以下教程只针对 Linux,Windows 自行变通。

安装/配置 Maradns

前往 https://maradns.samiam.org/download.html 下载 Maradns 源代码,Linux 下载 maradns-x.x.x.tar.bz2 ,Windows 下载 maradns-x.x.x-win32.zip。

下载后解压,然后跳转到源码目录。

输入sudo make && sudo make install编译并安装

安装完他会默认启动,可以先将它关闭:/etc/init.d/maradns stop;/etc/init.d/maradns.deadwood stop

安装完成后就可以开始配置了。

Maradns 有两个核心程序:Maradns 和 Deadwood,Deadwood 可以用作 DNS 代理,所以我们只需要修改 Deadwood 的配置文件即可。

打开 Deadwood 的配置文件/etc/dwood3rc

删除以下行注释(前面的 #)

#upstream_servers = {}
#upstream_servers["."]="8.8.8.8, 8.8.4.4" # Servers we connect to

这两行表示上游 DNS 服务器,大家可以根据需要更改第二行的 DNS 服务器,比如我用的是 DNSPod 和 114 的。upstream_servers["."]="119.29.29.29, 114.114.114.114"

然后添加指定域名指定的 DNS 服务器

删除以下行注释(前面的 #)

#root_servers = {}

然后在这个行的下面添加root_servers["mirrors.cloud.aliyuncs.com."]="100.100.2.138",这是让阿里云镜像内网域名使用内网 DNS 解析,否则其他公共 DNS 解析不了,注意每个域名后面必须有一个点,多个 DNS 服务器以逗号分割。

如果你有其他需求,也可以继续添加,比如内网 OSS 的域名:root_servers["vpc100-oss-cn-qingdao.aliyuncs.com."]="100.100.2.138",DNS 服务器一定要设置成内网的 DNS,可以通过/etc/resolv.conf查看。

修改完成后,启动 Deadwood 测试是否生效:sudo /etc/init.d/maradns.deadwood start

默认 Deadwood 绑定的是 127.0.0.2,可以通过此命令测试:nslookup www.mivm.cn 127.0.0.2,如果提示为找到nslookup命令,使用包管理工具进行安装:sudo yum install bind-utilssudo apt install dnsutils

如果一切正常,修改/etc/resolv.conf的第一个 DNS 服务器为 127.0.0.2,第二个 DNS 服务器别删,只有当第一个服务器解析超时才会用第二个,并设置 Deadwood 为开机启动:chkconfig maradns.deadwood on

Maradns 貌似会自动开机启动,可以通过此命令关闭:chkconfig maradns off

重启系统测试一切是否正常。


如果以上有任何不懂,或者是 Windows 平台的相关问题,欢迎加入 QQ 群与我探讨。

微信公众号二维码

微信扫描二维码关注我们

点赞

发表评论

电子邮件地址不会被公开。 必填项已用*标注

Solve : *
4 × 7 =


此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据