Amazon EC2 错误:监听 EACCES 0.0.0.0:80

Posted

技术标签:

【中文标题】Amazon EC2 错误:监听 EACCES 0.0.0.0:80【英文标题】:Amazon EC2 Error: listen EACCES 0.0.0.0:80 【发布时间】:2018-12-03 20:37:27 【问题描述】:

我已经在入站规则中添加了 HTTP TCP 端口 80,但我仍然收到错误:

Error: listen EACCES 0.0.0.0:80
    at Object._errnoException (util.js:992:11)
    at _exceptionWithHostPort (util.js:1014:20)
    at Server.setupListenHandle [as _listen2] (net.js:1338:19)
    at listenInCluster (net.js:1396:12)
    at doListen (net.js:1505: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:191:16)
    at bootstrap_node.js:612:3

【问题讨论】:

您应该创建或使用现有的具有权限的 nginx 用户来代理对端口 80 的所有请求,而不是 sudo-it,因为后者会向外部人员打开一个生根选项。详情在这里:***.com/a/35069615/1598355 【参考方案1】:

错误代码 EACCES 表示您没有在该端口上运行应用程序的适当权限。在 Linux 系统上,任何低于 1024 的端口都需要 root 访问权限。

【讨论】:

我不知道1024以下需要root访问的端口,感谢您提供的精彩信息。【参考方案2】:

如果没有 root 权限,您无法运行侦听低端口(低于 1024)的进程。

您要么尝试以sudo 运行,如上所述,要么开始使用反向代理(例如nginx),在另一个端口上启动进程并使用反向代理转发来自端口80 的调用到您启动进程的任何端口。

【讨论】:

【参考方案3】:

您可能必须使用 sudo 运行您的 node.js 脚本,因为您想在端口 80 上侦听。

【讨论】:

仅供参考,这不是安全的解决方案 如果我 sudo node 它说找不到命令

以上是关于Amazon EC2 错误:监听 EACCES 0.0.0.0:80的主要内容,如果未能解决你的问题,请参考以下文章

错误:监听 EACCES 0.0.0.0:8080 但找不到端口?

错误:在 Azure 服务器上监听 EACCES 0.0.0.0:80 节点(Windows 服务器 2012 r2)

Amazon EC2 中的 HTTPS 设置

在 Windows 8 上使用 Express 的 node-webkit“错误:监听 EACCES”

Amazon ec2 linux实例mysql未连接

Amazon EC2 中的推送通知错误