开发者社区> 烂泥行天下> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

dnsmasq搭建简易DNS服务器

简介:
+关注继续查看

一、dnsmasq简介

dnsmasq是一款小巧且方便地用于配置DNS服务器和DHCP服务器的工具,适用于小型网络,它提供了DNS解析功能和可选择的DHCP功能。

dnsmasq可以解决小范围的dns查询问题,如果业务是跨机房、跨地区的话不建议使用dnsmasq做为dns解析服务器。

dnsmasq官网如下:

http://www.thekelleys.org.uk/dnsmasq/doc.html

clip_image001

下载dnsmasq地址如下:

http://www.thekelleys.org.uk/dnsmasq/

clip_image002

通过上图,我们可以看到dnsmasq目前还在持续性更新。

二、安装dnsmasq

dnsmasq的安装我们可以源码安装,也可以直接通过yum和apt-get方式进行安装,下面对此分别介绍下。

2.1 源码安装

源码安装dnsmasq,从dnsmasq官网下载,如下:

wget http://www.thekelleys.org.uk/dnsmasq/dnsmasq-2.75.tar.gz

clip_image003

yum -y install gcc

clip_image004

tar -xf dnsmasq-2.75.tar.gz

cd dnsmasq-2.75

make install

clip_image005

clip_image006

安装完毕后,查看下dnsmasq的版本。如下:

dnsmasq -v

clip_image007

2.2 yum和apt-get方式安装

yum方式安装,如下:

yum -y install dnsmasq

clip_image008

dnsmasq -v

clip_image009

apt-get方式安装,如下:

sudo apt-get -y install dnsmasq

clip_image010

dnsmasq -v

clip_image011

dnsmasq安装完毕后,现在我们来配置dnsmasq。

三、dnsmasq配置

dnsmasq配置选项比较多,我们可以根据实际需求来进行配置。下面介绍下,平时最常使用的配置方法。

vim /etc/dnsmasq.conf

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

strict-order

listen-address=192.168.1.24

address=/ilanni.com/192.168.1.24

server=223.5.5.5

bogus-nxdomain=223.5.5.5

clip_image012

resolve-file定义dnsmasq从哪里获取上游DNS服务器的地址, 默认是从/etc/resolv.conf获取。

在此我们定义的是从/etc/resolv.dnsmasq.conf文件中获得。

strict-order表示严格按照resolv-file文件中的顺序从上到下进行DNS解析,直到第一个解析成功为止。

listen-address定义dnsmasq监听的地址,默认是监控本机的所有网卡上。

如果想让局域网内的其他机器使用dnsmasq解析域名的话,需要添加本机的IP地址。

address自定义域名解析的IP地址,在此已ilanni.com这个域名为例。注意dnsmasq是支持泛域名解析的,以上配置就是一个典型的泛域名解析实例。

address也可以过滤某些网站,比如如果不想让客户端解析youk.com这个域名的话,我们这个把该域名解析到一台不存在的服务器上或者解析到127.0.0.1这个地址。如下:

address=/ilanni.com/127.0.0.1

为了防止DNS污染,我们使用bogus-nxdomain定义DNS解析的服务器。

注意:如果在阿里云服务器上配置dnsmasq,一定要启用此项。

server这行告诉dnsmasq使用DNS服务器进行解析

我们也可以通过server对不通的网站使用不通的DNS服务器进行解析。如下:

server=/google.com/8.8.8.8

以上表示对于google的服务,使用谷歌的DNS解析。

以上配置完毕后,需要重启dnsmasq服务,重启完毕后局域网中的其他机器,就可以通过该DNS服务器解析公网的域名。

四、客户端测试

现在我们切换到客户端,修改客户端的dns配置文件。在此已centos6为例进行讲解,如下:

cat /etc/resolv.conf

clip_image013

nslookup ilanni.com

nslookup wwww.ilanni.com

nslookup www.baidu.com

clip_image014

通过上图,我们可以很明显的看出www.ilanni.com、ilanni.com都解析到了192.168.1.24这台服务器上,而www.baidu.com已经解析到公网的IP地址。

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
Linux搭建时间同步服务器
<span style="font-family:Tahoma,Arial">一、搭建时间同步服务器</span><br style="font-family:Tahoma,Arial"><span style="font-family:Tahoma,Arial">1、编译安装ntp server</span><br style="font-family:Tahoma,Arial"><di
1841 0
查看linux服务器CPU详细情况
<p style="line-height:23.8px; color:rgb(85,85,85); font-family:宋体,'Arial Narrow',arial,serif; font-size:14px; padding-top:0px; padding-bottom:0px; margin-top:0px; margin-bottom:0px; clear:both; he
1570 0
linux搭建git服务器
git是非常方便的版本控制工具,目前网上有很多免费的git仓库可以给我们使用,但是有些时候我们并不放心将我们的项目寄放在别人的服务器上,这个时候就需要自己搭建一个git服务器。 在linux上面搭建git服务器是一件非常轻松的事情,只需要按照以下几步就能完成。为了确保整个过程的顺利,最好新创建一个名为git的账号,再使用该账号进行配置 1.安装git 在linux系统中,git安装只
5011 0
【inode】Linux服务器inode索引节点用满原因以及解决方法
系统出现异常 我们团队的阿里云服务器在前几天运行过程中,服务器CPU负载长时间达到100%,并且不能通过ssh连接服务器。 经过重启服务器后对服务器进行连接,发现 服务器上的crontab不能正常运行 php-fpm服务不能正常开启 crontab的报错提示为 ...
2106 0
通用linux接口服务器参数调优
1. 如果需要支撑百万级同时在线数,需要对linux默认内核参数进行调整,我们的典型配置是在 /etc/sysctl.
650 0
linux btp 服务器 端及客户端配置
Server端/etc/ntp.conf Client端/etc/ntp.conf windows ntp安装配置
670 0
不能ssh连接ubuntu linux 服务器 secureCRT不能ssh连接服务器 不能远程ssh连接虚拟机的ubuntu linux
我是用的是secureCRT,远程连接我的虚拟机里面的ubuntu 直接报错,连接不上 1,先分别在windows上ipconfig和ubuntu上ifconfig下 互ping一下,是可以ping通的   2,ubuntu上ssh localhost 发现时没有ssh服务 3.
985 0
jsch ssh服务器调用Linux命令或脚本的小问题
代码如下: public static boolean execshell(String command, String user, String passwd, String host) throws JSchException, IOException { c...
702 0
Linux服务器CPU的一些主要指标说明
LoadRunner 监控到的Linux服务器CPU的一些主要指标说明 CPU的主要指标:CPU UtilizationCPU 使用率,CPU的使用时间百分比,75%以上就比较高了。
1016 0
文章
问答
文章排行榜
最热
最新
相关电子书
更多
Spring Boot2.0实战Redis分布式缓存
立即下载
友盟+智能认证U-Verify
立即下载
挑战双11实时数据洪峰的流计算实践
立即下载