Masq is a simple local dns server like DNSMasq. The first version was extracted from Pow.
Please note: Masq is only worked on macOS right now.
As it is not possible to use wildcards in the /etc/hosts
file, we cannot specify something like:
127.0.0.1 *.dev.
To get around this problem, we will install a DNS proxy, like DNSMasq. If you are a JavaScript Developer, you can give a try with Masq.
Masq/Pow's DnsServer
is designed to respond to DNS A
queries with 127.0.0.1
for all subdomains of the specified top-level domain.
When used in conjunction with Mac OS X's /etc/resolver system, there's no configuration needed to add and remove host names for local web development.
$ npm install -g masq
The user configuration file, ~/.masqconfig
, is evaluated on boot. You can configure options such as the top-level domain, listening ports.
export MASQ_DOMAINS=dev,test
Then you can run masq --print-config
, it will output like this:
$ masq --print-config
MASQ_BIN='/path/to/masq/bin/masq'
MASQ_DNS_PORT='20560'
MASQ_DOMAINS='dev,test'
If all is ok, run masq --install-system
to install DNS configuration files (need sudo
):
$ sudo masq --install-system
Then simply start it:
masq
Now, if we try to ping some any address ending in .dev
, it should return 127.0.0.1
:
$ ping example.dev
PING example.dev (127.0.0.1): 56 data bytes
Generate daemon configuration file:
$ masq --install-local
Then:
launchctl load ~/Library/LaunchAgents/cx.masq.masqd.plist
- Pow - Zero-configuration Rack server for Mac OS X
- Serving Apps Locally with Nginx and Pretty Domains
- Using Dnsmasq for local development on OS X