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)