Öffnen Sie Port 80 auf dem Ubuntu-Server


17

Ich fange gerade mit Ubuntu / Linux an und habe Probleme, Port 80 für eingehende Verbindungen zu öffnen.

Ich habe den sudo ufw allow 80/tcpBefehl ausgeführt, und wenn ich sudo ufw statusdas Ergebnis ausführe, sieht es so aus:

Status: active

To                         Action      From
--                         ------      ----
22                         ALLOW       Anywhere
80/tcp                     ALLOW       Anywhere
22 (v6)                    ALLOW       Anywhere (v6)
80/tcp (v6)                ALLOW       Anywhere (v6)

Beim Versuch, mit cURL eine Verbindung zum Port herzustellen, wird dieser Fehler jedoch weiterhin angezeigt.

Verbindung zu MY_IP_ADDRESS-Port 80 fehlgeschlagen: Verbindung abgelehnt

Wenn ich diesen Befehl ausführe, um netstat -ntlp | grep LISTENzu sehen, welche Ports geöffnet sind, erhalte ich das folgende Ergebnis:

(No info could be read for "-p": geteuid()=1000 but you should be root.)
tcp        0      0 127.0.0.1:27017         0.0.0.0:*               LISTEN      -               
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      -               
tcp6       0      0 :::22                   :::*                    LISTEN      -         

Welches sieht nicht so vielversprechend aus ..

Wie öffne ich Port 80 für eingehende Verbindungen?

Antworten:


11

Auf Port 80 ist kein Programm zu hören, daher ist er geschlossen und Sie können keine Verbindung zu ihm herstellen.

Sie können verwenden

sudo python -m SimpleHTTPServer 80

um einen einfachen Webserver zu starten, der auf Port 80 lauscht, oder um etwas wie Apache (Paket apache2) zu installieren, wenn Sie einen vollwertigen Webserver wollen.


7

UFW ist die unkomplizierte Firewall . Es verwaltet, welche Ports auf Ihrem Computer von einer Anwendung zum Abhören geöffnet werden können. sudo ufw allow 80/tcpbedeutet, TCP- Verbindungen zu Port 80 zuzulassen.

Hinter dem Hafen lauscht jedoch nichts. An curlden Port sollte sich eine Anwendung befinden, die eine Antwort sendet. Dies wird normalerweise als Server bezeichnet. Da @Florian Punkte, können Sie verwenden Python ‚s um SimpleHTTPServeres zu testen.


ist das permanent
Marcelo Filho

5

Nun, was für mich funktioniert hat, war iptable zu verwenden

sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT

1
Als Hinweis ist dies nicht dauerhaft. Wird beim Neustart zurückgesetzt.
Oliver Dixon

@ OliverDixon, ja richtig
Azerafati

4

Verwenden:

sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT

Um zu verhindern, dass die iptables-Konfiguration beim Neustart verloren geht, verwenden Sie:

sudo apt-get install iptables-persistent

3
Dies wäre eine großartige Änderung für die Antwort vom 4/2016
Charles Green

1

Sie können sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPTdies verwenden. Akzeptiert den Port, wenn er mit dem Port konfiguriert wird, um zu verhindern, dass diese Terminal-Codezeile verloren geht. sudo apt-get install iptables-persistent Der Grund für sudo am Anfang eines Befehls besteht darin, ihn als Superuser laufen zu lassen, während der Persistierende ihn als persistierende Verbindung verwendet an den mitgelieferten Port. Sie können es auch mit Python SimpleHTTPServertesten! Das war eine tolle Frage! Danke!


0

Das funktioniert bei mir. Erlaube einfach die 80 von iptables

sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.