文档

Linux实例通过curl命令无法访问Metaserver,提示"curl: (7) Failed to connect to 100.100.XX.XX port 80: Connection timed out"错误怎么办?

更新时间:

本文介绍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
  • 本页导读 (1)
文档反馈