---
title: 使用dnsmasq搭建内网dns服务器解析内网网站
description: dnsmasq是一款强大的DNS解析软件，可以拦截客户端的请求做出对应的解析
author: chaihongjun
category: operations
published: 2016-05-24
url: https://chaihongjun.me/operations/2.html
---

# 使用dnsmasq搭建内网dns服务器解析内网网站

在公司局域网内搭建了一台web服务器用于日常开发，但是因为没有域名可以方便访问，所以每次开发过程中遇到很多不方便的地方，于是想到能不能给局域网内网的网站也弄个域名，只需要内网的人可以访问就可以了，于是查到dnsmasq可以满足我们的需要，一方面日常网站可以正常解析访问，另外一方面本地局域网开发的网站也可以通过自己配置的域名方便的访问与开发调试。

dnsmasq的整体工作思路是：运行在本地局域网一台服务器上(192.168.0.250)，为局域网的其他人负责解析服务，这里dnsmasq安装到了web服务器上(192.168.0.250)，一台服务器提供多项服务。其他人，比如开发者将自己电脑的DNS服务器地址填写为192.168.0.250，至此，客户端的配置完成了。然后是服务端的配置，由于需要客户端能正常访问其他非开发的网站，因此dnsmasq需要能辨别处理哪些网站由dnsmasq自己处理，哪些由其他dns服务处理，后面的安装配置过程再分析。

dnsmasq安装过程：
MDBLOCK0
接着配置需要dnsmasq负责解析的域名：(配置文件/etc/hosts)

MDBLOCK1
上面'blog.com'的域名配置是准备本地访问使用的，公网是否有相同的域名在whois查询之前无法确认，但是配置之后，即使公网也有相同的域名，由于dnsmasq会优先解析本地的配置，因此即使公网存在也只解析本地的。

所有想本地解析的域名都写入上面的配置文件内，那么其它想访问的公网网站谁负责解析呢？这里就是交给所谓的上游DNS也就是我们日常熟知的阿里DNS，电信DNS等等，配置文件是'etc/resolv.conf':
MDBLOCK2
所以，总结一下本地域名解析是通过'/etc/hosts'，其他公网访问解析通过'/etc/resolv.conf'配置公共DNS,注意客户端电脑的DNS填写的是dnsmasq服务器的内网IP。

以上配置完成之后，重启一下dnsmasq服务，让配置生效：
MDBLOCK3
最后实际访问一下内网配置的网站和公网网址，可以检查一下配置是否生效。简单的应用就是这样，关于dnsmasq的其他配置，可以进一步查询官网（https://thekelleys.org.uk/dnsmasq/doc.html）了解。

---

> 本文首发于 [chaihongjun.me | 柴宏俊 web 技术学习笔记](https://chaihongjun.me/operations/2.html)，采用 CC BY-NC-ND 4.0 协议，转载请保留出处与链接。
