有时候需要在内网环境里进行域名相关的测试。
如果是简单域名,可以通过修改/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
好了,现在可以在内网进行域名测试了,测试完毕后再部署到生产环境就很省心了。