五九盾
首页 / 新闻公告
业内
如何解决dns被劫持
2020-05-13 11:02:35

1.怎样确定DNS是否被劫持呢:

只需要查询一个并不存在的域名

nslookup mmmmm.happy 

如果返回了一个ip地址,说明dns被劫持了,假设此ip地址为:123.34.5.6

 

那么用8.8.8.8域名服务器解析一下此错误域名试试:

 

nslookup mmmmm.happy 8.8.8.8

 

输出的内容如下:

 

[root@master etc]# nslookup mmmmm.happy 8.8.8.8

Server:         8.8.8.8

Address:        8.8.8.8#53

 

** server can't find mmmmm.happy: NXDOMAI

提示内容说明此域名并不存在

 

 

 

2.那么如何处理这种情况呢?

 

由于ubuntu16.04使用dnsmasq对域名进行解析,那么修改dnsmasq的配置文件:

 

因为linux处理dns请求有个限制,在/etc/resolv.conf中只能配置三个dns地址,那么干脆在/etc/resolv.conf文件中只保留localhost为域名服务器,然后新建一个存储外部域名服务器地址的配置文件,并将该配置文件加入到dnsmasq的配置项resolv-file中,例如:

 

2.1新建配置文件/etc/resolv.my.conf,往其中填入内容如下:

 

nameserver 8.8.8.8

 

nameserver 8.8.4.4

 

2.2往/etc/dnsmasq.conf中添加以下内容:

 

resolv-file=/etc/resolv.my.conf

 

2.3重新启动dnsmasq

 

systemctl restart dnsmasq

 

注意:如果重启dnsmasq超时,那么就直接打开/var/run/dnsmasq/resolv.conf

 

里面有解析不存在域名而得到的域名服务器地址,将存在该域名服务器地址的某行删除即可,假设笔者的该文件内容为:

 

nameserver 123.34.5.6

 

nameserver 231.43.5.45

 

那么直接删掉nameserver 123.34.5.6即可

 

 

 

 

 

有效方案如下:

3.还可以直接使用其它的域名服务器地址替换掉这两个ip,然后再重启dnsmasq,笔者修改后/var/run/dnsmasq/resolv.conf配置文件内容如下:

 

nameserver 8.8.8.8

 

nameserver 8.8.4.4

 

重启dnsmasq:

 

systemctl restart dnsmasq

 

 

 

4.如果确认域名被污染或者劫持,也可使用IDC服务商的高防CDN加速来改善遇到的问题。针对dns污染,高防CDN能长期有效对DNS缓存记录获取刷新的时间及数据,保障获取结果的准确性,让用户能尽快获取到正确的IP进行访问。时间=金钱,一旦出现问题,请立即找专业机构进行处理,避免时间耽误过久,导致网站用户流失,到时候只能重头再来,换个域名使用了。