
我剛開始使用 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 指出的,你可以使用Python來SimpleHTTPServer
測試一下。
答案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
來測試它!這是一個很好的問題!謝謝你!