相关疑难解决方法(0)

侦听http 80端口时出现Node.js EACCES错误(权限被拒绝)

在http端口80(默认端口)上运行时,Node.js抛出以下错误: -

Error: EACCES, Permission denied
    at Server._doListen (net.js:1062:5)
    at net.js:1033:14
    at Object.lookup (dns.js:132:45)
    at Server.listen (net.js:1027:20)
    at [object Context]:1:3
    at Interface.<anonymous> (repl.js:150:22)
    at Interface.emit (events.js:42:17)
    at Interface._onLine (readline.js:132:10)
    at Interface._line (readline.js:387:8)
    at Interface._ttyWrite (readline.js:564:14)
Run Code Online (Sandbox Code Playgroud)

我发现该节点需要具有root访问权限.

通常,我们避免在正常情况下提供root访问权限.在端口80(或端口<1024)上使用它的最佳做法是什么.

这个链接有同样的问题,但它只有一个答案,即PREROUTING.虽然我的解决方案也提供其他方法.

我写这篇文章是为了在一个地方得到所有答案,因为我必须通过其他资源而不是PREROUTING.为什么不在一个地方为所有答案分享知识

javascript http permission-denied node.js express

19
推荐指数
1
解决办法
3万
查看次数

如何以非root用户身份运行node.js?

我正在运行一个node.js服务器,它将在端口80和其他服务器上提供请求.显然,这需要以root身份运行应用程序(在Linux上).

