2016-02-03 254 views
1

我正在做一個GET請求我的EC2實例,但我發現了以下錯誤:EC2端口80:連接被拒絕

80: Connection refused 

這些都是我實例的安全規則:

Ports Protocol Source   launch-wizard-1 
80   tcp  0.0.0.0/0   ✔ 
22   tcp  177.32.53.207/32  ✔ 

這些規則有什麼問題?爲什麼我無法訪問端口80?

編輯 I attached my apache conf file (/etc/apache2/apache2.conf)在這個URL,因爲它太大,不能發佈所有的代碼在這裏。

EDIT2 當我運行netstat -ntlp | grep的LISTEN 我得到這個:

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

您在端口80上提供響應的實例上是否有軟件(例如Web服務器)?它運行嗎?你在錯誤日誌中看到什麼嗎? –

+0

除了Robbie所說的之外,還要確保無論運行在監聽端口80的服務器上的應用程序綁定了正確的接口/ IP。如果只監聽本地主機或非公共IP地址,則它不會響應公共IP地址。 – Brooks

+0

@RobbieAverill是的,我有Apache。但是我檢查了var/log/apache2/error.log上的日誌,並且沒有看到與端口相關的任何內容。 –

回答

0

什麼是你的連接請求的來源是什麼?您是否嘗試從亞馬遜外部或同一可用區域內的差異EC2實例訪問您的實例?您是否提供IP地址或DNS名稱作爲連接代碼的參數?

請記住,AWS EC2使用SDN(軟件定義的網絡),它與您在裸機系統上(或者甚至在您的操作系統上)使用Linux或其他操作系統時期望的傳統TCP/IP路由不一樣虛擬機使用更傳統的網絡)。

最終,您可能希望從AWS分配「彈性IP」(EIP)並將其綁定到您的Web服務器實例。然後將您的請求路由到該IP地址。 (通常你也可以通過亞馬遜的「Route53」服務創建一個DNS條目來使用名稱而不是地址)。

可以從網絡內外訪問您的實例。但是,您必須使用Amazon生成的DNS名稱才能這樣做,因爲它們使用水平分割,您的客戶端將獲得正確的(內部或外部)IP地址。

此外,您還必須考慮VPC(虛擬私有云)網絡上的安全設置以及您已應用於實例的安全設置。

相關問題