美文网首页
macOS 下用 dnsmasq 搭建 DNS 服务器

macOS 下用 dnsmasq 搭建 DNS 服务器

作者: 舌尖上的大胖 | 来源:发表于2021-12-24 22:23 被阅读0次

我们在有些场景需要自己的 DNS 服务,比如:移动端设备开发过程中,如果需要解析自定义域名,由于无法修改 hosts 文件,所以可以采用自建简单的 DNS 服务来实现域名解析,比较方便。

一、安装

使用 Homebrew 进行安装:

$ brew install dnsmasq

安装成功后会提示使用信息。也可以用如下命令重新查看提示:

$ brew info dnsmasq

可以根据提示中的信息来查看启动服务的方式和配置文件的位置。

参考:《Dnsmasq 介绍》

本文以 dnsmasq: stable 2.86 为例进行说明。

重启服务:

$ sudo brew services restart dnsmasq

如果不需要后台服务,可以这样运行:

$ sudo /usr/local/opt/dnsmasq/sbin/dnsmasq \
    -k \
    -C /usr/local/etc/dnsmasq.conf \
    -7 /usr/local/etc/dnsmasq.d,*.conf

参数说明:

-C, --conf-file=<path> ........... 指定配置文件(默认为 /usr/local/etc/dnsmasq.conf)。
-k, --keep-in-foreground ......... 不进入后台,不在调试模式下运行。
-7, --conf-dir=<path> ............ 从此目录中的所有文件中读取配置。

二、配置文件

为了测试方便,使用 /tmp/test.conf 作为临时配置文件进行测试。

# 严格按照 /etc/resolv.conf 文件中定义的DNS服务器的顺序从上到下进行 DNS 解析,直到第一个解析成功为止。
# /etc/resolv.conf 是 macOS 默认的 DNS 配置文件,会自动生成。
# 但这一句不是必需的,可以不用
# strict-order

# 如果你不想使用 /etc/hosts,则取消下面的注释
# no-hosts

# 如果需要读取其他类似 /etc/hosts 文件,则进行配置
addn-hosts=/etc/banner_add_hosts

# 表示 DNS 服务会绑定到哪个地址上。
# 如果只是本机使用,那么只需要指定127.0.0.1就可。
# 如果还需要让局域网中的其他主机也能使用这个 DNS 服务器,还需要加上本机在局域网中的地址。
# 多个地址之间用逗号隔开,不要有空格
listen-address=192.168.1.10,127.0.0.1
# 使用 0.0.0.0 监听所有 IP 地址
listen-address=0.0.0.0

# 指定域名解析
# 将 hello.mytest.com 解析为 192.168.1.10
address=/hello.mytest.com/192.168.1.10

编辑完毕。配置如下:

listen-address=0.0.0.0
address=/hello.mytest.com/192.168.1.10

启动服务:

$ sudo /usr/local/opt/dnsmasq/sbin/dnsmasq \
    -k \
    -C /tmp/test.conf

三、Docker 方式安装

有人制作了 dnsmasq 的 Docker 镜像,可以在 jpillora/dnsmasq 查看。

1、优势

相比起来 Docker 方式有一些优势:

  • 更简洁干净,即用即抛
  • 对于简单使用的场景,无需考虑各种命令行参数,启停服务都更方便
  • dnsmasq 不支持 Windows,通过 Docker 方式可以实现对 Windows 的支持
  • 这个镜像还提供了 Web 配置界面

2、使用

启动服务:

$ docker run \
    --name dnsmasq \
    -d \
    -p 53:53/udp \
    -p 5380:8080 \
    -v /your/config/file:/etc/dnsmasq.conf \
    --log-opt "max-size=100m" \
    -e "HTTP_USER=foo" \
    -e "HTTP_PASS=bar" \
    --restart always \
    jpillora/dnsmasq

说明:

  • 使用 /your/config/file 作为配置文件
  • 在 UDP 的 53 端口提供 DNS 服务
  • 在 5380 端口提供 Web 管理端界面
  • 用户名 foo,密码 bar

3、Web 管理端

访问 http://<docker-host>:5380, 使用 foo/bar 进行身份验证,会看到:


Web UI

4、测试

$ host <需要解析的域名> <提供DNS服务的主机>

四、参考资料

(完)

相关文章

  • macOS 下用 dnsmasq 搭建 DNS 服务器

    我们在有些场景需要自己的 DNS 服务,比如:移动端设备开发过程中,如果需要解析自定义域名,由于无法修改 host...

  • TP_LINK无线路由器实现域名重定向

    实现思路: 1:搭建本地的DNS服务器(使用dnsmasq搭建); 1)我是在linux上面搭建的DNS服...

  • 树莓派 之 dnsmasq搭建DNS服务器

    Dnsmasq是一款高性能的DNS缓存软件,可以使用它来搭建一个小型的DNS服务器。在使用时,由于dnsmasq可...

  • 树莓派/香橙派自建本地DNS加速解析

    Dnsmasq介绍 Dnsmasq 提供 DNS 缓存和 DHCP 服务功能。作为域名解析服务器(DNS),dns...

  • linux中DNS解析服务器搭建

    想在局域网弄一个dns解析服务器,我看了dnsmasq和bind,最终打算用bind搭建。首先,需要伯克利大学互联...

  • DNS

    用DNSmasq搭建小型的内网DNSyum install dnsmasq -yservice dnsmasq s...

  • dnsmasq

    dnsmasq会首先寻找本地的hosts文件,再去寻找缓存下来的域名,最后去上游dns服务器寻找。dnsmasq服...

  • Dnsmasq一个超有用的选项

    公司内网使用的DNS服务是用软件Dnsmasq搭建的,最近经常有同事反映一些网站打不开,先前都是可以的。用dig命...

  • Linux_177_dnsmasq简介与安装

    dnsmasq dns服务器一般是安装bind服务,如果是小型的域名解析需求,使用dnsmasq即可 1、dnsm...

  • 安卓开启热点本机代理dns

    手机开热点,利用dnsmasq为其它手机代理dns,利用本机的hosts文件可以达到翻*的效果。 上游DNS服务器...

网友评论

      本文标题:macOS 下用 dnsmasq 搭建 DNS 服务器

      本文链接:https://www.haomeiwen.com/subject/wwurqrtx.html