【发布时间】:2019-04-25 23:08:49
【问题描述】:
我可以在安装了 nvm 的节点中使用任何大于 1023 的 PORT 和 server.listen(PORT)。非特权用户如何使用系统端口(例如低于 1024)?
在我们的 Ubuntu 16.04 服务器上,我曾经这样做过:
sudo setcap CAP_NET_BIND_SERVICE=+eip `readlink -f \`which node\``
但是,我们已经升级到 Ubuntu 18.04,但它似乎不再工作了。我看到以下错误:
Error listen EACCES 0.0.0.0:925
所有低于 1024 的端口都会出现这种情况,因此这不仅仅是端口已被使用的一次性情况。
为什么这不起作用(不再)?我一定是遗漏了什么,或者自 Ubuntu 18.04 以来事情发生了变化。
【问题讨论】:
-
@AbhishekMani 我知道这一点。这不是我要问的。请注意在 cmets 中如何提及
CAP_NET_BIND_SERVICE。 -
不要否定诺顿,但这些是保留的系统端口。他们被阻止是有原因的。你需要做什么,实际上需要一个系统端口?
-
@unflores 我不想因为你试图和我一起思考而显得忘恩负义,但讨论理由会让我们远离这个问题。出于所有意图和目的,它是无关紧要的。
-
您找到解决方案了吗?我有同样的问题...... 16.04 一切正常,18.04 不再工作
标签: node.js server port listen