Coder Social home page Coder Social logo

dns-over-http2's Introduction

DNS Over HTTP/2

EXPERIMENTAL only

For original development version see:

https://github.com/Opensourcecommunitydevelopment/dns-over-http2

For original version see:

https://github.com/yyfrankyy/dns-over-http2

Inspired by gdns-go, but do less, I'd like to keep it as simple as possible.

So,

  1. No cache. use it as a backend, dnsmasq or unbound as frontend.
  2. No proxy. setup your proxy globally, the script will simply honor it.
  3. Less config. if your public ip is changed, restart the script.

Last but not least, long live process, I prefer pm2.

Write a process file with your customized setup (say dns-over-http2.json):

{
  "apps" : [{
    "name"        : "dns-over-http2",
    "script"      : "/path/to/your/dns-over-http2/index.js",
    "args"        : ["your public ip", 6666, "127.0.0.1"],
    "env": {
        "NODE_ENV": "production"
    }
  }]
}

Simply start it as follow:

pm2 start dns-over-http2.json

All set, test it with dig:

$ dig @127.0.0.1 -p 6666 github.com A +short
github.com.
192.30.253.112

dns-over-http2's People

Contributors

gjsmith3rd avatar opensourcecommunitydevelopment avatar yyfrankyy avatar

Stargazers

 avatar

Watchers

 avatar  avatar  avatar

dns-over-http2's Issues

What's are the arg parameters in dns-over-http2.json?

Is this the way it's set up? Do we need a forwarding DNS server or external IP?

{
  "apps" : [{
    "name"        : "dns-over-http2",
    "script"      : "~/Workspaces/GIT-Projects/dns-over-http2/index.js",
    "args"        : ["**external IP address** or **forwarding name servers**", 
                        port, 
                       "local dns-over-http2 server address"],
    "env": {
        "NODE_ENV": "production"
    }
  }]
}

'use strict' is required for my setup

It seems I have to use

'strict mode';

DEBUG CONSOLE

node --debug-brk=15576 index.js
Debugger listening on port 15576
/home/gjsmith3rd/Workspaces/GIT-Projects/dns-over-http2/index.js:28
let question = req.question[0], hostname = question.name;
^^^
SyntaxError: Block-scoped declarations (let, const, function, class) not yet supported outside strict mode
at exports.runInThisContext (vm.js:53:16)
at Module._compile (module.js:374:25)
at Object.Module._extensions..js (module.js:417:10)
at Module.load (module.js:344:32)
at Function.Module._load (module.js:301:12)
at Module.runMain as _onTimeout
at Timer.listOnTimeout (timers.js:92:15)

If I add 'strict mode' the code now runs but I'm confused about the parameters in dns-over-http2.json.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.