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 masqThe user configuration file, ~/.masqconfig, is evaluated on boot. You can configure options such as the top-level domain, listening ports.
export MASQ_DOMAINS=dev,testThen 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-systemThen simply start it:
masqNow, 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 bytesGenerate 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