Skip to content


Subversion checkout URL

You can clone with
Download ZIP
branch: master
Fetching contributors…

Cannot retrieve contributors at this time

40 lines (27 sloc) 1.168 kB


A simple DNS proxy that lets you intercept domains and route them to whatever IP you decide.

It's available through npm:

npm install dnsjack

It's easy to use:

var jack = require('dnsjack').createServer();

jack.route('', ''); // route all requests to to localhost
jack.listen(); // it listens on the standard DNS port of 53 per default

// now all requests to should be routed localhost
require('http').createServer(function(req, res) {
    res.end('jack says hi!');

You probably need to run the above example with sudo as we need to listen to port 80 and 53. Now change your local DNS server to and visit in your browser.

DNSJack will forward all request that you don't route yourself to Google's DNS server or whatever DNS you provide in .createServer().

You can also use it to monitor your DNS resolutions which can be super useful for debugging:

var jack = require('dnsjack').createServer();

jack.on('resolve', function(domain) {
    console.log('Someone is resolving', domain);
Jump to Line
Something went wrong with that request. Please try again.