GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Die Node.js-App kann nicht auf Port 80 ausgeführt werden, obwohl kein anderer Prozess den Port blockiert

Der Fehlercode EACCES bedeutet, dass Sie nicht über die erforderlichen Berechtigungen zum Ausführen von Anwendungen auf diesem Port verfügen. Auf Linux-Systemen erfordert jeder Port unter 1024 Root-Zugriff.


Anstatt auf Port 80 zu laufen, können Sie Port 80 mit

auf den Port Ihrer Anwendung (>1024) umleiten
iptables -t nat -I PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 3000

Dies funktioniert, wenn Ihre Anwendung auf Port 3000 ausgeführt wird.


Kurze Antwort:Sie können Knotenzugriff auf diesen Port erlauben mit:

setcap 'cap_net_bind_service=+ep' /path/to/nodejs

lange Antwort

Bearbeiten:

Funktioniert möglicherweise nicht auf neuen Knotenversionen


Linux
  1. Speichern Sie in einer Variablen die Anzahl der Sekunden, die ein Prozess für die Ausführung benötigt hat

  2. Wie kann man Node.js als Hintergrundprozess ausführen und nie sterben?

  3. Wie kann ich mein Node-JS-Skript automatisch mit dem Scheduler auf dem Server ausführen?

  4. Führen Sie ein ls aus, ohne den vollständigen Pfad zu erhalten

  5. Wie kann ich SSH auf einem anderen Port als 22 ausführen?

Führen Sie die Linux-Befehlszeile auf Ihrem iPad aus

Wo finde ich den Quellcode des cp-Befehls?

Kann die Thread-ID eines Multithread-Prozesses mit der Prozess-ID eines anderen laufenden Prozesses identisch sein?

PyODBC:Der Treiber kann nicht geöffnet werden, selbst wenn er vorhanden ist

dlsym gibt NULL zurück, obwohl das Symbol existiert

Wie kann ich den absoluten Pfad eines laufenden Prozesses erfahren?