全部產品
Search
文件中心

:Linux執行個體通過curl命令無法訪問Metaserver,提示"curl: (7) Failed to connect to 100.100.XX.XX port 80: Connection timed out"錯誤怎麼辦?

更新時間:Jul 04, 2024

本文介紹Linux執行個體通過curl命令無法訪問Metaserver,提示"curl: (7) Failed to connect to 100.100.XX.XX port 80: Connection timed out"錯誤時的問題原因及解決方案。

問題現象

Linux執行個體通過curl命令無法串連到位於100.100.XX.XX地址上的Metaserver(中繼資料服務器),並提示以下錯誤資訊。

curl: (7) Failed to connect to 100.100.XX.XX port 80: Connection timed out

表示串連到目標IP地址的連接埠80失敗,伺服器連線逾時。

說明

Linux執行個體無法訪問Metaserver可能導致ECS執行個體建立後部分初始化操作失敗,例如金鑰組配置、主機名稱和hosts初始化等。

問題原因

該問題通常是由於ECS執行個體的內部網路環境存在問題,導致無法與目標IP地址建立網路連接。可能原因如下:

  • ECS執行個體的網路設定異常導致無法串連網路,因此無法與Metaserver建立串連。您可以將網路設定修改為DHCP以解決串連網路的問題。具體操作,請參見修改網路設定為DHCP

  • ECS執行個體的防火牆配置阻止與Metaserver進行通訊,導致無法訪問Metaserver地址(100.100.**.**)。您可以檢查防火牆配置情況,並嘗試臨時關閉防火牆進行測試,以確定是否因防火牆導致無法串連Metaserver。具體操作,請參見關閉系統防火牆

解決方案

修改網路設定為DHCP

本文以RedHat系列的Linux作業系統為例,配置網路為DHCP的方法如下。關於其他發行版本的Linux作業系統的操作步驟,請參見如何在Linux鏡像中配置網路為DHCP

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

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

  2. 執行以下命令,編輯網路設定檔。

    sudo vi /etc/sysconfig/network-scripts/ifcfg-eth0 
  3. 修改以下網路設定項。

    BOOTPROTO=dhcp
    DEVICE=eth0
    ONBOOT=yes
    STARTMODE=auto
    TYPE=Ethernet
    USERCTL=no
  4. 修改完成後,按Esc鍵,輸入:wq並斷行符號,儲存並退出檔案編輯。

  5. 重啟網路服務。

    • CentOS 6、Red Hat 6作業系統,請執行以下命令。

      sudo service network restart
    • CentOS 7、Red Hat 7、Anolis 7、Alibaba Cloud Linux 2作業系統,請執行以下命令。

      sudo systemctl restart network
    • CentOS 8、Red Hat 8、Anolis 8、Fedora 33/34/35、Alibaba Cloud Linux 3作業系統,請執行以下操作:

      1. 執行以下命令,重新載入所有網卡配置。

         sudo nmcli c reload
      2. 執行以下命令,啟用網卡。

        sudo nmcli d connect eth0

關閉系統防火牆

Linux系統存在不同的發行版本,不同發行版本中開啟或關閉系統防火牆的命令不同,請根據現場環境匹配下列發行版本的操作命令。

CentOS 5/CentOS 6

在CentOS 5和CentOS 6系統中,關於如何開啟防火牆、關閉防火牆、查看防火牆運行狀態,請參考以下資訊:

  • 開啟防火牆

    sudo service iptables start
  • 關閉防火牆

    sudo service iptables stop
  • 查看防火牆運行狀態

    sudo service iptables status

CentOS 7/Red Hat 7/Alibaba Cloud Linux 2

在CentOS 7、Red Hat和Alibaba Cloud Linux 2系統中,關於如何開啟防火牆、關閉防火牆、查看防火牆運行狀態,請參考以下資訊:

  • 開啟防火牆

    sudo systemctl start firewalld.service
  • 關閉防火牆

    sudo systemctl stop firewalld.service
  • 查看防火牆運行狀態

    sudo firewall-cmd --state

Ubuntu

在Ubuntu系統中,關於如何開啟防火牆、關閉防火牆、查看防火牆運行狀態,請參考以下資訊:

  • 開啟防火牆

    sudo ufw enable
  • 關閉防火牆

    sudo ufw disable
  • 查看防火牆運行狀態

    sudo ufw status

Debian

在Debian系統中,預設沒有安裝防火牆,可以通過清空防火牆策略,刪除相關屏蔽規則。具體操作如下所示:

重要

清空策略前,請務必備份防火牆策略。

  1. 依次執行以下命令,備份防火牆策略。

    touch [$Iptables]
    sudo iptables-save > [$Iptables]
    說明

    [$Iptables]為防火牆策略的備份檔案地址。

  2. 執行以下命令,清空防火牆策略。

    sudo iptables -F