以这篇文章(http://syskall.com/dont-run-node-dot-js-as-root)为例,很明显有一些简单的方法可以让节点作为非root用户运行,但我想知道是否有人对所建议的不同方法的优点/缺点有任何看法:

  1. 代码:在侦听端口80建立后,使用setuid()从root用户下载到非特权用户.

  2. 使用某种代理服务器将请求重定向到端口> 1024(因此不需要节点以root身份运行)

  3. 使用IP表转发到另一个端口(同上节点不会以root身份运行)

谢谢

iptables root node.js

17
推荐指数
3
解决办法
9470
查看次数

nodejs:听 EACCES:权限被拒绝 0.0.0.0:80

我正在尝试创建 https 服务器以通过节点 js 测试套接字 io。根据这个页面

openssl genrsa -out privatekey.pem 2048 
openssl req -new -key privatekey.pem -out certrequest.csr 
openssl x509 -req -in certrequest.csr -signkey privatekey.pem -out certificate.pem
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明

我创建了privatekey.pemcertificate.pem这是我的代码:

var express = require('express');
var https = require('https');
var fs = require('fs');

var options = {
    key: fs.readFileSync('privatekey.pem'),
    cert: fs.readFileSync('certificate.pem')
  };
var app = express();

 var server = https.createServer(options, app).listen(443);

var io = require('socket.io').listen(server,()=>{
    console.log('listen to https');
});



io.on('connection', function (socket) {
    console.log(' user connected');
    socket.on('disconnect', function …
Run Code Online (Sandbox Code Playgroud)

https node.js socket.io

17
推荐指数
4
解决办法
4万
查看次数

服务器 - 听 EACCES:权限被拒绝 127.0.0.1:4200

我使用 127.0.0.1:4200 做 ng serve 没有问题。

但是今天,当我做服务时,发生了一个未处理的异常:listen EACCES: permission denied 127.0.0.1:4200

有没有办法永久解决这个问题?

angular

12
推荐指数
5
解决办法
1万
查看次数

如何在不同的端口上运行流星

如何在不同的端口上运行meteor,例如在端口80上.我尝试使用meteor --port 80,但是我收到了这个错误Error: listen EACCES

请帮帮我.

meteor

8
推荐指数
4
解决办法
2万
查看次数

node.js FS 无法从letsencrpyt 读取证书

const httpsOptions = {
    key: FS.readFileSync("/etc/letsencrypt/live/site/privkey.pem"),
    cert: FS.readFileSync("/etc/letsencrypt/live/site/fullchain.pem")
};

EACCES: permission denied
Run Code Online (Sandbox Code Playgroud)

尝试使用选项设置 HTTPS 服务器。在设置选项以传递给HttpS.createServer(httpsOptions,App);. 我从letsencrypt 获得了证书,但是尝试运行服务器会导致权限被拒绝错误。为 HTTPS 服务器加载证书和密钥文件的正确方法是什么?

https node.js lets-encrypt

6
推荐指数
2
解决办法
3153
查看次数

socket.io绑定到特定的ip地址

我有一个运行IIS的Windows服务器和带有socket.io的node.js,用于我正在开发的交互式白板应用程序.我希望IIS网站和node.js服务器都在端口80上侦听,但绑定到不同的IP地址.

根据我的发现,socket.io无法指定IP地址.可以通过创建http服务器实例来克服此限制.我是socket.io和node.js的新手,尝试这样做有点失落.我将包括原始服务器代码(侦听特定端口)以及我尝试在特定IP地址上实例化服务器.

原版的

(function() {
  var io;
  io = require('socket.io').listen(80);
  io.sockets.on('connection', function(socket) {
    socket.on('drawClick', function(data) {
      socket.broadcast.emit('draw', {
        x: data.x,
        y: data.y,
        type: data.type
      });
    });
  });
}).call(this);
Run Code Online (Sandbox Code Playgroud)

改性

(function() {
    var host = "10.70.254.76";
var port = 80;

var http = require("http").createServer();
var io = require("socket.io").listen(http);

http.listen(port, host);
io.sockets.on('connection', function(socket) {
    socket.on('drawClick', function(data) {
        socket.broadcast.emit('draw', {
            x: data.x,
            y: data.y,
            type: data.type
        });
    });
});
}).call(this);
Run Code Online (Sandbox Code Playgroud)

我得到错误:在启动修改后的代码时听EACCES

node.js socket.io

4
推荐指数
2
解决办法
1万
查看次数

Docker:来自服务器的空响应

我在连接docker容器时遇到问题,服务器返回空响应,但配置似乎正确。

当我使用docker-compose up命令时,一切似乎都可以正常工作,但是我收到来自服务器的空响应。

我仔细检查了端口映射,但是我什么都没注意到。

这是撰写文件

    version: '3'

    services: 
      authapi:
        build:
          dockerfile: ./docker/Dockerfile.dev
          context: .
        restart: always
        volumes:
          - .:/usr/src/auth
          - /usr/src/auth/node_modules
        environment: 
          FBAPPID: ${FBAPPID}
          FBAPPSECRET: ${FBAPPSECRET}
          GOOGLEAPPID: ${GOOGLEAPPID}
          GOOGLEAPPSECRET: ${GOOGLEAPPSECRET}
          GITHUBAPPID: ${GITHUBAPPID}
          GITHUBAPPSECRET: ${GITHUBAPPSECRET}
        ports:
          - ${PORT}:${PORT}
        command: 
          - sh
          - -c
          - sleep 20 && npm run start:dev
        depends_on: 
          - psql
      psql:
        image: postgres:10-alpine
        ports:
          - 5432:5432
        environment: 
          POSTGRES_USER: ${PG_USER}
          POSTGRES_PASSWORD: ${PG_PASSWORD}
          POSTGRES_DB: ${PG_DB}
        volumes:
          - ./pg-data:/var/lib/postgresql/data
Run Code Online (Sandbox Code Playgroud)

Docker文件

    FROM node:10-alpine

    WORKDIR /usr/src/auth

    COPY ./package.json .

    RUN npm install

    COPY …
Run Code Online (Sandbox Code Playgroud)

node.js docker

1
推荐指数
1
解决办法
1344
查看次数

错误:监听 EACCES:权限被拒绝 8085;

我尝试运行后端服务器,但是当我在 cmd 中运行命令时node backend/server.js,出现以下错误:

D:\theshoppingcart>node backend/server.js
events.js:187
      throw er; // Unhandled 'error' event
      ^

Error: listen EACCES: permission denied 8085;
    at Server.setupListenHandle [as _listen2] (net.js:1284:19)
    at listenInCluster (net.js:1349:12)
    at Server.listen (net.js:1448:5)
    at Object.<anonymous> (D:\theshoppingcart\backend\server.js:16:8)
    at Module._compile (internal/modules/cjs/loader.js:959:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:995:10)
    at Module.load (internal/modules/cjs/loader.js:815:32)
    at Function.Module._load (internal/modules/cjs/loader.js:727:14)
    at Function.Module.runMain (internal/modules/cjs/loader.js:1047:10)
    at internal/main/run_main_module.js:17:11
Emitted 'error' event on Server instance at:
    at emitErrorNT (net.js:1328:8)
    at processTicksAndRejections (internal/process/task_queues.js:80:21) {
  code: 'EACCES',
  errno: 'EACCES',
  syscall: 'listen',
  address: '8085;',
  port: -1
}
Run Code Online (Sandbox Code Playgroud)

这是我的 backend/server.js …

port backend web-development-server permission-denied node.js

1
推荐指数
1
解决办法
1295
查看次数