1

我正在运行一个使用create-react-app. 我想让它在端口上运行80,所以我添加了一个.env包含内容的文件

PORT=80

当我跑步时npm start,我得到

? Admin permissions are required to run a server on a port below 1024.

但是当我运行时sudo npm start,应用程序在端口上启动3000

为什么.env当我使用 运行时我的文件会被忽略,我sudo该如何解决这个问题?

编辑:这个问题不是关于如何在我运行时保留我当前的环境变量sudo。这个问题是关于 的行为.env,以及为什么在运行时它不起作用sudo

有趣的是,当我使用 su 时,例如。

$ su
# npm start

它在端口 80 上运行。

为了完全清楚,我想知道如何在80不通过命令传递端口的情况下在端口上运行我的应用程序,即sudo PORT=80 npm start. 我相信这就是.env问题的全部意义所在。

4

1 回答 1

0

我不认为您可以在没有 root 权限的情况下在端口 80 上运行服务器,但我认为您可以将连接从端口 80 重定向到其他端口。

iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 3000
于 2019-04-17T19:46:32.363 回答