dotenv不适用于root特权

时间:2019-04-17 18:15:22

标签: node.js reactjs npm create-react-app dotenv

我正在运行使用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的重点,因此是个问题。

1 个答案:

答案 0 :(得分:0)

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

iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 3000