如何进一步调试此节点/ phantomjs问题?

时间:2014-02-03 11:01:22

标签: node.js amazon-web-services amazon-ec2 phantomjs

我可以在没有错误的情况下运行包含portscanner.findAPortNotInUse()本地(OSX)的脚本,但是当在bitnam EC2实例上运行时,我得到:

events.js:72
        throw er; // Unhandled 'error' event
              ^
Error: listen EADDRINUSE
    at errnoException (net.js:901:11)
    at Server._listen2 (net.js:1039:14)
    at listen (net.js:1061:10)
    at Server.listen (net.js:1127:5)
    at Object.module.exports.create (/home/bitnami/applications/tennistracker/node_modules/phantom/phantom.js:90:18)
    at /home/bitnami/applications/tennistracker/main.js:114:25
    at /home/bitnami/applications/tennistracker/node_modules/portscanner/lib/portscanner.js:136:7
    at /home/bitnami/applications/tennistracker/node_modules/portscanner/node_modules/async/lib/async.js:578:28
    at /home/bitnami/applications/tennistracker/node_modules/portscanner/lib/portscanner.js:119:9
    at Socket.<anonymous> (/home/bitnami/applications/tennistracker/node_modules/portscanner/lib/portscanner.js:96:5)

代码是

var startPort = 50000;

portscanner.findAPortNotInUse(startPort, 50100, 'localhost', function(error, freeport) {
                console.log('freeport value: '+freeport);
            if(error) {
                console.log('portscanner error: '+error);
            }...

附加输出:

freeport value: undefined
portscanner error: true
freeport value: undefined
portscanner error: true

我已在服务器上禁用了ufw,并且还允许AWS中的端口范围为50000 - 60000。 startPort设置为50000.如何进一步调试此问题?我试过运行strace,但看不到任何明显的事情。

1 个答案:

答案 0 :(得分:0)

原来这是portscanner.js的一个问题,结合我的服务器设置(EC2上的bitnami节点堆栈)。编辑以下行将主机设置为“127.0.0.1”解决了我的问题。

https://github.com/baalexander/node-portscanner/blob/master/lib/portscanner.js#L65

如果有人知道原因,请发表进一步的答复,我会接受。 FWIW,我的主机文件DOES已经包含一个指向127.0.0.1到localhost的条目