有时候需要在内网环境里进行域名相关的测试。
如果是简单域名,可以通过修改/etc/hosts文件来实现,比如
- 127.0.0.1 test.xmanyou.com
-
但是如果是通配符域名呢?hosts文件是不支持下边这边配置来解析通配符的:
- 127.0.0.1 *.apps.xmanyou.com
-
解决方法,就是搭建一个自己的dns服务器。dnsmasq就是这样一个dns服务器。
下边详细介绍一下在MacOS环境下,利用dnsmasq搭建内网域名测试环境的方法。
Dnsmasq provides network infrastructure for small networks: DNS, DHCP, router advertisement and network boot.
Dnsmasq是一个开源的轻量级DNS转发和DHCP、TFTP服务器,使用C语言编写。Dnsmasq针对家庭局域网等小型局域网设计,资源占用低,易于配置。
- brew install dnsmasq
-
- sudo brew services restart dnsmasq
-
- sudo brew services stop dnsmasq
-
dnsmasq的配置文件
- /usr/local/etc/dnsmasq.conf
-
注意2修改配置后,需要重启服务来生效
示例
- # 严格按照/etc/resolv.conf文件指定的dsn解析器的顺序进行解析
- strict-order
- # 服务监听地址,设置为127.0.0.1仅限本机使用
- listen-address=127.0.0.1
-
- # 不使用通配符
- address=/test.xmanyou.com/127.0.0.1
- # 使用通配符
- address=/.apps.xmanyou.com/127.0.0.1
-
- dig test.xmanyou.com
-
- dig 123.apps.xmanyou.com
-
- # 严格按照/etc/resolv.conf文件指定的dsn解析器的顺序进行解析
- strict-order
- # 服务监听地址,设置为127.0.0.1仅限本机使用
- listen-address=127.0.0.1
- # 不使用通配符
- address=/test.xmanyou.com/127.0.0.1
- # 使用通配符解析 *.apps.xmanyou.com
- address=/.apps.xmanyou.com/127.0.0.1
-
好了,现在可以在内网进行域名测试了,测试完毕后再部署到生产环境就很省心了。