Articles of dns

Docker DNS getaddrinfo ENOTFOUND

我正在运行docker-compose和node:4.2.1-wheezy和dnsdock容器。 我在/ etc / default / DOCKER_OPTS="–dns 172.17.42.1"里面有DOCKER_OPTS="–dns 172.17.42.1" 。 当我在我的node.js容器中运行node -e "require('dns').resolve('host_name_here')" ,主机通过172.17.42.1 dns服务器正确parsing。 但是当我运行node -e "require('dns').lookup('host_name_here')"时, ENOTFOUND错误会失败。 问题是, http.request使用dns.lookup而不是dns.resolve 。 文档说 dns.lookup调用getaddrinfo 。 据我了解getaddrinfocaching/etc/resolv.conf,也许它caching空/etc/resolv.conf(但cat /etc/resolv.conf打印nameserver 172.17.42.1 )。 我真的不知道如何解决这个问题。 什么会导致这样的行为? 更新1。 docker -v Docker version 1.7.1, build 786b29d docker-compose -v docker-compose version: 1.4.2 更新2。 我更新了所有的东西到最新版本(docker1.9.0,docker组成1.5.0和节点5.0.0),但问题仍然存在。 所以这是docker-compose.yml,它重现了这个问题: dnsdock: image: tonistiigi/dnsdock volumes: – /var/run/docker.sock:/run/docker.sock ports: – […]

强制net / http使用c-ares而不是getaddrinfo()

正如文件所说: 除了在线程池中使用getaddrinfo(3)的dns.lookup以外,dns模块中的所有方法都使用C-Ares。 但是, net和http模块总是使用dns.lookup 。 有没有办法改变这个? getaddrinfo是同步的,池将只允许4个并发请求。

Nodejserror handling与域和socket.io

我刚刚开始在nodejs中使用域进行错误pipe理。 有什么我不能理解,当我用它们与socket.io。 这是我的示例代码: io.sockets.on('connection', function cb1(socket){ socket.on('event', function cb2(data){ }); }); 我开始把所有的代码放在“运行”方法中 domain.run(function(){ io.sockets.on('connection', function cb1(socket){ socket.on('event', function cb2(data){ }); }); }); 但是,如果在cb1或cb2中发生错误,则不会被处理! 然后我用che cb1上的绑定方法 domain.run(function(){ io.sockets.on('connection', domain.bind(function cb1(socket){ socket.on('event', function cb2(data){ }); })); }); 但是,如果在cb2中发生错误,则不予处理! 我的问题是:我必须在每个callback中join一个“绑定”吗? 在服务器和所需的文件? 当我开始研究这些领域时,所有的教程都将它们定义为最好的解决scheme来处理您的错误! 我错过了什么吗?

如何捕捉getaddrinfo ENOTFOUND

我有一个链接列表,我需要在处理一些数据之前检查。 用http.get检查标题返回错误: events.js:72 throw er; // Unhandled 'error' event ^ Error: getaddrinfo ENOTFOUND at errnoException (dns.js:37:11) 我无法处理这个错误,并退出该过程。 我尝试res.on(“错误”)并尝试http.get上捕获,但没有任何工作。 下面是代码片段, 这里是runnable.com上的实例 //This is OK getHeaders('http://google.com/404pag-that-does-not-exit'); //Here is the error. //Uncoughtable error! getHeaders('http://doesnotexistooooo.com'); function getHeaders(link){ var _http = require("http"); var myUrl = require("url"); var qs=(myUrl.parse(link).search==null) ? "" : myUrl.parse(link).search ; var path=myUrl.parse(link).pathname; var options = { hostname: […]

iPhone / Android不会解雇用DNS实现的wifi登陆页面

