- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
本地的 Node js 应用程序运行良好。当尝试在服务器中运行时,它显示错误。
ubuntu@ip-172-*-*-*:~/sample_nodejs$ node main.js
events.js:183
throw er; // Unhandled 'error' event
^
Error: listen EADDRNOTAVAIL 52.*.*.*:1122
at Object._errnoException (util.js:1022:11)
at _exceptionWithHostPort (util.js:1044:20)
at Server.setupListenHandle [as _listen2] (net.js:1350:19)
at listenInCluster (net.js:1408:12)
at doListen (net.js:1517:7)
at _combinedTickCallback (internal/process/next_tick.js:141:11)
at process._tickCallback (internal/process/next_tick.js:180:9)
at Function.Module.runMain (module.js:695:11)
at startup (bootstrap_node.js:188:16)
at bootstrap_node.js:609:3
这是我的端口运行状态。使用命令netstat -tulpn
(Not all processes could be identified, non-owned process info
will not be shown, you would have to be root to see it all.)
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State
PID/Program name
tcp 0 0 127.0.0.53:53 0.0.0.0:* LISTEN
-
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN
-
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN
-
tcp6 0 0 :::22 :::* LISTEN
-
tcp6 0 0 :::80 :::* LISTEN
-
udp 0 0 127.0.0.53:53 0.0.0.0:*
-
udp 0 0 172.*.*.*:68 0.0.0.0:* -
尝试更改 iptables
sudo iptables -A PREROUTING -t nat -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 3000
仍然显示错误。这是服务器故障还是我需要获得服务器端的许可?
这是我尝试使用公共(public) IP 地址的示例代码:
var express = require('express');
var app = express();
const http = require('http');
const hostname = '52.*.*.*';
const port = 1122;
const server = http.createServer((req, res) => {
res.statusCode = 200;
res.setHeader('Content-Type', 'text/plain');
res.end('Hello, World!\n');
});
server.listen(port, hostname, () => {
console.log(`Server running at http://${hostname}:${port}/`);
});
最佳答案
不要尝试监听 EC2 实例上的外部 IP 地址 - 它不可用。相反,监听“任何”接口(interface)(有时显示为0.0.0.0
)。根据文档,我可以发现这是通过 server.listen 完成的不指定主机参数:
If
host
is omitted, the server will accept connections on the unspecified IPv6 address (::
) when IPv6 is available, or the unspecified IPv4 address (0.0.0.0
) otherwise.In most operating systems, listening to the unspecified IPv6 address (
::
) may cause thenet.Server
to also listen on the unspecified IPv4 address (0.0.0.0
).
您监听的端口可以从外部世界访问,但您必须通过安全组公开它。
编辑
您需要将代码更改为:
var express = require('express');
var app = express();
const http = require('http');
const port = 1122;
const server = http.createServer((req, res) => {
res.statusCode = 200;
res.setHeader('Content-Type', 'text/plain');
res.end('Hello, World!\n');
});
server.listen(port, () => {
console.log(`Server running at on port ${port}`);
});
关于node.js - Node js错误: listen EADDRNOTAVAIL 52. **.**.***:1122,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53955562/
应用程序在本地主机上工作正常。但是当它连接到服务器时出现错误。 我通过端口 22 连接服务器 这是错误 Error: listen EADDRNOTAVAIL Error: listen EADDRN
我真的遇到了这个问题。我在 Windows 机器上(具有管理员权限),我想开始使用 vagrant 设置我的工作环境。 问题是我遇到了错误(如下)并且我找不到任何解决方案......我正在使用最新的虚
我有一个简单的 Node.js 应用程序,无法连接到 SQL 数据库。 Web 服务器是 Azure Web App,运行 node.js 并使用 Tedious对于 SQL。DB 是 Azure S
突然间(上周工作正常)我在尝试使用 Nodemailer 发送电子邮件时开始收到发送邮件时出错:错误:连接 EADDRNOTAVAIL . 该错误确实很模糊,我不太确定 EADDRNOTAVAIL 的
我正在尝试使用以下脚本使用 node.js 下载文件: var http = require('http'); var fs = require('fs'); var file = fs.create
我刚开始使用 NodeJS 开发 Web 应用程序,我的应用程序有一个问题我不知道如何解决。 应用程序(我们使用 expressjs)在我的本地机器上运行平稳,但是当我们将它部署到我们的开发服务器进行
我在 172.16.1.218 上运行了以下 node.js 服务器: var net=require('net'); var server = net.createServer(function (
我在我的应用程序中出现了似乎无法重现的故障。我有一个失败的 TCP 套接字连接,应用程序试图重新连接它。在尝试重新连接的第二次 connect() 调用中,我得到一个错误结果,错误结果为 errno
我正在尝试通过 Appstore 的 IPv6 支持,但遇到了一些问题。 我关注了苹果公会Supporting IPv6 DNS64/NAT64 Networks ,我的代码: const char
(已在 Centos 6.5 和 Centos 7 上测试过) 如果您在 linux 中使用 INADDR_ANY 和 0 端口在 connect() 之前调用 bind() 那么 bind() 的临
我的公司发布了一个用于特殊用途的特殊 TCP 堆栈,我的任务是实现符合 RFC793 的关闭序列。其中一个单元测试有一个服务器在特殊的 TCP 堆栈之上工作,与一个普通的 Linux TCP 客户端通
我的 Node 应用程序正在监听端口 8080。当我添加时 app.listen(port,'50.30.217.289'); 我可以从浏览器访问该应用程序。但是,当我将 IP 地址替换为 EC2 实
我已经在 OpenShift 上开发了一个 nodejs 服务器,现在我正尝试在 Heroku 上为一个新项目制作相同类型的服务器。 这是我的服务器的最小代码: var http = require(
我最近在更新Laravel环境或Windows 10的一部分时遇到了一些错误,所以在经过大量的尝试和错误之后,我决定删除所有内容并从头开始。所以现在我有了新的 VirtualBox、Vagrant、L
我在我的笔记本电脑上安装了相当全新的 OpenSUSE,并尝试测试一个全新的 React 应用程序。 我从 create-react-app 站点运行了以下命令: npx create-rea
我用 node.js 编写了以下代码来访问 Twitter Streaming API。如果我 curl 下面的 URL,它就会起作用。但是,我无法让它与我的代码一起工作。 var https = r
我在 centos 6.3 服务器上使用 rail for teambox,实际上这只是在实际应用之前的试错。 我正在使用 2 个运行在相同 centos 版本和精确副本上的虚拟机,VM2 只运行远离
我在我的服务器中安装了 Nginx 和 Node.js。 当我尝试运行我的 node.js 文件时,我收到一个错误: node.js:201 throw e; // process.ne
我正在运行一个应该托管在本地服务器上的 Node 应用程序。 目前,我只发送一个明文响应。 const http = require('http'); var server = http.create
我正在尝试让一个nodejs应用程序在Azure上运行(它在Heroku上运行得很好)。 在应用程序上运行 npm start 后,出现以下错误: Error: connect EADDRNOTAVA
我是一名优秀的程序员,十分优秀!