全部產品
Search
文件中心

:無法訪問ECS上啟動並執行網站

更新時間:Jan 13, 2020

注意:無法開啟網站時,應該先搜尋排查報錯提示的含義,本文列舉了一些常見的報錯情況

無法訪問 ECS 執行個體上的網站時的分析思路:

網路通訊問題

ECS Linux 執行個體網路通訊問題排查

  1. 執行 ifconfigip addr 網路檢測命令查看 IP 位址。

    ifconfig

    ip_addr

  2. 執行命令 route -n 通過執行個體路由表查看網關。

    gateway

ECS Windows 執行個體網路通訊問題排查

  1. 開啟 CMD,執行 ipconfig 網路檢測命令查看 IP 位址。

  2. 執行命令 route print 通過執行個體路由表查看網關。

注意:

通信埠通訊問題

ECS Linux 執行個體通信埠通訊問題

  1. 執行命令 netstat –antpu | grep sshd 檢測 sshd 服務的運行狀態,確認通信埠是否有正常監聽。

    sshdservice

  2. 執行下列命令查看服務運行狀態:

    CentOS6:service sshd status
    CentOS7:systemctl status sshd

    • 如果 sshd 服務沒有正常運行,執行下列命令手動啟動 sshd 服務:

    CentOS6:service sshd restart
    CentOS7:systemctl restart sshd

  3. 查看 sshd 程式日誌

    • 如果無法正常啟動 sshd 服務,CentOS 6 系統一般會直接輸出錯誤資訊,而CentOS 7 啟動時沒有輸出資訊,需要通過 secure 日誌進行查看。sshd 日誌:/var/log/secure

    • 通過 secure 日誌的報錯資訊,一般是可以定位絕大部分 sshd 啟動異常的問題。

ECS Windows 執行個體通信埠通訊問題

執行遠程通信埠檢測命令:

  1. Tasklist /svc | findstr Ter
  2. netstat ano | findstr $PID

remoteport

防火牆配置異常

ECS Windows 執行個體遠程無法連接,關閉防火牆後連接恢複正常

前提條件:您只有在已授權可關閉防火牆的情況下,才能做該項排查。

  1. 調整防火牆配置策略。

  2. 調整後,重新進行遠端連線。

ECS Linux 執行個體 SSH 無法連接,關閉 Iptables 後連接恢複正常

前提條件:您只有在已授權可關閉 Iptables 的情況下,才能做調整 Iptables 配置策略排查。

  1. 執行命令 iptables -nvL –line-number 查看防火牆規則:

    • n 不對 IP 位址進行反查,加上這個參數顯示速度會快很多。

    • v 輸出詳細資料,包含通過該規則的資料包數量、總位元組數及相應的網路介面。

    • L 查看當前表的所有規則,預設查看的是 filter 表,如果要查看 NAT 表,可以加上 -t NAT 參數。

  2. 修改規則。(若您之前已設定過規則策略,執行命令 cp -a /etc/sysconfig/iptables /etc/sysconfig/iptables.bak 保存一份原有的 Iptables 檔案,避免丟失已設定過策略。)

    1. 執行命令 iptables -F 清空執行個體上所有的規則。

    2. 執行命令 iptables -P INPUT DROP 拒絕 INPUT 方向所有的請求都。

      注意:線上業務請勿直接操作,會導致業務直接中斷。

    3. 執行下列命令放行通信埠 22:

      1. iptables -A INPUT -p tcp --dport 22 -j ACCEPT
      2. iptables -A OUTPUT -p tcp --sport 22 -j ACCEPT
    4. 執行下列命令指定 IP 訪問通信埠 22:

      1. iptables -I INPUT -s 192.168.1.1 -p tcp --dport 22 -j ACCEPT

      說明: 192.168.1.1 為請求端 IP 位址。

    5. 執行命令 iptables -L 查看添加的規則是否生效。

      iptables -L

    6. 執行命令 iptables-save > /etc/sysconfig/iptables 保存添加的規則。

  3. 執行命令 service iptables restart/etc/init.d/iptables restart 重啟 Iptables。

  4. 執行命令 systemctl reboot 重啟執行個體驗證配置。

  5. 重新進行 SSH 連接。