我正试图在我现有的公共WiFinetworking上实现一个启动页面/ wifi登陆页面,使用维基中提到的DNS方法 ,在这里我托pipe一个自定义的DNS服务器,将所有的DNS查询redirect到一个本地地址,托pipe给所有用户,然后点击同意。 用户点击同意后,我的自定义DNS服务器开始返回正确的IP查找,从而,用户将能够上网。 注意:我们完全明白,这绝对不能保证我们的networking,甚至使我们的networking处于危险之中。 但是,这里的目标是将登陆页面popup到用户面前。 这种方法实际上在Windows Phone(我testing过的Windows 8)上起作用,甚至在我试图打开一个随机网站的计算机上时,它会将我redirect到我的页面,并且在我同意后,我可以访问Internet 。 当我尝试在iPhone / Android上尝试时,一旦我连接到热点,splash页面/ wifi着陆页就会如预期般出现(因为设备试图通过转到页面来validation互联网访问)。 但是 ,点击同意后,并允许上网,iPhone和Android的启animation面都不会消失。 我必须强迫iPhone“使用这个无线networking”退出。 我不知道是否有一个特殊的(JavaScript?)方法,我可以在页面中调用,或者我需要发送到设备的一些包? 我注意到在iOS上,如果我点击一个链接到App Store,这个启动页面就会离开networking,所以我想我在这里丢失了一些东西。 例如,单击iOS设备上的iOS StackOverflow应用程序的链接可能是一种解决方法。 现在已经search了一个星期,似乎没有任何东西出现。 顺便说一下,我正在构build我的自定义dns服务器节点js,与模块dnsd。 = – = – = = – = – = – = – = edit = – = – = – = – – – = 我还在GitHub上上传了我的代码演示: https : //github.com/kylelam/dnsd_wifi 要testing它,请在本地networking(sudo […]

Node.js DNS查询 – 如何设置超时?

我对Node.js非常陌生,使用node.dns.resolveNs函数时遇到了问题。 有些域完全closures,大概需要一分钟才能得到响应,通常是“queryNs ETIMEOUT”。 有没有办法让我把它设置为一个较短的时间,例如10秒?

错误:getaddrinfo EAI_AGAIN

我的服务器今天扔了这个,这是我从来没有见过的nodejs错误。 Error: getaddrinfo EAI_AGAIN my-store.myshopify.com:443 at Object.exports._errnoException (util.js:870:11) at errnoException (dns.js:32:15) at GetAddrInfoReqWrap.onlookup [as oncomplete] (dns.js:78:26) 我想知道这是否与今天影响Shopify和许多其他服务的DynDns DDOS攻击有关。 这里有一篇关于这个的文章。 我的主要问题是dns.js做什么? 它的其中一部分是什么? 我可以用不同的域重新创build这个错误吗?

Firebase函数 – getaddrinfo ENOTFOUND api.sandbox.paypal.com

尝试使用PayPal-node-SDK向Paypal的API发出请求 exports.requestPayment = functions.https.onRequest((req, res) => { return new Promise(function (fullfilled, rejected) { paypal.payment.create(create_payment_json, {}, function (error, payment) { if (error) { rejected(error); } else { console.log("Create Payment Response"); console.log(payment); res.status(200).send(JSON.stringify({ paymentID: payment.id })).end(); fullfilled(payment); } }); }); }); 但我不断得到一个错误: Error: getaddrinfo ENOTFOUND api.sandbox.paypal.com api.sandbox.paypal.com:443 at errnoException (dns.js:28:10) at GetAddrInfoReqWrap.onlookup [as oncomplete] (dns.js:76:26) 我试过的东西: 请求一个完全不同的主机,仍然ENOTFOUND […]

无法使用express处理node.js域的exception

我想使用Node.js域来捕获exception。 它到目前为止工作,但有一个地方,我不能让域来赶上例外。 在callback中的exception2被捕获并在domain.on('error')处理程序中处理,但是exception1不被捕获。 奇怪的是,当引发exception1时,它并没有像我期望的那样closures节点。 这是我的示例应用程序: var domain = require('domain'); var request = require('request'); var express = require('express'); var serverDomain = domain.create(); serverDomain.on('error', function(err) { console.log("Server Domain Error: " + err); }); var app; serverDomain.run(function() { app = express(); app.listen(3000); }); app.use(function(req, res, next) { var reqDomain = domain.create(); reqDomain.add(req); reqDomain.add(res); reqDomain.on('error', function(err) { console.log("Req Domain […]

Dokku安装后更改设置

我在我的数字海洋液滴上安装了Dokku,但是在设置我的dnslogging之前做了Dokku,所以Dokku安装在IP上。 现在我改变了我的DNSlogging,所以网站可以通过site.com访问。 我可以通过site.com:port访问我以前创build的Dokku容器,我怎样才能更改Dokku设置来访问我的应用程序 – appname.site.com