dnsmasq是一个Linux平台下的轻量级DNS 代理软件,我们只将其配置成一个简单的本地DNS Server。另外此软件最新版本含有DHCP Server以及TFTP Server的功能,这些功能默认都是关闭的, 根据依赖关系可能会安装其他包。
(如dnsmasq-base等, 但Ubuntu 10.04 Desktop已默认安装过,但在安装时可能会自动升级dnsmasq-base)。
打开文件/etc/dnsmasq.conf(安装后默认此配置文件内的所有参数都被注释掉), 找到参数resolv-file和addn-hosts, 去掉注释符号#后修改成如下值。
此处resolve-file指定dnsmasq从哪里获取上行DNS Server, 默认是从/etc/resolv.conf获取。
因为dnsmasq本是一个DNS代理软件而非Server, 我们只是利用dnsmasq的缓存功能来实现DNS Server, 故而要将上行server指定为本机地址, 在文件/etc/dnsmasq/dnsmasq.resolv中指定nameserver为127.0.0.1即可。
addn-hosts指定dnsmasq从哪个文件中读取“地址 域名”记录, 默认是系统文件/etc/hosts, 此处我们指定从自定义文件/etc/dnsmasq/dnsmasq.hosts中读取。
创建文件夹/etc/dnsmasq/(这里的文件夹是上一步中地址的两个文件所在目录, 可以自己任意指定, 但要和上一步中的保持一致), 并添加文件/etc/dnsmasq/dnsmasq.resolv和/etc/dnsmasq/dnsmasq.hosts。
添加一行内容到/etc/dnsmasq/dnsmasq.resolv文件中
添加自定义的“地址 域名”记录到文件/etc/dnsmasq/dnsmasq.hosts中, 支持IPv6地址, 例如:
可以任意添加自己的本地DNS Server可解析的“地址 域名”记录, 注意必须重新启动dnsmasq才可以使更新生效(也可以发送信号SIGHUP给dnsmasq进程, 具体请参考dnsmasq帮助文档, Shell命令man dnsmasq)。
实际上dnsmasq是将这些记录读取到内存中缓存起来(默认最多可以记录150条记录, 可以自己在配置文件/etc/dnsmasq.conf中修改), 收到DNS查询请求时从自身的缓存中直接查找答复。
更多功能及设置请参考dnsmasq的帮助文档或者查看配置文件/etc/dnsmasq中的注释说明内容。
如果启动DNS Server失败请查看系统log(/var/log/syslog),
使用nslookup直接测试
ipv4地址
ipv6地址
192.168.1.204 DNS192.168.1.202 nginx
(容器安装,docker安装就不赘述了)
为了方便,使用docker环境手动搭建DNS服务器,选择andyshinn/dnsmasq的docker镜像,2.75版本
查看是否创建成功
进入容器,以下内容均在容器内操作
创建代理文件并添加内容
添加解析规则
修改dnsmasq配置文件,指定使用上述两个我们自定义的配置文件
重启容器
(nginx安装不再赘述)
因为nginx要配置域名跳转,nginx要使用80端口,80端口只能使用root启动或者使用普通用户(非80端口,如9000)启动后通过端口转发将9000转发为80端口(需要开启防火墙)
配置文件/nginx/conf/nginx.conf中要包含
在/nginx/conf/conf.d目录下
jira.conf配置文件
wiki.conf配置文件
需要修改DNS配置更改为192.168.1.204 这个IP就可以了
如:win10修改DNS配置
右击wifi所在位置,选择“打开网络和‘Internet’设置”,后选择“网络和共享中心”
打开后找到连接的网络,点击网络,打开属性并将自动获取DNS修改为手动获取,如下,修改IP
点击wifi打开热点即可
查看/etc/resolv.con 我们会发现dns服务器为127.0.1.1,记住不是127.0.0.1
好奇葩的一个地址
这是个什么呢,这个 https://segmentfault.com/q/1010000002443769 回答了你的问题
ubuntu下有一个本地的dns服务叫做dnsmasq,它是由NetworkManager控制的
它监听的本地地址,--listen-address=127.0.1.1 (ubuntu12.04及之前的版本 是 127.0.0.1), 这个地址是一个本地回环地址
而你真实的dns服务器地址,是被这个服务管理维护着的
由一张图表示就是:
local process ->local dnsmasq ->router ->ISP dns
(百度百科)
DNSmasq是一个小巧且方便地用于配置DNS和DHCP的工具,适用于小型网络,它提供了DNS功能和可选择的DHCP功能。它服务那些只在本地适用的域名,这些域名是不会在全球的DNS服务器中出现的。DHCP服务器和DNS服务器结合,并且允许DHCP分配的地址能在DNS中正常解析,而这些DHCP分配的地址和相关命令可以配置到每台 主机 中,也可以配置到一台核心设备中(比如路由器),DNSmasq支持静态和动态两种DHCP配置方式。
其中:
DNSmasq把因特网地址和地址-域名映射关系放入cache中,减少服务器负担的同时也提升了性能
DNSmasq能配置来自动用PPP或DHCP配置请求从上行域名解析服务器中获取地址信息,如果信息发生改变,它会自动重载这些信息。
DNSmasq能被配置用来向特定的上行服务器发送特定的域名解析请求,从而可以简单的与私有的DNS服务器结合使用。
欢迎分享,转载请注明来源:夏雨云
评论列表(0条)