- A+
众所周知,总是套路得人心
最近在折腾阿里云轻量服务器的DNSMASQ,初衷是加快一些域名的解析,减少使用的卡顿感,但是问题出现了。
我用惯了Ubuntu Server,对于dnsmasq
的配置还算是比较熟悉,一把梭就是干。结果无论怎么调试,在systemctl
的日志下总是使用的是110开头阿里云的DNS。仔细查看,来自阿里云镜像的dnsmasq
的dnsmasq.service
会默认使用/var/run/dnsmasq/resolv.conf
这里的解析文件。
Day 1
别问,问就是一把梭。尝试直接修改resolv.conf
文件中的nameserver
,成功!但是......直到改完的第二天晚上,我才发现,dnsmasq.service
会莫名其妙的进行类似重启的操作,而一旦重启,就会使得resolv.conf
文件重置为阿里云这个镜像默认的阿里云DNS。🌚
Day 2
行吧,惹不起还跑不起吗,purge完dnsmasq
,立马动手开始编译安装。过程十分愉悦,只是需要手动
systemctl unmask dnsmasq.service
配置好直接启动,然后我就去睡觉了,但是莫名其妙的,自编译安装的dnsmasq
并不能运行......到这一步我就没继续往下追查了,因为......我看到了我能搜到的唯一一篇关于阿里云DNS问题的文章,这篇文章里的老哥也是遇到了这个问题,但是是通过屏蔽环境变量的方式解决的,可是/var/run/
这个目录一般是存放pid的位置,凡是动环境变量总是要多多小心,于是决定换个思路。
Day 3
在Day1的时候就发现在/var/run/dnsmasq/resolv.conf
的文件会变,但是那句话怎么说的来着
一切可变文件在软连接的面前都是纸老虎
停止dnsmasq.service
,删除resolv.conf
ln -s /var/run/dnsmasq/resolv.conf /etc/resolv.dnsmasq.conf
然后启动dnsmasq.service
,完美解决问题!
然而...软连接出来的符号在系统看来并不能算作一个文件,于是在这个dnsmasq
重启之后,/var/run/dnsmas
q的目录下,会出现两个resolv.conf
文件...所以还是不起作用。😷
Day 4
这个问题最影响的还是域名解析的时间,因为dnsmasq
默认的缓存是150条,这对于现代的网络浏览来说,可能真的就是几个网页的问题,所以和没缓存没有什么区别。
直到有一天我找到了...这篇文章,很显然,在/etc/default
下有一个小捣蛋鬼在拦着我们自定义resolv.conf
。
去掉IGNORE_RESOLVCONF=yes
的注释,终于是顺利的用上了自定义的resolv.conf
。
- 我的微信
- 这是我的微信扫一扫
- 我的微信公众号
- 我的微信公众号扫一扫