Linux

無法通過 IP 地址訪問 EC2 伺服器

  • June 12, 2013

我在 Web 瀏覽器中訪問我的 EC2 實例的彈性公共 IP 時遇到此問題。安裝了 REDHAT 6.3 並安裝了 nginx Web 伺服器(啟動並執行),並確保我啟用了埠 80 並設置了所需的一切。

現在是時候輸入公網 IP 來查看預設的 nginx 網頁了,什麼也沒有發生。我無法訪問 IP 地址。

現在我可以 ping 其他網站但無法 ping 我的 IP 地址。

現在經過幾個小時的嘗試並試圖弄清楚發生了什麼……我想我應該檢查REDHAT OS上的網路,每當我嘗試編輯任何與網路相關的東西時……那就是我失去了與伺服器的連接並且無法重新啟動網路。

我在這裡做錯了什麼?為什麼只是通過 IP 訪問我的伺服器如此困難?我現在需要做什麼?

謝謝。

編輯。這是與 EC2 實例關聯的安全組

Ports   Protocol    Source
20-21   tcp 0.0.0.0/0   
22  tcp 0.0.0.0/0   
80  tcp 0.0.0.0/0   
14000-14050 tcp 0.0.0.0/0

所以,這裡有幾件事可能是錯誤的。您可以對它們進行一一測試,並將問題歸零。

  1. 首先檢查您是否能夠從外部連接到埠。為此,請使用此命令
# telnet IP 80

如果您能夠通過此連接,則意味著您的 WebServer 設置肯定有問題,您不應該查看下一個規則。 2. 如果第一個不起作用,那麼要檢查的第二件事是您機器中的 iptables,而不僅僅是 AWS 安全組。為此,請檢查此命令的輸出。

# iptables -L -n

預設策略應始終為 ACCEPT,如果您沒有特別將 then 放入DROPREJECT。要測試 iptables 是否存在問題,您可以嘗試通過刷新規則或停止 iptables 服務來禁用 iptables。

要刷新規則,請使用以下命令:

# iptables -F

停止 iptables 服務:

# service iptables stop

現在嘗試訪問您的網站。 3. 第三個選項是檢查您機器上的 Selinux。在 redhat 機器上,SElinux 預設是啟用的。要檢查相同,請使用此命令並檢查狀態:

# getsebool

它應該這樣說:

getsebool:  SELinux is disabled

如果已啟用,則可能是原因。只需嘗試使用以下命令暫時禁用它:

# setenforce 0

這將暫時禁用您機器上的 SElinux。如果這解決了您的問題,只需將狀態從更新Enforcingdisabledin /etc/sysconfig/selinux,它將永久禁用您機器上的 SElinux。

希望這有幫助。

引用自:https://serverfault.com/questions/464292