重新設定安全性群組公網規則

原因分析:安全性群組預設沒有放行網站使用的通信埠(如 80 通信埠)。您需要自行放行該介面。

解決方法:

  1. 登入 ECS 控制台,找到該執行個體。
  2. 單擊執行個體 ID,進入詳情頁,再單擊本執行個體安全性群組 > 配置規則 >添加安全性群組規則
  3. 根據網站使用的通信埠配置新的安全性群組規則,放行網站使用的通信埠,最後單擊確定

可參考文檔添加安全性群組規則

根據報錯情況分析

報錯情況比較複雜,此處列出比較常見的幾種報錯內容:

  • 403 報錯:403 報錯是一個大類,403 的報錯基本上是許可權問題,出現 403 報錯時您需要檢測許可權配置問題。
    • 403.1 錯誤是由於“執行”訪問被禁止而造成的。若試圖從目錄中執行 CGI、ISAPI 或其他可執行程式,但該目錄不允許執行程式時便會出現此種錯誤。
    • 403.2 錯誤是由於”讀取”訪問被禁止而造成的。導致此錯誤是由於沒有可用的預設網頁並且沒有對目錄啟用瀏覽目錄,或者要顯示的 HTML 網頁所駐留的目錄僅標記為“可執行”或“指令碼或直譯式程式”許可權。
    • 403.3 錯誤是由於“寫入”訪問被禁止而造成的。當試圖將檔案上傳到目錄或在目錄中修改檔案,但該目錄不允許“寫”訪問時就會出現此種錯誤。
    • 403.4 錯誤是由於要求 SSL 而造成的。您必須在要查看的網頁的地址中使用 HTTPS。
    • 403.5 錯誤是由於要求使用 128 位密碼編譯演算法的 網頁瀏覽器而造成的。如果您的瀏覽器不支援 128 位密碼編譯演算法就會出現這個錯誤,您可以連接微軟網站進行瀏覽器升級。
    • 403.6 錯誤是由於 IP 位址被拒絕而造成的。如果伺服器中有不能訪問該網站的IP地址清單,並且您使用的 IP 位址在該列表中時您就會返回這條錯誤資訊。
    • 403.7 錯誤是因為要求客戶證書。當需要訪問的資源要求瀏覽器擁有伺服器能夠識別的安全通訊端層(SSL)客戶證書時會返回此種錯誤。
    • 403.8 錯誤是由于禁止網站訪問而造成的。若伺服器中有不能訪問該網站的 DNS 名稱列表,而您使用的 DNS 名稱在列表中時就會返回此種資訊。請注意區別 403.6 與 403.8 錯誤。
    • 403.9 錯誤是由於連接的使用者過多而造成的,由於 Web 服務器很忙,因通訊量過多而無法處理請求時便會返回這條錯誤。
    • 403.10 錯誤是由於無效配置而導致的錯誤。當您試圖從目錄中執行 CGI、ISAPI 或其他可執行程式,但該目錄不允許執行程式時便會返回這條錯誤。
    • 403.11 錯誤是由於密碼更改而導致無權查看頁面。
    • 403.12 錯誤是由於映射器拒絕訪問而造成的。若要查看的網頁要求使用有效客戶證書,而您的客戶證書映射沒有許可權訪問該 Web 網站時就會返回映射器拒絕訪問的錯誤。
    • 403.13 錯誤是由於需要查看的網頁要求使用有效客戶證書而使用的客戶證書已經被吊銷,或者無法確定證書是否已吊銷造成的。
    • 403.14 錯誤 Web 服務器被配置為不列出此目錄的內容,拒絕目錄列表。
    • 403.15 錯誤是由於客戶訪問許可過多而造成的。當伺服器超出其客戶訪問許可限制時會返回此條錯誤。
    • 403.16 錯誤是由於客戶證書不可信或者無效而造成的。
    • 403.17 錯誤是由於客戶證書已經到期或者尚未生效而造成的。
  • 404 報錯:404 報錯主要是頁面顯示問題或者頁面的連結有問題,意味著連結指向的網頁不存在,即原始網頁的 URL 失效。當 Web 服務器接到類似請求時,會返回一個 404 狀態碼,告訴瀏覽器已請求的資源並不存在。導致這個錯誤的原因一般有以下幾種情況:
    • 無法在所請求的通信埠上訪問 Web 網站。
    • Web 服務擴充鎖定策略阻止本請求。
    • MIME 對應策略阻止本請求。
    • 網站更新改版,但某些局部板塊沿用原來的模組,而原有的模組調用的檔案已經被刪除或轉移了路徑。
    • 跟蹤訪問的各類腳碼或 CSS 檔案無效但調用代碼依然存在。
    • 某個目錄直接刪除(導致一段時間該目錄的檔案在被爬行時全部報 404 Not Found 錯誤)
    • 網頁 URL 建置規則改變、網頁檔案更名或移動位置、匯入連結拼字錯誤等,導致原來的 URL 地址無法訪問
  • 502 報錯:當測試訪問報錯為 502 Bad Gateway,這是 Web 程式配置異常導致的。建議結合 Web 存取日誌,檢測一下 Web 程式配置的參數設定是否有異常。
  • 503 報錯:503 報錯是一種 HTTP 狀態碼,與 404 同屬一種網頁狀態出錯碼。兩者的區別是:前者是伺服器出錯的一種返回狀態,後者是網頁程式沒有相關結果後返回的一種狀態。503 報錯產生的原因有可能是以下幾種情況:
    • 網路系統管理員可能關閉應用程式集區以執行維護。
    • 當請求到達時應用程式集區隊列已滿。
    • 應用程式集區標識沒有使用預定義賬戶:網路服務。而自己配置了標識,但是配置的這個使用者不屬於 IIS_WPG 組。
    • 應用程式集區啟用了 CPU 監視,並且設定了 CPU 利用率超過一定百分比關閉應用程式集區,而開發人員寫的服務端頁面 (.asp、.aspx) 執行效率不高,會引起 CPU 的長時間佔用,最終達到設定的百分比,從而引起應用程式集區關閉。
    • 應用程式集區的效能選項卡的請求隊列限制所填的數值太小,預設為 1000。
    • 某個目錄直接刪除(導致一段時間該目錄的檔案在被爬行時全部報 404 Not Found 錯誤)。
    • 網頁 URL 建置規則改變、網頁檔案更名或移動位置、匯入連結拼字錯誤等,導致原來的 URL 地址無法訪問。
    • 該網站正在被攻擊。對於最新型的攻擊,其實是 DDoS 的一種派生,原理在於找數千個IP,同時向伺服器的 Apache 發出請求,然後 立即斷開,讓 Apache 處於等待狀態,致使 Apache 線程全部被填滿,致使伺服器死機。因此,為了保證大多數客戶的利益,我們給每個空間,作出了每 19 秒 64 個 php 請求的限制。注意,是 php 請求,一般的圖片請求和 html 請求不包括在內。
    • 該程式佔用的 php 線程過多,有的程式沒有進行好優化處理,一個點擊即可產生數個,甚至數十個 php 線程。這樣的話,幾個點擊就可以把該時段的64個 php 線程全部填滿了。因此出現 503 錯誤。建議優化一下程式,盡量少用 require (請求)等語句。

如問題還未解決,請您記錄排查結果、相關日誌資訊或截圖,提交工單提交工單聯繫阿里雲。