alibabacloud-network-reachability-analysis

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese

NIS Network Reachability Analysis / NIS 网络可达性分析

NIS 网络可达性分析

Language / 语言: Respond in the same language the user uses. If the user speaks Chinese, use the Chinese (zh-CN) prompts below. If the user speaks English, use the English (en) prompts below.
Guides an agent through interactive network reachability analysis using Alibaba Cloud NIS. Covers forward/reverse path analysis, topology visualization (Mermaid), and monitoring diagnostics for resources along the path.
Architecture:
NIS (CreateAndAnalyzeNetworkPath + GetNetworkReachableAnalysis) + CloudMonitor (DescribeMetricData)
⚠️ CRITICAL / 关键: READ-ONLY OPERATIONS ONLY
This skill performs read-only network diagnostics. DO NOT create, modify, or delete any cloud resources.
本技能仅执行只读网络诊断操作。严禁创建、修改或删除任何云资源。
Allowed:
CreateAndAnalyzeNetworkPath
,
GetNetworkReachableAnalysis
,
DescribeMetricData
,
Describe*
APIs
允许:分析任务创建与查询、监控数据查询、Describe* 类查询 API
Forbidden:
Create*
(except
CreateAndAnalyzeNetworkPath
),
Modify*
,
Delete*
,
Start*
,
Stop*
,
Run*
APIs
禁止:创建类 API(除
CreateAndAnalyzeNetworkPath
外)、修改、删除、启停、执行类 API
语言: 以用户使用的语言回复。 如果用户使用中文,请使用下方的中文提示。 如果用户使用英文,请使用下方的英文提示。
指导Agent使用阿里云NIS执行交互式网络可达性分析,覆盖正向/反向路径分析、拓扑可视化(Mermaid)以及路径沿途资源的监控诊断。
架构:
NIS (CreateAndAnalyzeNetworkPath + GetNetworkReachableAnalysis) + CloudMonitor (DescribeMetricData)
⚠️ 关键: 仅支持只读操作
本技能仅执行只读网络诊断操作。严禁创建、修改或删除任何云资源。
允许调用的API:
CreateAndAnalyzeNetworkPath
GetNetworkReachableAnalysis
DescribeMetricData
、所有
Describe*
类查询API
禁止调用的API:除
CreateAndAnalyzeNetworkPath
外的所有
Create*
类、
Modify*
类、
Delete*
类、
Start*
类、
Stop*
类、
Run*
类API

Installation

安装

Pre-check: Aliyun CLI >= 3.3.1 required Run
aliyun version
to verify >= 3.3.1. If not installed or version too low, see references/cli-installation-guide.md for installation instructions. Then [MUST] run
aliyun configure set --auto-plugin-install true
to enable automatic plugin installation.
bash
aliyun version
aliyun configure set --auto-plugin-install true
前置检查:要求 Aliyun CLI 版本 >= 3.3.1 运行
aliyun version
确认版本不低于3.3.1。如果未安装或版本过低,参考references/cli-installation-guide.md中的安装说明操作。之后必须运行
aliyun configure set --auto-plugin-install true
开启插件自动安装功能。
bash
aliyun version
aliyun configure set --auto-plugin-install true

Authentication

鉴权

Pre-check: Alibaba Cloud Credentials Required
Security Rules:
  • NEVER read, echo, or print AK/SK values (e.g.,
    echo $ALIBABA_CLOUD_ACCESS_KEY_ID
    is FORBIDDEN)
  • NEVER ask the user to input AK/SK directly in the conversation or command line
  • NEVER use
    aliyun configure set
    with literal credential values
  • ONLY use
    aliyun configure list
    to check credential status
bash
aliyun configure list --user-agent AlibabaCloud-Agent-Skills
Check the output for a valid profile (AK, STS, or OAuth identity).
If no valid profile exists, STOP here.
  1. Obtain credentials from Alibaba Cloud Console
  2. Configure credentials outside of this session (via
    aliyun configure
    in terminal or environment variables in shell profile)
  3. Return and re-run after
    aliyun configure list
    shows a valid profile
