gpt4 book ai didi

node.js - 如何让 Node 在 Ubuntu 18.04 上监听 1024 以下的端口?

转载 作者:搜寻专家 更新时间:2023-11-01 00:50:00 25 4
gpt4 key购买 nike

我可以在安装了 nvm 的 Node 中将 1023 以上的任何 PORTserver.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 以来情况发生了变化。

最佳答案

检查启动可执行文件的分区是否未使用 nosuid 挂载。

getcap 不会帮助排除故障,因为它会显示文件系统上设置的属性,而不是运行时可用的实际功能。

您可以在/proc/PID/status 中检查运行时功能。

它们应该是这样的

CapPrm: 0000000000000400
CapEff: 0000000000000400
CapBnd: 0000003fffffffff

在我的 nosuid 分区上,它们是这样的。

CapPrm: 0000000000000000
CapEff: 0000000000000000
CapBnd: 0000003fffffffff

希望对您有所帮助。我是在咨询了一位 friend 后才发现的:)

关于node.js - 如何让 Node 在 Ubuntu 18.04 上监听 1024 以下的端口?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53444965/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com