• 获取实例元数据时提示500错误

获取实例元数据时提示500错误

更新时间:2018-10-09 09:55

问题描述

在Linux系统中使用如下命令可以获取当前实例的相关信息,具体方法请参考实例元数据
curl http://100.100.100.200/latest/meta-data
但在系统内部使用该命令获取信息时,提示500错误。

问题原因

HTTP协议的500错误是应用层反馈的信息,所以网络是连通的。根据规则只有实例eth0网卡发送的请求,才会返回正确的数据。查看该实例有绑定弹性网卡,默认路由通过eth1网卡出去,导致元数据服务端不认,返回500错误。

解决方案

本文提供以下两种解决方案。
  • 执行如下命令,直接指定eth0网卡发送curl请求。
    curl --interface eth0  100.100.100.200/latest/meta-data 
    
    系统返回类似如下,请求成功。
  • 执行如下命令,添加路由,指定到元数据服务器地址的路由从eth0网卡出去。
    route add -host 100.100.100.200 dev eth0 gw 192.168.1.253
    

适用于

  • 云服务器 ECS