前置检查:需要阿里云凭证
安全规则:
  • 严禁读取、回显或打印AK/SK的值(例如禁止执行
    echo $ALIBABA_CLOUD_ACCESS_KEY_ID
  • 严禁要求用户在对话或命令行中直接输入AK/SK
  • 严禁使用字面量凭证值执行
    aliyun configure set
    命令
  • 仅可使用
    aliyun configure list
    检查凭证状态
bash
undefined
aliyun configure list --user-agent AlibabaCloud-Agent-Skills
检查输出中是否存在有效配置(AK、STS或OAuth身份)。

**如果不存在有效配置,请停止操作。**
1. 从[阿里云控制台](https://ram.console.aliyun.com/manage/ak)获取凭证
2. **在当前会话外**配置凭证(通过终端执行`aliyun configure`或在shell配置文件中设置环境变量)
3. 待`aliyun configure list`显示有效配置后,返回重新执行

RAM Permissions

RAM 权限

See references/ram-policies.md for the full RAM policy.
Required actions:
nis:CreateAndAnalyzeNetworkPath
,
nis:GetNetworkReachableAnalysis
,
cms:DescribeMetricData
.
参考references/ram-policies.md查看完整RAM权限策略。
所需操作权限:
nis:CreateAndAnalyzeNetworkPath
nis:GetNetworkReachableAnalysis
cms:DescribeMetricData

Parameter Confirmation

参数确认

IMPORTANT: Parameter Confirmation — Before executing any command or API call, ALL user-customizable parameters (e.g., RegionId, instance IDs, IP addresses, protocol, ports, resource types, etc.) MUST be confirmed with the user. Do NOT assume or use default values without explicit user approval.
Collect the following parameters interactively:
ParameterRequiredDescription (EN)说明 (ZH)Default
RegionIdYesRegion of the analysis task分析任务所在地域
SourceTypeYes
ecs
,
vsw
,
internetIp
,
vpn
,
vbr
源端类型
SourceIdYesSource resource ID (or public IP if
internetIp
)
源资源 ID(公网 IP 类型直接填 IP)
SourceIpAddressConditionalOn-Premise IP, required for
vpn
/
vbr
云下私网 IP,
vpn
/
vbr
必填
TargetTypeYes
ecs
,
vsw
,
internetIp
,
vpn
,
vbr
,
clb
目的端类型
TargetIdYesTarget resource ID (or public IP if
internetIp
)
目的资源 ID(公网 IP 类型直接填 IP)
TargetIpAddressConditionalOn-Premise IP, required for
vpn
/
vbr
云下私网 IP,
vpn
/
vbr
必填
ProtocolYes
tcp
,
udp
, or
icmp
协议类型
TargetPortConditionalRequired for
tcp
/
udp
tcp
/
udp
时必填
SourcePortOptionalSource port源端口
重要:参数确认 — 执行任何命令或API调用前,所有用户可自定义参数(例如RegionId、实例ID、IP地址、协议、端口、资源类型等)必须与用户确认。未经用户明确许可,不得假设或使用默认值。
交互式收集以下参数:
参数必填说明默认值
RegionId分析任务所在地域
SourceType源端类型,可选值:
ecs
vsw
internetIp
vpn
vbr
SourceId源资源ID(若为
internetIp
类型直接填写公网IP)
SourceIpAddress条件必填云下私网IP,
vpn
/
vbr
类型时必填
TargetType目的端类型,可选值:
ecs
vsw
internetIp
vpn
vbr
clb
TargetId目的资源ID(若为
internetIp
类型直接填写公网IP)
TargetIpAddress条件必填云下私网IP,
vpn
/
vbr
类型时必填
Protocol协议类型,可选值:
tcp
udp
icmp
TargetPort条件必填
tcp
/
udp
协议时必填
SourcePort可选源端口

Interactive Collection Logic / 交互收集逻辑

交互收集逻辑

Use the prompts matching the user's language:
Step 1 — Ask resource types / 询问资源类型
ENZH
"What is the source resource type? (ecs / vsw / internetIp / vpn / vbr)""请问源端资源类型是什么?(ecs / vsw / internetIp / vpn / vbr)"
"What is the target resource type? (ecs / vsw / internetIp / vpn / vbr / clb)""请问目的端资源类型是什么?(ecs / vsw / internetIp / vpn / vbr / clb)"
Step 2 — Type-specific prompts / 按类型提示
ConditionEN PromptZH Prompt
internetIp
"For public IP analysis, please provide the public IP address directly as the ID.""分析公网路径时,请直接提供公网 IP 地址作为 ID 传入。"
vpn
/
vbr
"For hybrid cloud analysis, besides the resource ID, please also provide the On-Premise IP (private IP on your side).""连接云下环境时,除了资源 ID,请务必提供您的云下私网 IP (On-Premise IP) 以确保分析准确。"
Step 3 — Protocol & ports / 协议和端口
ENZH
"What protocol? (tcp / udp / icmp) And what is the target port?""请问使用什么协议?(tcp / udp / icmp)目的端口是多少?"
使用与用户语言匹配的提示:
步骤1 — 询问资源类型
提示内容
"请问源端资源类型是什么?(ecs / vsw / internetIp / vpn / vbr)"
"请问目的端资源类型是什么?(ecs / vsw / internetIp / vpn / vbr / clb)"
步骤2 — 按类型提示
条件提示内容
类型为
internetIp
"分析公网路径时,请直接提供公网IP地址作为ID传入。"
类型为
vpn
/
vbr
"连接云下环境时,除了资源ID,请务必提供您的云下私网IP (On-Premise IP) 以确保分析准确。"
步骤3 — 协议和端口
提示内容
"请问使用什么协议?(tcp / udp / icmp)目的端口是多少?"

Core Workflow

核心工作流

Step 1: Forward Path Analysis / 正向路径分析

步骤1: 正向路径分析

bash
aliyun nis create-and-analyze-network-path \
  --source-id <SourceId> \
  --source-type <SourceType> \
  --target-id <TargetId> \
  --target-type <TargetType> \
  --protocol <Protocol> \
  --target-port <TargetPort> \
  --source-ip-address <SourceIpAddress> \
  --target-ip-address <TargetIpAddress> \
  --region <RegionId> \
  --user-agent AlibabaCloud-Agent-Skills
Omit
--source-ip-address
/
--target-ip-address
if SourceType/TargetType is not
vpn
or
vbr
. Omit
--target-port
if Protocol is
icmp
.
Record the returned
NetworkReachableAnalysisId
.
⚠️ MANDATORY / 强制: ALWAYS perform reverse path analysis after forward analysis completes.
MUST execute Step 3 (Reverse Path Analysis) immediately after Step 2 finishes. Do NOT skip or omit reverse path check.
必须在正向分析完成后立即执行 Step 3(反向路径分析)。严禁跳过或省略反向路径检查。
bash
aliyun nis create-and-analyze-network-path \
  --source-id <SourceId> \
  --source-type <SourceType> \
  --target-id <TargetId> \
  --target-type <TargetType> \
  --protocol <Protocol> \
  --target-port <TargetPort> \
  --source-ip-address <SourceIpAddress> \
  --target-ip-address <TargetIpAddress> \
  --region <RegionId> \
  --user-agent AlibabaCloud-Agent-Skills
若SourceType/TargetType不是
vpn
vbr
,可省略
--source-ip-address
/
--target-ip-address
参数。 若协议为
icmp
,可省略
--target-port
参数。
记录返回的
NetworkReachableAnalysisId
⚠️ 强制要求: 正向分析完成后必须执行反向路径分析。
必须在正向分析完成后立即执行步骤3(反向路径分析),严禁跳过或省略反向路径检查。

Step 2: Poll for Forward Result / 轮询正向结果

步骤2: 轮询正向分析结果

bash
aliyun nis get-network-reachable-analysis \
  --network-reachable-analysis-id <ForwardAnalysisId> \
  --region <RegionId> \
  --user-agent AlibabaCloud-Agent-Skills
Repeat until
NetworkReachableAnalysisStatus
is
finish
. Extract
Reachable
,
NetworkReachableAnalysisResult
.
bash
aliyun nis get-network-reachable-analysis \
  --network-reachable-analysis-id <ForwardAnalysisId> \
  --region <RegionId> \
  --user-agent AlibabaCloud-Agent-Skills
重复执行直到
NetworkReachableAnalysisStatus
finish
,提取
Reachable
NetworkReachableAnalysisResult
字段。

Step 3: Reverse Path Analysis / 反向路径分析

步骤3: 反向路径分析

Swap source and target / 交换源和目的:
  • Forward
    SourceId/Type
    → Reverse
    TargetId/Type
  • Forward
    TargetId/Type
    → Reverse
    SourceId/Type
  • Forward
    SourceIpAddress
    → Reverse
    TargetIpAddress
  • Forward
    TargetIpAddress
    → Reverse
    SourceIpAddress
Port handling / 端口处理:
  • Reverse
    --source-port
    = Forward
    TargetPort
    (server listening port / 服务端监听端口)
  • Reverse
    --target-port
    = Random ephemeral port in range 49152 ~ 65535 (client ephemeral port / 客户端随机端口)
Since the client initiates the connection with a dynamically assigned ephemeral port, the reverse path (server → client) should use a random port in the ephemeral range (49152-65535) as the target port to simulate real return traffic.
由于客户端发起连接时使用动态分配的临时端口,反向路径(服务端→客户端)的目的端口应使用临时端口范围(49152-65535)内的随机值来模拟真实回程流量。
bash
aliyun nis create-and-analyze-network-path \
  --source-id <OriginalTargetId> \
  --source-type <OriginalTargetType> \
  --target-id <OriginalSourceId> \
  --target-type <OriginalSourceType> \
  --protocol <Protocol> \
  --source-port <OriginalTargetPort> \
  --target-port <RandomPort_49152_to_65535> \
  --source-ip-address <OriginalTargetIpAddress> \
  --target-ip-address <OriginalSourceIpAddress> \
  --region <RegionId> \
  --user-agent AlibabaCloud-Agent-Skills
Omit
--source-ip-address
/
--target-ip-address
if SourceType/TargetType is not
vpn
or
vbr
. 若源/目的类型不是
vpn
vbr
,可省略
--source-ip-address
/
--target-ip-address
交换源和目的参数:
  • 正向
    SourceId/Type
    → 反向
    TargetId/Type
  • 正向
    TargetId/Type
    → 反向
    SourceId/Type
  • 正向
    SourceIpAddress
    → 反向
    TargetIpAddress
  • 正向
    TargetIpAddress
    → 反向
    SourceIpAddress
端口处理:
  • 反向
    --source-port
    = 正向
    TargetPort
    (服务端监听端口)
  • 反向
    --target-port
    = 49152 ~ 65535范围内的随机临时端口(客户端临时端口)
由于客户端发起连接时使用动态分配的临时端口,反向路径(服务端→客户端)的目的端口应使用临时端口范围(49152-65535)内的随机值来模拟真实回程流量。
bash
aliyun nis create-and-analyze-network-path \
  --source-id <OriginalTargetId> \
  --source-type <OriginalTargetType> \
  --target-id <OriginalSourceId> \
  --target-type <OriginalSourceType> \
  --protocol <Protocol> \
  --source-port <OriginalTargetPort> \
  --target-port <RandomPort_49152_to_65535> \
  --source-ip-address <OriginalTargetIpAddress> \
  --target-ip-address <OriginalSourceIpAddress> \
  --region <RegionId> \
  --user-agent AlibabaCloud-Agent-Skills
若源/目的类型不是
vpn
vbr
,可省略
--source-ip-address
/
--target-ip-address
参数。

Step 4: Poll for Reverse Result / 轮询反向结果

步骤4: 轮询反向分析结果

Same as Step 2, using the reverse
NetworkReachableAnalysisId
.
与步骤2一致,使用反向分析返回的
NetworkReachableAnalysisId
执行查询。

Step 5: Result Interpretation / 结果解读

步骤5: 结果解读

CRITICAL / 关键: Always use
topologyData.positive
from the actively initiated analysis task. IGNORE
topologyData.reverse
in any response — it is unreliable.
始终使用主动发起的分析任务返回的
topologyData.positive
忽略任何响应中的
topologyData.reverse
——它不可靠。
For each direction (forward/reverse) / 对正向和反向分别:
  1. Check
    Reachable
    field. If
    true
    , path is connected. / 检查
    Reachable
    字段,
    true
    表示可达。
  2. If
    false
    , analyze from
    NetworkReachableAnalysisResult
    : / 若为
    false
    ,分析以下字段定位阻断点:
    • errorCode
      — root cause code / 根因错误码
    • securityGroupData
      — security group rules blocking traffic / 安全组拦截规则
    • routeData
      — route table entries causing drops / 路由表丢包条目
关键: 始终使用主动发起的分析任务返回的
topologyData.positive
字段,忽略任何响应中的
topologyData.reverse
字段——该字段不可靠。
对正向和反向分析结果分别处理:
  1. 检查
    Reachable
    字段,
    true
    表示路径可达。
  2. 若为
    false
    ,从
    NetworkReachableAnalysisResult
    中分析定位阻断点:
    • errorCode
      — 根因错误码
    • securityGroupData
      — 拦截流量的安全组规则
    • routeData
      — 导致丢包的路由表条目

Step 6: Topology Visualization / 拓扑可视化 (Mermaid)

步骤6: 拓扑可视化 (Mermaid)

Generate a Mermaid diagram from
topologyData.positive
:
graph LR
  • Nodes: Extract
    nodeType
    and
    bizInsId
    from
    nodeList
  • Links: Build directional edges from
    linkList
Example:
mermaid
graph LR
    ECS_i-src["ECS: i-bp1xxx"] --> VRouter_vrt-1["VRouter: vrt-xxx"]
    VRouter_vrt-1 --> VSW_vsw-1["VSW: vsw-xxx"]
    VSW_vsw-1 --> ENI_eni-1["ENI: eni-xxx"]
    ENI_eni-1 --> ECS_i-dst["ECS: i-bp2xxx"]
topologyData.positive
生成Mermaid图:
graph LR
  • 节点: 从
    nodeList
    中提取
    nodeType
    bizInsId
  • 连线: 从
    linkList
    构建有向边
示例:
mermaid
graph LR
    ECS_i-src["ECS: i-bp1xxx"] --> VRouter_vrt-1["VRouter: vrt-xxx"]
    VRouter_vrt-1 --> VSW_vsw-1["VSW: vsw-xxx"]
    VSW_vsw-1 --> ENI_eni-1["ENI: eni-xxx"]
    ENI_eni-1 --> ECS_i-dst["ECS: i-bp2xxx"]

Step 7: Resource Monitoring Diagnostics / 途经资源监控诊断

步骤7: 途经资源监控诊断

For resource IDs found in
topologyData
, if they match the prefixes below, query monitoring data for the last 1 hour: 对
topologyData
中途经的资源 ID,若匹配以下前缀,查询最近 1 小时监控数据:
PrefixNamespaceMetrics
ecs-
acs_ecs_dashboard
CPUUtilization
,
ConnectionUtilization
,
DiskReadWriteIOPSUtilization
,
BurstCredit
,
DiskIOQueueSize
eip-
acs_vpc_eip
out_ratelimit_drop_speed
,
net_out.rate_percentage
,
net_rxPkgs.rate
nat-
acs_nat_gateway
ErrorPortAllocationCount
,
SessionLimitDropConnection
,
SessionActiveConnectionWaterLever
,
SessionNewConnectionWaterLever
,
BWRateOutToOutside
,
DropTotalPps
clb-
acs_slb_dashboard
UnhealthyServerCount
,
UpstreamCode5xx
,
InstanceQpsUtilization
,
InstanceMaxConnectionUtilization
,
UpstreamRt
,
StatusCode4xx
vbr-
acs_physical_connection
VbrHealthyCheckLossPercent
,
VbrHealthyCheckLatency
,
PkgsRateLimitDropOutFromVpcToVbr
,
RateOutFromVpcToIDC
Query command (CMS uses PascalCase API-style, not plugin mode):
bash
aliyun cms DescribeMetricData \
  --Namespace <Namespace> \
  --MetricName <MetricName> \
  --Dimensions '[{"instanceId":"<ResourceId>"}]' \
  --StartTime <1HourAgoTimestamp> \
  --EndTime <NowTimestamp> \
  --Period 60 \
  --user-agent AlibabaCloud-Agent-Skills
Rate limit: 10 calls/second per account. Batch queries across multiple metrics should be paced accordingly.
topologyData
中途经的资源ID,若匹配以下前缀,查询最近1小时的监控数据:
前缀命名空间监控指标
ecs-
acs_ecs_dashboard
CPUUtilization
,
ConnectionUtilization
,
DiskReadWriteIOPSUtilization
,
BurstCredit
,
DiskIOQueueSize
eip-
acs_vpc_eip
out_ratelimit_drop_speed
,
net_out.rate_percentage
,
net_rxPkgs.rate
nat-
acs_nat_gateway
ErrorPortAllocationCount
,
SessionLimitDropConnection
,
SessionActiveConnectionWaterLever
,
SessionNewConnectionWaterLever
,
BWRateOutToOutside
,
DropTotalPps
clb-
acs_slb_dashboard
UnhealthyServerCount
,
UpstreamCode5xx
,
InstanceQpsUtilization
,
InstanceMaxConnectionUtilization
,
UpstreamRt
,
StatusCode4xx
vbr-
acs_physical_connection
VbrHealthyCheckLossPercent
,
VbrHealthyCheckLatency
,
PkgsRateLimitDropOutFromVpcToVbr
,
RateOutFromVpcToIDC
查询命令(CMS使用大驼峰API风格,非插件模式):
bash
aliyun cms DescribeMetricData \
  --Namespace <Namespace> \
  --MetricName <MetricName> \
  --Dimensions '[{"instanceId":"<ResourceId>"}]' \
  --StartTime <1HourAgoTimestamp> \
  --EndTime <NowTimestamp> \
  --Period 60 \
  --user-agent AlibabaCloud-Agent-Skills
限流规则: 每个账号每秒最多调用10次,多指标批量查询需相应控制调用频率。

Cleanup / 清理

清理

NIS reachability analysis is read-only — no cloud resources are created or modified. No cleanup is required. NIS 可达性分析为只读操作——不会创建或修改任何云资源,无需清理。
NIS可达性分析为只读操作——不会创建或修改任何云资源,无需清理。

Constraints / 使用限制

使用限制

  1. IPv4 only / 仅支持 IPv4 — Only IPv4 path analysis is supported.
  2. Unidirectional / 单向分析 — Each analysis is one-way; reverse path requires a separate task with swapped source/target.
  3. CMS quota / CMS 配额
    DescribeMetricData
    shares 1,000,000 free calls/month with other CMS query APIs.
  4. CMS rate limit / CMS 频控 — 10 calls/second per account (including RAM users).
  1. 仅支持IPv4 — 仅支持IPv4路径分析。
  2. 单向分析 — 每次分析仅覆盖单向路径,反向路径需要交换源目参数单独创建任务。
  3. CMS配额
    DescribeMetricData
    与其他CMS查询API共享每月100万次免费调用额度。
  4. CMS频控 — 每个账号(含RAM用户)每秒最多调用10次。

Best Practices / 最佳实践

最佳实践

  1. Always perform both forward and reverse analysis to confirm bidirectional connectivity. / 始终执行正向+反向分析以确认双向连通性。
  2. When path is unreachable, check security group rules and route tables first. / 路径不可达时,优先检查安全组规则和路由表。
  3. For
    vpn
    /
    vbr
    scenarios, always provide On-Premise IP. /
    vpn
    /
    vbr
    场景务必提供云下私网 IP。
  4. Use Mermaid topology diagrams to visualize traffic paths. / 使用 Mermaid 拓扑图帮助用户可视化流量路径。
  5. Query monitoring data only for resources on the actual path. / 仅查询实际路径上的资源监控数据以减少 API 调用。
  6. Present monitoring anomalies alongside reachability results. / 将监控异常与可达性结果一并呈现,提供完整诊断。
  1. 始终执行正向+反向分析以确认双向连通性。
  2. 路径不可达时,优先检查安全组规则和路由表。
  3. vpn
    /
    vbr
    场景务必提供云下私网IP。
  4. 使用Mermaid拓扑图帮助用户可视化流量路径。
  5. 仅查询实际路径上的资源监控数据以减少API调用。
  6. 将监控异常与可达性结果一并呈现,提供完整诊断。

References / 参考文件

参考文件

ReferenceContents (EN)内容 (ZH)
references/ram-policies.mdRequired RAM permissions所需 RAM 权限策略
references/verification-method.mdStep-by-step verification commands逐步验证命令
references/acceptance-criteria.mdCorrect/incorrect CLI patterns正确/错误 CLI 模式对照
references/cli-installation-guide.mdAliyun CLI installation guide阿里云 CLI 安装指南
参考链接内容
references/ram-policies.md所需RAM权限策略
references/verification-method.md逐步验证命令
references/acceptance-criteria.md正确/错误CLI模式对照
references/cli-installation-guide.md阿里云CLI安装指南