無法從外部存取apache2

無法從外部存取apache2

我在 AWS EC2 (Ubuntu) 上使用彈性 IP 託管 apache2 伺服器的預設網站。

安全群組設定為開放所有入站(用於測試)。

我可以使用公共 IP 透過 SSH 存取伺服器,但不能透過 HTTP。

我可以從本地主機瀏覽該網站(使用lynx 127.0.0.1)。

我還可以從同一子網路上的不同 EC2 瀏覽該網站。

這是我的 iptables:

-P INPUT ACCEPT
-P FORWARD ACCEPT
-P OUTPUT ACCEPT
-A INPUT -p tcp -m tcp --dport 80 -j ACCEPT

開放埠:

tcp               LISTEN             0                  128                                   0.0.0.0:22                                 0.0.0.0:*                                  
tcp               LISTEN             0                  511                                         *:80                                       *:*                                  
tcp               LISTEN             0                  128                                      [::]:22                                    [::]:*                                  
tcp               LISTEN             0                  511                                         *:443                                      *:*  

防火牆處於非活動狀態。

我也剛嘗試在同一子網路上執行的第二個虛擬機器上安裝 nginx,奇怪的是我也無法存取連接埠 80 的 Web 伺服器。

所以現在我還在單獨的子網路上建立了一個新實例,但仍然無法透過 HTTP 存取它。不過可以透過 SSH 存取它。

我不知道我錯過了什麼。

更新1:

這非常奇怪,我在那台機器上也運行了 MySQL,它也可以存取。似乎路由和安全群組都是正確的,但由於某種原因 HTTP 和 HTTPS 流量被某些東西阻止。

更新2:

我在 VPC 上開啟了流日誌,並且我在連接埠 80 上的所有請求都被拒絕,22 和 3306 可以正常存取。

my.ip.goes.here. 10.1.1.68 64087 80 6 1 64 1694528397 1694528415 REJECT OK

網路存取控制列表設定為允許所有入站和出站:

100 All traffic All All 0.0.0.0/0   Allow
*       All traffic All All 0.0.0.0/0   Deny

安全群組允許所有流量進出:

All Traffic 0.0.0.0/0

這變得越來越陌生。

答案1

嘗試使用 tspdump 追蹤封包 - 無論封包是否到達主機。如果封包到達,那麼顯然伺服器上的某些東西正在阻止或丟棄它。完全重置所有防火牆規則,或者更好的是,完全關閉它(用於測試)。好吧,首先,檢查網路伺服器設置,可能有些東西配置不正確。嘗試插入一個簡單的靜態頁面並結合這些措施 - 你一定會找出問題所在。

答案2

我找到了解決方案。

我在連接埠 81 上開啟了 nginx,工作正常,所以我認為它一定只是阻塞了任何 Web 連接埠。

經過一番研究後,這是因為我的 EC2 被報告為「EC2 濫用報告」。

在數百萬封電子郵件之間有一封:

我們收到了涉及您的 AWS 帳戶資源的濫用報告。因此,我們針對相關資源採取了以下措施,以減少此類活動:

** 封鎖該區域的入站 HTTP 連接埠 80,8080 和 443**

此前,該地區有不同的 EC2 執行個體安裝了特定軟體,但遭到駭客攻擊並被關閉。

如果控制台中的 EC2 執行個體能夠以某種方式顯示這一點,那就太好了。

相關內容