yen*_*yen 2 node.js google-compute-engine google-cloud-platform
因此,如果我正确理解这一点,则机器可以在端口80上侦听。我安装了node并创建了一个非常简单的http服务器,以查看是否可以通过http到达该框。在云控制台上通过ssh登录。当我尝试启动它(例如
npm start
运行服务器)时,它说:
Error: listen EACCES: permission denied 0.0.0.0:80
为什么?怎么解决?
我在某个地方读到低端口号通常仅限于root用户,因此我尝试sudo
说它sudo: npm: command
未找到,并且与sudo节点类似。
同样为什么在使用此类脚本创建服务器时,文章说它们是作为root执行的?这是怎么发生的,为什么当我启动计算机并以自己的身份登录时却不以root用户身份执行?是的,我对linux perms的理解非常新手。
谢谢...
为了使用低于1024的TCP端口,您的节点服务器必须以root特权运行。TCP端口1024及更高端口不需要特权。
登录到Google Cloud Compute Engine实例时,您以normal
用户身份登录。您没有root特权。要为命令授予root特权,请在命令前面加上sudo
。范例:sudo mkdir /directoryname
。
我不建议以root特权运行节点服务器。这在您的系统中可能会造成严重的安全漏洞。在决定之前,请先搜索有关此主题的Internet。
您的选择是:
sudo node hello.js
关于npm找不到。您将需要修改环境的PATH变量,以包括为用户安装节点工具集的位置root
。
归档时间: |
|
查看次数: |
1314 次 |
最近记录: |