我一直试图在端口443上运行一个节点web应用程序,但是我得到了这个输出错误: listen 0.0.0.0:443
已经尝试过的ufw允许443/tcp,但是nmap仍然没有显示443作为开放端口。
也尝试过sudo iptables -A输入-p tcp -dport 443 -j接受w/没有成功。
任何帮助都将得到认可。
发布于 2016-10-20 07:51:57
EACCES意味着禁止在端口443上侦听。这是因为你没有像root那样运行你的应用程序。低于1024的端口是保留端口,只有root可以使用它们。
试图改变防火墙规则将没有任何效果,因为防火墙允许数据包通过或阻止它们。他们不允许有人听任何特定的端口。
解决方案:使用sudo运行您的代码,但这可能会带来安全风险。因此,您的应用程序应该尽快切换到另一个用户(或者找到一些我不知道的其他机制来删除权限),就在成功收听之后。
因为这很复杂,一个好的解决方案是
loopback接口,例如127.0.0.1:104430:443到127.0.0.1:10443的代理请求的You服务器。想到了nginx,但许多其他服务器都可以用于此任务。选你最喜欢的。如果您希望在端口443上使用SSL (通常是这样的话),您还应该设置证书(创建一个自签名的证书或购买一个或更多的证书,从我们的加密处获得免费证书)、配置协议、可用的密码等等。这也很复杂。
示例需要改进并应该工作的最小nginx配置文件(现在不能测试):
server {
server_name me.example.com;
listen 0.0.0.0:443 ssl;
ssl_certificate /etc/mycerts/fullchain.pem;
ssl_certificate_key /etc/mycerts/privkey.pem;
ssl_session_timeout 30m;
ssl_session_cache shared:SSL:400k;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
server_tokens off;
charset utf-8;
location / {
proxy_pass http://127.0.0.1:10443/;
}
}发布于 2022-03-29 13:42:00
只需使用sudo npm运行启动:dev :D
https://askubuntu.com/questions/839520
复制相似问题