本文介紹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。
執行以下命令,編輯網路設定檔。
sudo vi /etc/sysconfig/network-scripts/ifcfg-eth0修改以下網路設定項。
BOOTPROTO=dhcp DEVICE=eth0 ONBOOT=yes STARTMODE=auto TYPE=Ethernet USERCTL=no修改完成後,按
Esc鍵,輸入:wq並斷行符號,儲存並退出檔案編輯。重啟網路服務。
CentOS 6、Red Hat 6作業系統,請執行以下命令。
sudo service network restartCentOS 7、Red Hat 7、Anolis 7、Alibaba Cloud Linux 2作業系統,請執行以下命令。
sudo systemctl restart networkCentOS 8、Red Hat 8、Anolis 8、Fedora 33/34/35、Alibaba Cloud Linux 3作業系統,請執行以下操作:
執行以下命令,重新載入所有網卡配置。
sudo nmcli c reload執行以下命令,啟用網卡。
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系統中,預設沒有安裝防火牆,可以通過清空防火牆策略,刪除相關屏蔽規則。具體操作如下所示:
清空策略前,請務必備份防火牆策略。
依次執行以下命令,備份防火牆策略。
touch [$Iptables] sudo iptables-save > [$Iptables]說明[$Iptables]為防火牆策略的備份檔案地址。執行以下命令,清空防火牆策略。
sudo iptables -F