Linux dnsmasq 服务

March 22, 2016

Linux dnsmasq 服务

dnsmasq 是一个可以运行在 Linux 系统上的小软件,一般被用来当做本地的一个 dns 缓存工具。好像 Windows 系统都自带了一个 DNS 缓存工具,可以通过缓存 dns 数据,减少向上层路由器查询域名解析的次数,来加速访问速度。之前在碰见 ubuntu 访问网页速度慢的时候,很多人推荐安装这个软件,于是我也捣鼓了一下,虽然好像收获不多,不过发现 dnsmasq 还是蛮好用的,至少我可以用它来屏蔽广告!!!恩,是这样的,咱们可以通过修改 hosts 文件来屏蔽广告,但是确实有点麻烦,至少手机上不好操作。后来我买了一个小米路由器,然后刷了潘多拉的系统,安装上了 dnsmasq ,结果就是我家的所有设备都可以屏蔽广告了,确实不错。

当然了,dnsmasq 提供的功能还是挺多的,我对它的了解还是很初级的。

简介

Dnsmasq是一个很实用的小工具

  1. 提供dns服务
  2. 优先使用本地自定义dns
  3. 提供dhcp服务

安装

在 ubuntu 上安装还算很简单,以下命令行搞定:

sudo apt-get install dnsmasq

配置

/etc/resolv.conf

这个文件定义了 dns 服务器的地址。格式:

nameserver 127.0.0.1
nameserver 8.8.8.8

一般不需要更改,在 Ubuntu 上,这个文件的开头也写了 DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN .

/etc/dnsmasq.conf

这个是 dnsmasq 使用的配置文件。安装 dnsmasq 完后就会生成一个,里面有很详细的说明和例子,但是都是注释的,也就是等于这个是一个空的文件,你可以把这个文件做一个备份,然后新建一个空白的文件,只写你需要的配置就可以。这样看上去比较清晰一些,不然总是在一大堆 E 文里找你想要的东西也是很麻烦的,特别是英文不好的,看着头疼。
下面是 dnsmasq.conf 里常用的一些配置说明,更详细的可以看原始的 dnsmasq.conf ,里面都有注释,只不过是英文的。

  • listen-address=127.0.0.1 #定义 dnsmasq 监听的地址,一般写本地就可以,如果是需要共享给局域网的其他电脑,需要把本机的内网 IP 地址写进来,例如 listen-address=192.168.1.101,127.0.0.1

  • strict-order #是否需求读取其他的配置,如果需要就打开,不需要就前面加一个 # 号注释掉
    no-hosts #不需要读取本地的 /etc/hosts 文件。/etc/hosts 文件的优先级比 dns 缓存高,但是只能一一配对,一个域名对应一个 IP 。如果需要读取 hosts 文件,就注释掉这一行。

  • cache-size=2048 #缓存的大小。默认是 150 ,最大好像是 10000.

  • server=/cn/114.114.114.114 # 所有 cn 域名和子域名的解析都由 114.114.114.114 来处理,这样可以把国内国外的域名分别交给不同的 dns 服务器来处理。

  • address=/domain.name/192.168.1.102 # 把 domain.name 这个域名解析到 192.168.1.102 。这个功能很好玩,有几个比较常用的场景,一个是做内网的域名解析,你可以把任意你想要的域名解析到局域网内的某个服务器上,这样局域网内的其他电脑就不需要手动输入难记的 IP 地址了。另外,你可以把一些广告商的域名解析到 127.0.0.1 ,这样你就不用被满屏的广告打扰了。当然,你可以把一些国外的网站指向一个没有被墙的 IP 上,这样也可以实现翻墙,虽然不一定有效。

--- EOF ---

添加新评论