【coredns】使用coredns搭建私有dns服务器

1. 背景

前端测试的需求,觉得目前使用charles代理进行抓包不能满足使用

问题:

① https协议需要安装证书比较麻烦

② 请求和返回数据中有加密数据,需要手动复制出来处理

③ 配置mock 不够灵活

解决方案:

使用Openresty 做反向代理,在原服务外面套一个网关,进行日志记录,和进行数据mock逻辑的处理。这样对于手机端无感知的。
将原服务端的ip改为我的Openresty网关,两种方式,

一是修改手机的hosts文件,二是自建dns服务器,为了方便端上使用,采用自建dns服务器的方式。

2. 使用

简单对比开源的dns工具,Bind9,Dnsmasq,PowerDNS, CoreDNS等,选择了比较新的CoreDNS。它的特点是比较灵活,且方便部署和使用。官网地址

2.1 安装和配置

① 编译

克隆代码

$ git clone https://github.com/coredns/coredns
$ cd coredns

编译二进制程序

$ make

# 如果本地没有go环境,可以使用docker 的go镜像进行编译
$ docker run --rm -i -t -v $PWD:/v -w /v golang:1.16 make

② 使用

运行编译好的程序即可开启服务

$ ./coredns

③ 修改配置文件

在同目录创建Corefile文件,内容如下

.:53 {
    hosts hosts
    log
    forward . 8.8.8.8:53
}

创建 hosts文件

192.168.1.171 www.baidu.com
192.168.1.171 m.baidu.com
192.168.1.171 m.hupu.com
192.168.1.171 www.mock.com

④ 测试

$ nslookup www.baidu.com 10.20.11.11 # ip为部署 coredns 服务的设备ip
DNS request timed out.
    timeout was 2 seconds.
服务器:  UnKnown
Address:  10.20.11.11

名称:    www.baidu.com
Address:  192.168.1.171

2.2 手机端使用

只需将手机中DNS配置修改为 刚刚搭建的coredns服务地址即可将流量打到我们的openresty网关了。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值