环境:ubuntu16.04

解说:ubuntu使用dnsmasq获取要解析的网站ip,dnsmasq通过域名服务器获取网站ip,并将ip缓存起来,那么就可以减少对外网域名服务器的访问,从而可以使系统迅速地获取ip

今天遇到dns被劫持的情况,在此记录一下:

1.首先如何确定是否被劫持:

那么查询一个并不存在的域名

nslookup notexit.comrrrr

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

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

nslookup notexit.comrrrr 8.8.8.8

输出的内容如下:

jello@jello:~$ nslookup notexit.comrrrr 8.8.8.8
Server: 8.8.8.8
Address: 8.8.8.8#53

** server can't find notexit.comrrrr: NXDOMAIN

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

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 (此启动方法总是失败,而且还会自动往/var/run/dnsmasq/resolv.conf中添加之前的错误dns地址)

因此使用以下方法启动dnsmasq:

sudo service dnsmasq start

注意:如果重启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 ((此启动方法总是失败,而且还会自动往/var/run/dnsmasq/resolv.conf中添加之前的错误dns地址)

因此使用以下方法启动dnsmasq:

sudo service dnsmasq start

linux的dns被劫持的更多相关文章

  1. (DNS被劫持所导致的)QQ音乐与视频网页打开很慢的解决方法

    这周开始发现一个很让人抓狂的现象,QQ音乐网页(http://y.qq.com)与QQ视频(http://v.qq.com/)网页打开超慢,甚至是无法打开,严重影响了业余的音乐视频生活. 以QQ视频为 ...

  2. [Linux] Chang DNS Setting on Linux

    主机的虚拟机使用 NAT 模式时, NAT的DNS不好用.于是需要将虚拟机的DNS改成和主机的一样,这样虚拟机也可以请求互联网资源. Linux的DNS 服务器定义在 /etc/resolv.conf

  3. Linux下dns服务器搭建

    Linux下dns服务器搭建1-环境Red Hat Enterprise Linux Server release 6.7 (Santiago)2-配置本地yum源安装dns相关包yum -y ins ...

  4. Linux刷新DNS缓存

    网上查了下,发现linux刷新dns的缓存方法都是: sudo /etc/init.d/nscd restart 但是在我的机器上,发现提示命令找不到: sudo /etc/init.d/nscd: ...

  5. RedHat Linux AS4 DNS 配置

     RedHat Linux AS4 DNS配置   检查当前系统中安装 DNS功能组件bind情况 [root@svr01 /]# rpm -qa|grep bind* ypbind-1.17.2 ...

  6. Linux的DNS配置2-主从服务器

    1.实验背景 之前写了Linux的DNS配置1-DNS入门,其中只用了一台DNS服务器,但一般在大型网络中,都要通过配置辅助DNS服务器可以提高DNS服务的可靠性,本次实验即配置DNS主从服务器 2. ...

  7. Linux 搭建DNS

    Linux 搭建DNS 使用yum源安装 yum -y install bind* 修改主配置文件 [root@localhost ~]# cp /etc/named.conf /etc/named. ...

  8. 全面了解移动端DNS域名劫持等杂症:原理、根源、HttpDNS解决方案等

      1.引言 对于互联网,域名是访问的第一跳,而这一跳很多时候会“失足”(尤其是移动端网络),导致访问错误内容.失败连接等,让用户在互联网上畅游的爽快瞬间消失. 而对于这关键的第一跳,包括鹅厂在内的国 ...

  9. linux 软连接创建 压缩解压缩 linux的dns服务相关

    linux软连接创建 注意用绝对路径,语法如下 ln -s 目标文件绝对路径 软连接名字绝对路径 ln -s /小护士.txt /tmp/hs.txt 修改linux的PS1变量,命令提示符变量 PS ...

随机推荐

  1. 2018/04/03 PHP 中的 进制计算问题

    还是先抛出一个问题 017 + 1 = ? -- 如果你知道的话,那也就不用看下面了,哈哈. 答案是 // 15 -- 如果你想的答案和这个不对的话,说明你也有这个问题,也应该学习一下啦. -- 首先 ...

  2. CSS表单设计

    今天我们开始学习<十天学会web标准(div+css)>的css表单设计,包含以下内容和知识点: 改变文本框和文本域样式 用图片美化按钮 改变下拉列表样式 用label标签提升用户体验 一 ...

  3. 学习Linux二(创建、删除文件和文件夹命令)

     转自:http://www.cnblogs.com/zf2011/archive/2011/05/17/2049155.html 今天学习了几个命令,是创建.删除文件和文件夹的,在linux里,文件 ...

  4. docker学习(3)--Dockfile详解

    转载请注明出处:http://www.cnblogs.com/lighten/p/6900556.html 1.基本说明 Dockfile是一个用于编写docker镜像生成过程的文件,其有特定的语法. ...

  5. ubuntu 安装ftp,配置,和java调用

    1:安装 ftp服务器 sudo apt-get install vsftpd 自动安装使用的是主机的用户名和密码:liyafei,1367xxx 访问方式,ftp://localhost:21,ft ...

  6. Scala系统学习(二):Scala开发环境安装配置

    Scala可以安装在任何基于UNIX/Linux或基于Windows的系统上.在您的机器上开始安装Scala之前,必须在计算机上安装Java 1.8或更高版本. 下面请按照以下步骤安装Scala. 步 ...

  7. php unset()函数销毁变量但没有实现内存释放

    <?PHP $a = "hello";$b = &$a;unset( $b );echo $a; // 输出 helloecho $b; // 报错$b = &quo ...

  8. 安装PHP及Memcache扩展

    安装PHP及Memcache扩展 地址:http://blog.csdn.net/poechant/article/details/6802312   1. 下载 (1)libevent 官方网页:h ...

  9. IO—代码—基础及其用例

    字节流:文件.图片.歌曲 使用字节流的应用场景:如果是读写的数据都不需要转换成字符的时候,则使用字节流. 字节流处理单元为1个字节, 操作字节和字节数组.不能直接处理Unicode字符 字节流可用于任 ...

  10. zw版【转发·台湾nvp系列Delphi例程】HALCON FastThreshold1

    zw版[转发·台湾nvp系列Delphi例程]HALCON FastThreshold1 procedure TForm1.Button1Click(Sender: TObject);var img ...