全部產品
Search
文件中心

Elastic Compute Service:無法訪問ECS執行個體中的服務的排查方法

更新時間:Nov 30, 2024

本文介紹無法訪問ECS執行個體中的服務的排查方法。

操作環境

無法訪問ECS執行個體中的服務可能有以下原因:

可能原因

排查方案

ECS執行個體的安全性群組未開放相應連接埠

檢查ECS執行個體安全性群組規則

ECS執行個體中,該服務未啟動/開啟或服務對應連接埠未被監聽

檢查服務狀態及連接埠監聽狀態

ECS執行個體內防火牆設定錯誤

檢查ECS防火牆設定

本文以排查無法訪問ECS執行個體中的Nginx服務(預設連接埠為80)為例,排查其他服務時,請替換命令中的服務名和對應的連接埠。

檢查ECS執行個體安全性群組規則

  1. 登入ECS管理主控台

  2. 在左側導覽列,選擇執行個體與鏡像 > 執行個體

  3. 在頁面左側頂部,選擇目標資源所在的資源群組和地區。地區

  4. 在ECS執行個體列表頁面,單擊目標ECS執行個體ID。

  5. 在ECS執行個體詳情頁面,單擊安全性群組頁簽。

  6. 安全性群組列表頁簽下,單擊安全性群組ID。

  7. 在安全性群組規則頁面,查看入方向規則是否開放80連接埠。

    2023-06-04_16-56-00..png

檢查服務狀態及連接埠監聽狀態

Linux執行個體

本操作以CentOS 7.9為例,其他版本的Linux系統操作可能有所差異。

  1. 遠端連線Linux執行個體。

    具體操作,請參見通過密碼或密鑰認證登入Linux執行個體

  2. 執行如下命令,查看Nginx服務狀態。

    systemctl status nginx
    • 如果返回類似如下資訊,則說明Nginx已經啟動。

      2023-06-04_17-06-23..png

    • 如果未開啟,請執行如下命令,啟動Nginx。

      systemctl start nginx
  3. 執行如下命令,查看連接埠是否正常被監聽。

    netstat -an | grep 80
    • 如果返回如下資訊,則說明80連接埠被正常監聽,請執行檢查ECS防火牆設定

      2023-06-04_17-11-27..png

    • 如果返回的不是以上資訊,表示80連接埠未處於監聽狀態。說明該連接埠可能被其他進程佔用,您需要修改該連接埠。

Windows執行個體

本操作以Windows Server 2012為例,其他版本的Windows Server系統操作類似。

  1. 遠端連線Windows執行個體。

    具體操作,請參見通過密碼或密鑰認證登入Windows執行個體

  2. 選擇開始>運行,輸入service.msc,單擊確定,開啟服務

  3. 查看nginx狀態。

    1. 如果nginx無狀態,請按右鍵該nginx服務,然後單擊啟動(S)

      2023-06-04_19-14-19..png

    2. 如果nginx狀態為正在運行,請繼續執行步驟4

  4. 在Windows PowerShell中執行如下命令,查看連接埠是否正常被監聽。

    netstat -ano | findstr "80"
    • 如果返回如下資訊,則說明80連接埠被正常監聽,請執行檢查ECS防火牆設定

      image

    • 如果返回的不是以上資訊,表示80連接埠未處於監聽狀態。說明該連接埠可能被其他進程佔用,您需要修改該連接埠。

檢查ECS防火牆設定

Linux執行個體

本操作以CentOS 7.9為例,其他版本的Linux系統操作可能有所差異。

  1. 遠端連線Linux執行個體。

    具體操作,請參見通過密碼或密鑰認證登入Linux執行個體

  2. 執行如下命令,查看防火牆狀態。

    systemctl status firewalld
    • 如果回顯中出現Active: inactive (dead)資訊,說明防火牆為關閉狀態,無需再進行任何操作。

    • 如果回顯中出現Active: active (running)資訊,說明防火牆已開啟,請繼續執行步驟3

  3. 執行如下命令,查看防火牆中已開放的連接埠。

    firewall-cmd --list-all
    • 如果回顯中出現ports: 80/tcp資訊,說明防火牆規則中已允許存取80連接埠,無需再進行任何操作。

      2023-06-04_19-33-53..png

    • 如果回顯中沒有ports: 80/tcp資訊,請執行如下命令,允許存取80連接埠。

      firewall-cmd --zone=public --add-port=80/tcp --permanent

      若返回結果為success,表示已經允許存取TCP 80連接埠。

Windows執行個體

本操作以Windows Server 2012為例,其他版本的Windows Server系統操作類似。

  1. 遠端連線Windows執行個體。

    具體操作,請參見通過密碼或密鑰認證登入Windows執行個體

  2. 單擊左下角的伺服器管理..png表徵圖,開啟伺服器管理。

  3. 選擇右上方的工具(T)>進階安全 Windows防火牆

    2023-05-28_20-21-16..png

  4. 查看防火牆狀態。

    1. 如果防火牆處於關閉狀態,無需進行任何操作。

      2023-06-04_18-49-00..png

    2. 如果防火牆狀態為已啟用,請繼續以下操作。

      1. 進階安全 Windows防火牆頁面,單擊入站規則

      2. 查看Windows 遠端管理-相容模式(HTTP-In)的狀態。

        • 如果協議已啟動,無需進行任何操作。

        • 如果該規則未啟用,請按右鍵該規則,然後單擊啟用規則(E)

          2023-06-04_18-58-43..png