Ubuntu伺服器上開放80端口

Ubuntu伺服器上開放80端口

我剛開始使用 Ubuntu/Linux,在為傳入連線開啟連接埠 80 時遇到一些問題。

我運行了該sudo ufw allow 80/tcp命令,運行sudo ufw status結果如下所示:

Status: active

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

但是,當嘗試使用 cURL 連接到連接埠時,我仍然收到此錯誤。

無法連線到 MY_IP_ADDRESS 連接埠 80:連線被拒絕

當我運行此命令netstat -ntlp | grep LISTEN來查看打開的連接埠時,我得到以下結果:

(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      -         

這看起來不太有希望..

如何為傳入連線開啟連接埠 80?

答案1

沒有程式在偵聽連接埠 80,因此該連接​​埠已關閉,您無法連接到它。

您可以使用

sudo python -m SimpleHTTPServer 80

對於 Python-3:

sudo python3 -m http.server 80

啟動一個簡單的 Web 伺服器,偵聽連接埠 80,或者apache2如果您想要一個完整的 Web 伺服器,請安裝 Apache(軟體包)之類的東西。

答案2

超細纖維束是個簡單的防火牆。它管理電腦上的哪些連接埠可以開啟以供應用程式偵聽。sudo ufw allow 80/tcp意味著允許傳輸控制協定連接到端口80

然而,端口後面沒有任何東西在真正監聽。對於curl端口,應該有一個應用程式會發送回复。這通常稱為伺服器。正如@Florian 指出的,你可以使用PythonSimpleHTTPServer測試一下。

答案3

使用:

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

然後為了防止重新啟動時遺失 iptables 配置,請使用:

sudo apt-get install iptables-persistent

答案4

您可以sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT在配置端口時使用它接受端口,以防止丟失您可以使用的此終端代碼sudo apt-get install iptables-persistent 行在命令開頭使用 sudo 的原因是讓它以超級用戶身份運行 持久將其用作持久連接到所提供的端口。你也可以使用PythonSimpleHTTPServer來測試它!這是一個很好的問題!謝謝你!

相關內容