首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >打开节点web应用程序的端口443

问打开节点web应用程序的端口443
EN

Ask Ubuntu用户
提问于 2016-10-20 06:57:19
回答 2查看 21.1K关注 0票数 6

我一直试图在端口443上运行一个节点web应用程序,但是我得到了这个输出错误: listen 0.0.0.0:443

已经尝试过的ufw允许443/tcp,但是nmap仍然没有显示443作为开放端口。

也尝试过sudo iptables -A输入-p tcp -dport 443 -j接受w/没有成功。

任何帮助都将得到认可。

EN

回答 2

Ask Ubuntu用户

发布于 2016-10-20 07:51:57

EACCES意味着禁止在端口443上侦听。这是因为你没有像root那样运行你的应用程序。低于1024的端口是保留端口,只有root可以使用它们。

试图改变防火墙规则将没有任何效果,因为防火墙允许数据包通过或阻止它们。他们不允许有人听任何特定的端口。

解决方案:使用sudo运行您的代码,但这可能会带来安全风险。因此,您的应用程序应该尽快切换到另一个用户(或者找到一些我不知道的其他机制来删除权限),就在成功收听之后。

因为这很复杂,一个好的解决方案是

  1. 您的应用程序监听非特权端口上的loopback接口,例如127.0.0.1:10443
  2. 您可以设置一个从0:443到127.0.0.1:10443的代理请求的You服务器。想到了nginx,但许多其他服务器都可以用于此任务。选你最喜欢的。

如果您希望在端口443上使用SSL (通常是这样的话),您还应该设置证书(创建一个自签名的证书或购买一个或更多的证书,从我们的加密处获得免费证书)、配置协议、可用的密码等等。这也很复杂。

示例需要改进并应该工作的最小nginx配置文件(现在不能测试):

代码语言:javascript
复制
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/;
    }
}
票数 1
EN

Ask Ubuntu用户

发布于 2022-03-29 13:42:00

只需使用sudo npm运行启动:dev :D

票数 0
EN
页面原文内容由Ask Ubuntu提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://askubuntu.com/questions/839520

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档