我可以在没有错误的情况下运行包含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
,但看不到任何明显的事情。
答案 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的条目