ERR_CONNECTION_TIMED_OUT说,nodejs app不会创建服务器

时间:2018-03-12 14:37:24

标签: node.js

我试图在我的VPS上运行nodejs应用程序但是出于某种原因我收到了ERR_CONNECTION_TIMED_OUT错误。

这是我的代码:

const http = require('http');

const server = http.createServer((req, res) => {
  res.end();
});
server.on('clientError', (err, socket) => {
  socket.end('HTTP/1.1 400 Bad Request\r\n\r\n');
});
server.listen(8000);

当我cd到我的目录并执行

  

node index.js

,它没有给我任何错误,但是去浏览器做:mysite.com:8000什么也没给我。连接超时

编辑: 当我做curl: enomshop.tk:8000时,我会得到一些反馈。它就像我可以从VPS内部访问但没有公开访问

3 个答案:

答案 0 :(得分:3)

这是解决此类问题的方法

检查流程是否正在运行

运行ps aux | grep <process>以检查您的流程是否正在运行

检查端口是否正在使用

运行sudo netstat -plant | grep <port>以检查端口是否正在侦听,这是您的过程

检查服务是否在本地响应

运行telnet 127.0.0.1 <port>并确保收到回复。如果您没有收到回复,那么您可以查看的问题很少

  • 该过程未启动服务器监听
  • 该过程未使用正确的端口
  • 有一个阻止该端口的防火墙。 firewall-cmdthis,ufw为this

检查服务是否在外部响应

您可以执行telnet <external ip> <port>,如果它不起作用,那么您应该检查以下几项

  • 确保您的服务器绑定到0.0.0.0<private ip>而非127.0.0.1
  • 确保您托管的VPS服务器已启用<port>进行通信。这对每个服务提供商来说都是不同的

如果您按照这些步骤操作,它将解决此类情况下的大多数常见网络问题

答案 1 :(得分:0)

我遇到了同样的问题。要解决此问题,只需打开/允许从网络安全组(VPS)或防火墙到全球访问的端口。

并检查telnet mysite.com port,它对我有用。如果您仍然遇到任何问题,请告诉我,我会尽力帮助您。

答案 2 :(得分:-1)

您需要打开VPS上的8000端口或将流量从VPS上的任何开放端口重定向到8000