DNSmasq搭建DNS服务器
原文地址:http://jirry.me/2016/04/19/dnsmasq-on-aliyun/
DNSmasq 是一个小巧且方便地用于配置 DNS 和 DHCP 的工具,适用于小型网络,它提供了 DNS 功能和可选择的 DHCP 功能。它服务那些只在本地适用的域名,这些域名是不会在全球的 DNS 服务器中出现的。DHCP 服务器和 DNS 服务器结合,并且允许 DHCP 分配的地址能在 DNS 中正常解析,而这些 DHCP 分配的地址和相关命令可以配置到每台主机中,也可以配置到一台核心设备中(比如路由器),DNSmasq 支持静态和动态两种 DHCP 配置方式。
安装
执行如下命令安装 DNSmasq:
1 |
yum install dnsmasq -y |
安装成功后,启动 DNSmasq 服务:
1 |
service dnsmasq start # stop / restart |
如果启动没有报错,说明 DNSmasq 已经安装成功。
配置
DNSmasq 的默认配置文件是 /etc/dnsmasq.conf,在修改前,为了防止操作失误可以将配置文件备份一下:
1 |
cp /etc/dnsmasq.conf /etc/dnsmasq.conf.bak |
配置 dnsmasq.conf 文件
- 使用 vim 打开配置文件
- 找到
#resolv-file=将其修改为resolv-file=/etc/resolv.dnsmasq.conf。表示从该文件中读取上游 DNS 服务器 - 找到
#strict-order将其前面的注释 # 号去掉。表示强制按照 resolv.dnsmasq.conf 中的上游 DNS 服务器顺序来进行解析 - 确认
#no-hosts是注释状态(前面有 # 号),这样 DNSmasq 才会读取服务器中的 hosts 文件(关于 hosts 的另一个作用,请看这里) - 找到
#addn-hosts=/etc/banner_add_hosts将其修改为addn-hosts=/etc/dnsmasq.hosts。表示使用 dnsmasq.hosts 代替系统 hosts,这样就可以保证服务器本身的 hosts 文件不受影响 - 找到
#listen-address=将其修改为listen-address=127.0.0.1,123.45.67.89。这个是重要选项,监听地址,要写上 127.0.0.1 和服务器的外网地址,如:123.45.67.89 - 到此,dnsmasq.conf 文件的必要配置已经修改完了,保存并退出配置文件
配置 resolv.dnsmasq.conf 文件
依次执行如下命令来创建 resolv.dnsmasq.conf 文件:
1 |
# 备份原始 resolv.conf |
在配置过程中,我并没有执行最后两行命令,而是直接在 /etc/dnsmasq.conf 的最后追加了下面两行内容(据说使用 5353 端口可以避免 DNS 污染):
1 |
server=208.67.222.222#5353 |
配置 dnsmasq.hosts 文件
依次执行如下命令来创建 /etc/dnsmasq.hosts 文件:
1 |
cp /etc/hosts /etc/dnsmasq.hosts |
到此,DNSmasq 的所有配置基本已经完成。
开机启动
将 DNSmasq 设置为开机自启动:
1 |
chkconfig dnsmasq on |
重启 DNSmasq 服务:
1 |
service dnsmasq restart |
测试
将本地计算机的 DNS 服务器设为刚配置好的服务器 IP 地址,并清除本地 DNS 缓存,具体清除方法可参考:
- Mac:https://support.apple.com/zh-cn/HT202516
- Windows:http://www.pc841.com/article/20130525-13849.html
打开命令行窗口或终端窗口,执行 ping test.com 并查看 IP 是否为之前设置的 127.0.0.1:
1 |
~ ping test.com |
如果是,则表名 DNSmasq 已经配置成功并可以正常使用了。
调优
打开 dnsmasq.conf 文件,在最下方可以添加指定的 DNS 解析,例如:
1 |
# 所有 cn 域名全部使用 114 解析 |
技巧
在 配置 dnsmasqconf 文件 小结中的第 4 条提到了 hosts 文件的另一个作用:将 /etc/dnsmasq.hosts 设置好以后,使用该 DNS 服务的计算机就可以无缝翻**了,甚至可以直接将 DNS 配置到无线路由器中,那么所有的移动设备也可以直接无缝翻** 。
DNSmasq搭建DNS服务器的更多相关文章
- centos DNS服务搭建 DNS原理 使用bind搭建DNS服务器 配置DNS转发 配置主从 安装dig工具 DHCP dhclient 各种域名解析记录 mydns DNS动态更新 第三十节课
centos DNS服务搭建 DNS原理 使用bind搭建DNS服务器 配置DNS转发 配置主从 安装dig工具 DHCP dhclient 各种域名解析记录 mydns DNS动态更 ...
- 第一次搭建dns服务器
CentOS 7 搭建DNS服务器 主要参考的是小左先森的一篇博客:https://blog.51cto.com/13525470/2054121. 1.搭建过程中遇到的几个问题说一下: a.在重启服 ...
- [转]DNS服务器原理详解与Centos6.x下搭建DNS服务器
转自:http://blog.it985.com/8958.html DNS 数据库的记录:正解,反解, Zone 的意义 通过DNS解析过程详解这篇文章,我们知道了要想访问www.zmit.cn,最 ...
- Centos7 搭建DNS服务器与原理配置详解
在搭建我们自己DNS服务器之前,先必须了解下DNS服务器的作用和原理. DNS是在互联网上进行域名解析到对应IP地址的服务器,保存互联网上所有的IP与域名的对应信息,然后将我们对网址的访问,解析成IP ...
- Windows Server 2008 R2 搭建DNS服务器(转)
Windows Server 2008 R2 搭建DNS服务器将本机IP设为首选DNS服务器的地址在dos 下分别输入 nslookup www.mydns.com 和 nslookup 192.16 ...
- centos搭建dns服务器
前言:搭建dns服务器,dns服务器我就不多说什么了,大家都懂,就是域名解析,就将ip装换为域名,域名就可以理解为类似这样的www.baidu.com网址,接下来我就直接上图了.这里面最重要的是修改u ...
- Linux系统下搭建DNS服务器——DNS原理总结
2017-01-07 整理 DNS原理 域名到IP地址的解析过程 IP地址到域名的反向域名解析过程 抓包分析DNS报文和具体解析过程 DNS服务器搭建和配置 这个东东也是今年博主参见校招的时候被很多公 ...
- 快速搭建 DNS 服务器: skydns + etcd
参考: [ skynetservice github ] [ skydns 测试记录 CSDN ] etcd 安装配置 安装 yum install etcd 配置 sed -i 's@ETCD_LI ...
- Centos7.3搭建DNS服务器--BIND
1.系统环境说明 [root@dns-server etc]# cat /etc/redhat-release CentOS Linux release (Core) 防火墙和Selinux关闭 [r ...
随机推荐
- linux环境上运行.net core 初探
1.安装 .net core 环境 rpm --import https://packages.microsoft.com/keys/microsoft.ascsh -c 'echo -e " ...
- CDH5离线安装简记
需要的介质如下:CM: cloudera-manager-el6-cm5.4.3_x86_64.tar.gzCDH parcel: CDH-5.4.0-1.cdh5.4.0.p0.27-el6.par ...
- motan rpc
git : 帮助 文档 基本介绍 Motan是一套基于java开发的RPC框架,除了常规的点对点调用外,Motan还提供服务治理功能,包括服务节点的自动发现.摘除.高可用和负载均衡等.Motan具有 ...
- python 内建函数isinstance的用法以及与type的区别
isinstance是Python中的一个内建函数 语法: isinstance(object, classinfo) 如果参数object是classinfo的实例,或者object是class ...
- [转]手把手教你搭建Hive Web环境
了解Hive的都知道Hive有三种使用方式——CLI命令行,HWI(hie web interface)浏览器 以及 Thrift客户端连接方式. 为了体验下HWI模式,特意查询了多方的资料,都没有一 ...
- 《Java入门第三季》第一章 异常与异常处理
Java异常简介 1.Java异常的体系结构.万恶之源Throwable以及它的两个大儿子Mr.Error(程序终结者)和Mr.Exception(有大量儿子,包括不受查的RuntimeExcepti ...
- 【Python】IO编程
文件读写 StringIO和BytesIO 操作文件和目录 序列化 学习廖老师的py官网的笔记 1.stream的概念.数据交换通常需要建立两根“水管”. 2.同步IO和异步IO.异步性能高,但是编程 ...
- ubuntu 12.04网络设置
1.服务器版本 设置IP地址 ubuntu 12.04的网络设置文件是/etc/network/interfaces,打开文件,会看到 auto lo iface lo inet loopback 这 ...
- Painter's Problem
Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 5378 Accepted: 2601 Description There ...
- [CF911F]Tree Destruction
题意翻译 给你一棵树,每次挑选这棵树的两个叶子,加上他们之间的边数(距离),然后将其中一个点去掉,问你边数(距离)之和最大可以是多少. 首先我们知道,到一个点距离最远的点是直径的端点.考虑贪心,如果我 ...