我有一个应用程序设置,以侦听端口66.
首先,我尝试使用 sudo node myapp.js 运行它。我能够以正确的URL(ip:66)访问它。然后我停止了应用程序(Ctrl + c)并使用pm2, sudo pm2 start app.js 启动它。状态为在线。但是,现在无法访问相同的网址。
在使用pm2启动应用程序的同时运行sudopm2日志的一个一个,给出了端口66的错误EACCESS。没有其他人正在运行该应用程序,我确信我只使用一个控制台并在启动之前终止节点服务PM2。
Pm2全球安装。服务器是Debian伸展。 Nodejs版本是8.x
我以普通用户身份登录并使用sudo运行该应用程序。
答案 0 :(得分:1)
普通用户不允许收听低于1024的端口。有几种方法可以解决这个问题。
您可以更改此规则以允许非root用户打开此类端口。但这是一个安全问题,不建议这样做。所以我不会添加这个解决方案的链接。
您还可以侦听大于1024的端口,然后在防火墙中使用转发规则将端口66路由到您打开的端口。 https://www.systutorials.com/816/port-forwarding-using-iptables/
my(和pm2)首选解决方案是侦听大于1024的端口,并使用像nginx这样的反向代理来路由在该服务器上运行的应用程序。 http://pm2.keymetrics.io/docs/tutorials/pm2-nginx-production-setup