场景分析:现在有若干个测试系统在内网中,与外网无法直接连接,但是现在非开发人员需要访问测试系统,不想连接vpn和修改本地hosts信息,如何让业务人员便捷的访问测试环境?
DNSmasq是一个小巧且方便地用于配置DNS和DHCP的工具,适用于小型网络,它提供了DNS功能和可选择的DHCP功能。自己搭建公共DNS更加灵活,如果是在本地搭建,还可以大幅提高解析速度。
#centos安装 yum -y install dnsmasq #如果是ubuntu系统 apt-get -y install dnsmasq
DNSmasq配置文件再/etc/dnsmasq.conf,我们需要修改几个参数,分别为:
#需要新建一个resolv.dnsmasq.conf文件,这个是配置上游DNS,也就是真正的公共DNS vi /etc/resolv.dnsmasq.conf #内容如下 nameserver 119.29.29.29 nameserver 1.2.4.8 #修改/etc/dnsmasq.conf #上游DNS路径 resolv-file=/etc/resolv.dnsmasq.conf #取消strict-order注释 strict-order #监听地址,改成自己服务器公网IP listen-address=127.0.0.1
DNSmasq可以设置不同的域名指定不同的DNS进行解析,修改/etc/dnsmasq.conf文件即可,若不对域名设置DNS,则从上游DNS获取记录。
#指定淘宝使用114 DNS进行解析 server=/taobao.com/114.114.114.114 #google指定8.8.8.8进行解析 server=/google.com/8.8.8.8
也可以对指定的域名进行解析,相当于就是本地hosts指向,可以利用这个功能实现广告屏蔽等效果。也是需要修改/etc/dnsmasq.conf文件,DNSmasq也可以对域名进行泛解析,填写*.xiaoz.me,这样的格式即可。
#将广告域名指向到127.0.0.1实现广告屏蔽 address=/ad.youku.com/127.0.0.1 address=/ad.iqiyi.com/127.0.0.1 #对xiaoz.me进行泛解析 address=/*.xiaoz.me/192.168.20.138
比如我在本地一台linux服务器(192.168.20.127)安装了DNSmasq,并在局域网内其它PC将DNS配置为192.168.20.127,使用dig命令进行测试,第一次查询相对较长,第二次几乎再10ms内,如下截图。