【问题标题】:Amazon EC2 Error: listen EACCES 0.0.0.0:80Amazon EC2 错误:监听 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,因为后者会向外部人员打开一个生根选项。详情在这里:stackoverflow.com/a/35069615/1598355

标签: node.js http amazon-ec2 vue.js yarnpkg


【解决方案1】:

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

【讨论】:

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

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

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

【讨论】:

    【解决方案3】:

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

    【讨论】:

    • 仅供参考,这不是安全的解决方案
    • 如果我 sudo node 它说找不到命令
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-01
    • 2018-04-24
    • 2020-06-07
    • 2016-07-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多