阿里云ECS通过内网地址获取当前实例metadata数据
适用于阿里云内网 ECS,通过命令或 URL 获取当前实例的 ECS InstanceId。这是阿里云官方、稳定、免鉴权的做法,生产脚本里可以放心用。
1. 原理说明
阿里云在每台 ECS 内部都内置了 实例元数据服务(Metadata Service),通过一个仅内网可访问的保留 IP 提供实例自身信息:
100.100.100.200
这个地址只在 ECS 内部可访问,外部访问不到,也不需要 AK / Token(除非你启用了 IMDSv2 强制)。
2. 最常用方式(直接获取 ECS InstanceId)
2.1 curl
1 | curl -s http://100.100.100.200/latest/meta-data/instance-id |
输出示例:
1 | i-bp1e3xxxxxxabcdef |
这是你在 阿里云 控制台看到的 实例 ID,一模一样。
2.2 wget
1 | wget -q -O - http://100.100.100.200/latest/meta-data/instance-id |
3. 进阶:IMDSv2(更安全)
如果你的 ECS 开启了 IMDSv2(Metadata v2),直接 curl 会 401,需要先拿 Token。

3.1 获取 Token
1 | TOKEN=$(curl -s -X PUT "http://100.100.100.200/latest/api/token" \ |
3.2 使用 Token 获取 InstanceId
1 | curl -s -H "X-aliyun-ecs-metadata-token: $TOKEN" \ |
建议:新脚本直接用 IMDSv2 写法,未来兼容性最好。
4. 常见相关元数据接口清册
1 | # 实例ID |
示例:
1 | curl -s http://100.100.100.200/latest/meta-data/region-id |