[乐意黎原创] Error: listen EADDRNOTAVAIL 119.xx.xxx.10:3000 at Object.exports._errnoException (util.js:10

在使用云主机部署Nodejs项目测试时, 总是在抛错.

[root@xx app]# node app-test.js

events.js:182
      throw er; // Unhandled 'error' event
      ^

Error: listen EADDRNOTAVAIL 119.xx.xxx.102:3000
    at Object.exports._errnoException (util.js:1016:11)
    at exports._exceptionWithHostPort (util.js:1039:20)
    at Server.setupListenHandle [as _listen2] (net.js:1290:19)
    at listenInCluster (net.js:1355:12)
    at doListen (net.js:1481:7)
    at _combinedTickCallback (internal/process/next_tick.js:105:11)
    at process._tickCallback (internal/process/next_tick.js:161:9)
    at Function.Module.runMain (module.js:607:11)
    at startup (bootstrap_node.js:158:16)
    at bootstrap_node.js:575:3
[root@xx app]# ^C
[root@xx app]# node t.js
Server running at http://172.xx.110.1:3000/
http://172.xx.110.1:3000/

 

^C

 

119.xx.xxx.102 公网IP

172.xx.xxx.1 私网IP

 

经过对比, 发现是由于云主机使用了公网的IP, 于是改用了私有IP, 问题解决!

 

------------------------------------------

2017-06-15
 
CentOS7系统默认的防火墙服务并不是iptables喔。 
 
您可以先用命令 systemctl status firewalld 来检查一下当前的防火墙状态, 
 
如果是运行状态,您可以 systemctl stop firewalld 的命令来停止防火墙的服务, 
 
如果确认是防火墙的问题,可以用 systemctl disable firewalld 的命令来禁止防火墙的服务。

 

参考: 

https://bbs.aliyun.com/read/176995.html

最后怎么解决的?呵呵,说是灵光一现也好,说是死马当活马医也好,我突然想到了hosts文件,路由出问题了? 
  为了保险我查了一下:cat /etc/hosts,只显示了本地localhost、127.0.0.1和阿里云内网IP的绑定,没有外网地址的配置。 
  为了不干扰其它端口上运行的程序,我没有修改hosts文件,而是更改了app.js代码: 
  createServer(...).listen(80,"阿里云ECS外网IP"); 

 

 

输入“i”,进入编辑模式,将以下项目文件内容粘贴到文件中。使用“Esc”按钮,退出编辑模式,输入“:wq”,回车,保存文件内容并退出。

项目文件内容:

 
  1. const http = require('http');
  2. const hostname = 'ECS公网IP地址';
  3. const port = 3000;
  4. const server = http.createServer((req, res) => {
  5. res.statusCode = 200;
  6. res.setHeader('Content-Type', 'text/plain');
  7. res.end('Hello World\n');
  8. });
  9. server.listen(port, hostname, () => {
  10. console.log(`Server running at http://${hostname}:${port}/`);
  11. });

注:项目文件内容中的’ECS公网IP地址’处需填写实际的ECS公网IP;项目文件内容中的3000为端口号,可以自行定义。

乐意黎原创

 

 

2017-06-15

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值