云服务器与安全组
云主机的资源组成与选择
一台 Linux 云主机由计算规格、系统镜像、网卡和磁盘组合而成。账号负责持有资源,地域决定资源位置,VPC 提供私有网络,公网入口按需要单独配置。
以阿里云 ECS 为例,资源关系可以拆成下面的结构。连线表示归属或关联,不表示网络报文依次经过这些节点。
云账号
├─ RAM 用户 / 角色:谁能创建、修改、删除资源
└─ 地域 Region
├─ VPC:私有地址空间与路由
│ ├─ 可用区 A 的交换机 vSwitch
│ │ └─ 云主机实例
│ │ ├─ vCPU、内存:运行操作系统与进程
│ │ ├─ 弹性网卡 ENI:私网 IP,关联安全组
│ │ ├─ 系统盘:由镜像初始化操作系统
│ │ └─ 数据盘:按业务需要挂载
│ └─ 可用区 B 的交换机:可放置另一台实例
├─ EIP:可独立持有并绑定到支持的资源
├─ 负载均衡 / NAT 网关:按访问需求接入 VPC
└─ 快照 / 自定义镜像:用于数据恢复与环境复制普通虚拟机实例运行自己的来宾内核。Docker 容器通常使用所在 Linux 主机的内核;把应用放进容器后,主机的补丁、磁盘、网络和账号仍需维护。云平台承担底层基础设施运维,应用部署、系统配置及数据保护则由使用者根据所选服务负责。
地域、可用区与私有网络
地域是资源所在的地理区域。选择时同时考虑访问者的位置、数据库与对象存储的位置、业务合规要求和所需产品是否可用。应用与数据库跨地域通信,会把远距离网络延迟带入每次依赖调用;迁移也需要重新安排数据复制、访问地址和流量切换。
可用区用于隔离部分机房级故障。阿里云 VPC 是地域级资源,交换机是可用区级资源;同一 VPC 可以包含不同可用区的交换机。两台实例分布在两个可用区,只解决了部署位置的分散,应用仍需有流量切换、数据复制和故障处理能力。VPC 与交换机
VPC 的 CIDR 定义可分配的私有地址范围。下面是一组地址规划示例:
VPC 10.42.0.0/16
├─ 可用区 A 子网 10.42.10.0/24
└─ 可用区 B 子网 10.42.20.0/24
/16:IPv4 前 16 位作为网络前缀
/24:IPv4 前 24 位作为网络前缀
/32:仅一个 IPv4 地址,常用于安全组中的来源限制这些地址只用于说明结构,使用前要与公司网络、VPN、其他 VPC 和容器地址池比对。两处网络都使用 10.42.10.0/24 时,路由设备无法仅凭目的地址区分两处相同网段,后续互联会遇到冲突。子网还会保留平台使用的地址,不能把一个 /24 的 256 个地址全部当作可分配给实例的容量。
路由表回答“目的网段应交给哪个下一跳”;安全组回答“这类连接是否允许”。增加路由不会创建访问授权,放行端口也不会建立缺失的路由。跨 VPC 或接入本地机房时,需要同时核对去程、回程和两端地址规划。
计算规格与镜像一起选
规格选择先看工作负载。Java 服务通常同时消耗堆内存、堆外内存和系统缓存;编译任务可能短时占满 CPU;网关可能先碰到连接数或包转发能力。只比较“几核几 G”容易漏掉实际限制。
| 选择项 | 对部署的影响 | 需要核对的内容 |
|---|---|---|
| vCPU、内存与规格族 | 决定计算与内存容量,也可能限制网卡、磁盘性能 | 常态与峰值负载,实例级带宽、PPS、连接数和存储上限 |
| x86-64 或 ARM64 | 影响系统镜像、运行时、JNI 库及容器镜像兼容性 | 全部运行依赖是否支持目标架构 |
| 持续性能或突发性能 | 短时可用能力与长期可用能力可能不同 | CPU 积分或突发规则,以及耗尽后的性能 |
| 普通实例或抢占式实例 | 抢占式资源可能被平台回收 | 任务能否重试,状态是否外置,回收后如何补实例 |
| 公共、自定义或市场镜像 | 决定初始系统、预装软件、账号及额外许可 | 发行版支持、来源、预装服务、收费与更新方式 |
同一规格族中的大小和不同规格族之间的能力都可能变化,完整参数查实例规格族。选择 ARM64 时,还要检查 Docker 镜像是否提供对应平台;Java 字节码可移植不代表所用本地库也可移植。
首次学习可以采用官方 Ubuntu 24.04 LTS 镜像,选择能容纳系统和实验程序的普通规格。生产规格由压测和容量预算决定,不直接照搬学习配置。自定义镜像适合重复部署,但制作前应清理个人密钥、临时凭据和业务数据,并确认新实例能独立初始化身份。
云账号权限与系统权限
云控制台登录身份、Linux 登录用户、应用服务账号分别在不同位置生效:
| 身份 | 常见操作 | 凭据所在位置 |
|---|---|---|
| RAM 用户或受委派角色 | 创建实例、改安全组、挂盘、查看账单 | 云身份系统或企业身份系统 |
Linux 用户,如 ecs-user | SSH 登录、读取文件、按授权执行 sudo | 实例的用户与 SSH 配置 |
| 应用服务账号 | 运行进程、读取应用配置与数据 | Linux 服务配置或容器配置 |
| 实例 RAM 角色 | 应用调用被授权的云服务 API | 通过实例身份取得短期凭据 |
持有 SSH 私钥的人未必能修改安全组;拥有云端远程执行权限的人,即使没有 SSH 私钥,也可能有能力在系统内执行高权限命令。人员权限需要同时覆盖这两种入口。
日常管理使用受限身份,启用 MFA;发布程序只授予需要的资源和动作,不给它账号管理员权限。应用访问对象存储等服务时,优先使用实例角色和自动轮换的临时凭据,避免把长期 AccessKey 写进镜像、脚本或仓库。云账号与凭据保护
创建实例并建立管理连接
下面采用阿里云 ECS 控制台、官方 Ubuntu 24.04 LTS 镜像和本地 Ubuntu Bash。Windows 可以在 WSL 中执行这些客户端命令;不要把 Bash 的变量和权限命令直接粘贴到 PowerShell。
本地终端需要 OpenSSH 客户端和 curl。先执行 ssh -V 与 curl --version;若缺少工具,由本地管理员通过已配置的软件仓库安装:
sudo apt-get update
sudo apt-get install --yes openssh-client curl操作者需要拥有创建本次实例及其网络、密钥对的权限,并获得相应费用授权。只使用独立学习资源或明确允许修改的测试资源,不把现有生产安全组当作实验对象。云端步骤会创建计费资源,下单前检查全部勾选项。
先准备网络、密钥与费用计划
- 在云账号中确定资源组,为本次资源使用容易识别的名称及标签,例如
purpose=cloud-learning。记录操作者、使用目的和清理安排。 - 在 VPC 控制台选定地域,创建独立 VPC 和一个交换机。只有确认不与已有网络重叠时,才采用前面的示例网段。记下 VPC ID、交换机 ID 和可用区。创建 VPC 与交换机
- 在同一地域创建专用 SSH 密钥对。可以在控制台自动创建并下载私钥,也可以导入已有公钥。私钥留在本地受保护目录,不上传到实例、不发到聊天中;记下密钥对名称。实例登录凭证管理
- 创建专用安全组,初始只允许已核实的操作者来源访问 TCP 22。检查向导是否预置了面向所有来源的 22、3389 或其他规则,删除本次不需要的预置规则。使用 Ubuntu 不需要开放 RDP 3389。默认安全组
- 查看实例、系统盘、公网流量或带宽以及选装服务的费用。短时学习可选择适合的按量模式,并设置费用提醒;预付费、试用额度和资源包各有适用条件,以下单页实际规则为准。
“操作者来源”指 SSH 流量到达云端时使用的源地址。家庭路由器后的 192.168.x.x 通常不是这个地址;公司出口 NAT、VPN 和跳板机还可能改变来源。可向网络管理员确认,或使用经批准的出口地址查询方式。控制台识别的“我的 IP”来自浏览器访问路径,浏览器走代理而 SSH 直连时,两者可能不同。
IPv4 单地址写成“实际出口地址 /32”;IPv6 单地址使用 /128。不要为了省去确认来源,把管理端口开放给 0.0.0.0/0 或 ::/0。
创建时逐项核对关联对象
在 ECS 控制台使用自定义创建,按以下顺序填写。完整按钮与字段说明见自定义创建实例。
| 字段 | 学习实例的选择 | 提交前核对 |
|---|---|---|
| 地域与可用区 | 前面已规划的位置 | 与交换机、所需规格匹配 |
| 网络 | 已创建的 VPC 和交换机 | 用 ID 核对,避免同名资源混淆 |
| 镜像与规格 | 官方 Ubuntu 24.04 LTS、匹配架构的普通规格 | 没有误选第三方收费镜像或抢占式回收策略 |
| 系统盘 | 镜像允许的容量,满足软件与日志需要 | 类型、容量、加密与随实例释放属性 |
| 公网 | 本地直连实验需要可用公网入口 | 若已有 VPN/堡垒机路径,可不为实例分配公网 IP |
| 安全组 | 前面创建的专用组 | 实际入方向规则和出方向策略 |
| 登录凭证 | 密钥对,显式选择普通用户 ecs-user | 选中的密钥对与本地私钥对应 |
| 附加资源 | 不需要的暂不创建 | 数据盘、快照、监控等是否另行计费 |
确认订单后等待实例进入 Running。此时计算资源已经启动,操作系统初始化和 SSH 服务准备可能仍在进行。把实例 ID、私网 IP、公网入口、系统盘 ID 和登录用户名记在自己的资源记录中;不要只保存一张购买截图。
创建失败先读控制台错误:余额或权限不足、地域配额、可用区库存、规格与镜像不兼容对应不同处理。重试前检查是否已有实例或关联资源创建成功,避免重复下单。
核对主机指纹后登录
SSH 登录涉及两套密钥:客户端私钥用于证明用户身份,服务器主机密钥用于识别连接到的服务器。首次出现主机指纹提示时,要先与可信管理通道取得的指纹比较。
在经过认证的 ECS 控制台中选中目标实例 ID,通过云助手的远程命令功能执行下面的只读命令。云助手需要状态正常,并且操作者拥有对该实例执行命令的权限;以系统管理员身份执行,但只读取 .pub 公钥文件。云助手状态检查
for key in /etc/ssh/ssh_host_*_key.pub; do
test -f "$key" && ssh-keygen -lf "$key" -E sha256
done输出包含算法与 SHA256:... 指纹,不包含私钥。把客户端随后显示的算法和完整指纹逐字比对。ssh-keygen 参数
云助手不可用时,由管理员通过已认证的 VNC 控制台进入系统读取;VNC 通道和系统登录各有认证要求,不能假设 SSH 私钥可直接替代系统密码。没有可信指纹来源时先处理管理通道,不跳过主机身份检查。
在本地 Bash 中设置变量。SERVER_IP 替换成实例详情中的实际公网 IPv4 地址,SSH_KEY 替换成下载私钥的绝对路径,用户名与创建时保持一致。
SERVER_IP='你的实例公网IPv4地址'
SSH_USER='ecs-user'
SSH_KEY='/本地私钥的绝对路径/cloud-learning.pem'
chmod 600 "$SSH_KEY"
ssh -F /dev/null -o IdentitiesOnly=yes -o ConnectTimeout=10 \
-o StrictHostKeyChecking=ask -i "$SSH_KEY" \
"$SSH_USER@$SERVER_IP"-F /dev/null 使这次直连检查不加载本地 SSH 配置中的跳板、代理和连接复用;仅适用于网络允许直连的场合。企业要求通过堡垒机或代理时,应使用批准的连接方式,按该路径重新核对源地址,不能用此命令绕过网络要求。IdentitiesOnly=yes 限制客户端提供的认证密钥。OpenSSH 客户端
指纹一致才接受连接。进入服务器后,以普通登录用户执行:
id
cat /etc/os-release
uname -m
ip -br address
ip route
lsblk -o NAME,SIZE,TYPE,FSTYPE,MOUNTPOINTS结果应能对应创建选项:用户名为选择的普通用户,系统为 Ubuntu 24.04,架构与镜像匹配,网卡上有实例的私网地址,根文件系统位于系统盘。公网 IP 在云端做映射时可能不出现在 ip address 中,后面的公网入口章节会解释这种关系。
如果出现 Permission denied (publickey),网络已经到达 SSH 认证环节,应核对用户名、所选密钥和绑定是否生效。超时则按连接失败的分层处理检查路径。出现主机密钥变化警告时,先确认是否重建、换 IP 或更换系统盘,不直接删除旧记录继续连接。
通过 SSH 隧道访问一个回环服务
首次应用访问可以沿已有 SSH 连接完成,无需向公网再开放 HTTP 端口。以下服务仅供测试,在云主机普通用户的临时目录中运行,使用 Ubuntu 的 Python 3;它不是生产 Web 服务器。
先在云主机确认工具。如果缺少 Python,在具备 sudo 权限、允许访问已配置软件仓库的条件下安装;内网环境使用批准的仓库,不能随意切换第三方源。
python3 --version
# 仅在未安装时执行:
sudo apt-get update
sudo apt-get install --yes python3在云主机同一 Bash 会话创建空的临时工作目录,并以前台方式启动:
HTTP_LAB_DIR=$(mktemp -d -t cloud-http.XXXXXXXX)
printf 'cloud-http-ok\n' > "$HTTP_LAB_DIR/index.html"
python3 -m http.server 18080 --bind 127.0.0.1 --directory "$HTTP_LAB_DIR"预期出现监听 127.0.0.1、端口 18080 的启动信息。若提示地址已占用,先查 ss -lnt '( sport = :18080 )',不要结束未知进程。该目录中只放测试文件,避免把用户主目录通过 HTTP 提供出去。Python http.server
另开一个本地 Bash 终端,重新设置前面的三个 SSH 变量,执行:
ssh -F /dev/null -o IdentitiesOnly=yes -o ConnectTimeout=10 \
-o StrictHostKeyChecking=yes -o ExitOnForwardFailure=yes \
-i "$SSH_KEY" -N -L 127.0.0.1:18080:127.0.0.1:18080 \
"$SSH_USER@$SERVER_IP"该终端保持运行,且通常没有输出。左侧 127.0.0.1:18080 是本地监听地址,右侧 127.0.0.1:18080 是由云主机连接的目标。转发失败时检查本地端口是否被占用,以及服务器是否允许 TCP 转发;不要为实验扩大受管服务器的 SSH 权限。
第三个本地终端使用 curl 7.76.0 或更新版本发起 GET:
curl -q --noproxy '*' --fail-with-body --silent --show-error \
--connect-timeout 5 --max-time 10 \
--write-out '\nhttp_status=%{http_code}\n' \
http://127.0.0.1:18080/成功结果为:
cloud-http-ok
http_status=200这次 HTTP 流量经过 SSH 隧道,安全组只需允许 SSH。它能检验本地转发、云主机回环监听和 HTTP 响应,不能据此判断云主机公网的 18080 端口可达。-q 必须位于 curl 第一个选项,避免 .curlrc 改变请求;--noproxy '*' 排除环境代理,--fail-with-body 使 HTTP 错误返回非零退出码。curl 手册
结束时,先在本地转发终端按 Ctrl+C,再在云主机 HTTP 服务终端按 Ctrl+C。回到创建目录的同一云端会话,只删除测试文件并尝试移除空目录:
rm -- "$HTTP_LAB_DIR/index.html"
rmdir -- "$HTTP_LAB_DIR"如果目录非空,rmdir 会停止,检查多出的内容后再处理。云主机本身仍在计费,临时实验完成后的资源处置见运行观测、费用与资源释放。长期运行服务使用独立服务账号和 systemd 或容器管理,参见 Linux 系统基础。
安全组怎样决定连接
安全组按网络报文的属性控制流量。它能识别 IP、协议和端口,通常无法判断一次 HTTP 请求属于哪个登录用户、某个订单是否允许修改。因此,端口可达之后,应用仍需执行身份认证与业务授权。
一条规则包含哪些字段
对于访问云主机 SSH 的连接,客户端临时端口可能是 53124,服务器目标端口是 22:
客户端出口地址:53124 → 实例入口:22
入方向规则,作用于目标实例:
├─ 协议:TCP
├─ 目的端口:22
├─ 来源:已核对的客户端出口 IPv4 /32
├─ 动作:允许
└─ 优先级:参与该平台的规则匹配入方向的端口字段通常填写服务的目标端口,不填写客户端随机分配的临时端口。出方向规则则从实例发起连接的视角填写目的地址与目的端口,例如访问指定软件仓库的 TCP 443。需要源端口等更细粒度字段时,要查看平台是否支持五元组规则。阿里云安全组规则
以下是访问需求示例,需要根据实际运行服务选择,不能整表照抄进安全组:
| 连接需求 | 被访问资源 | 入方向来源与端口 |
|---|---|---|
| 本地直接运维 | 云主机 | 操作者实际出口 /32 → TCP 22 |
| 通过堡垒机运维 | 云主机私网地址 | 堡垒机实际来源地址或受支持的组引用 → TCP 22 |
| 公开 HTTPS 网站 | 实际公网入口 | 面向目标用户的 TCP 443;若全网开放,分别检查 IPv4 与 IPv6 |
| HTTP 跳转或证书验证 | 实际公网入口 | 仅在所选方案需要时开放 TCP 80 |
| 应用连接数据库 | 数据库私网入口 | 应用节点的来源 → 数据库实际监听端口 |
安全组引用可以减少维护不断变化的私网 IP,但其含义是平台识别的资源成员关系,不是应用身份。跨 VPC、跨账号和不同网卡形态的支持条件要逐项核对;数据库密码、TLS 和业务授权仍由相应服务管理。
默认策略、多组与匹配顺序
需要区分“创建向导预先添加的可见规则”和“没有命中规则时的默认处理”。删除列表中的预置规则,不一定意味着所有流量都会被拒绝。
在阿里云 ECS 中,普通安全组默认允许组内实例私网互通、允许出方向流量;企业级安全组默认出入方向均不放行。普通安全组的组内连通策略还可以调整。排查同组机器为什么能够互访时,要把组内策略也算进去。普通与企业级安全组
对普通的自定义规则匹配,阿里云会综合相关安全组规则,优先匹配数值较小的优先级;同优先级冲突时拒绝优先,命中后停止继续匹配。都未命中才进入默认处理。既不能只看正在编辑的那一个安全组,也不能把一条允许规则当作最终结果。规则匹配方式
例如,学习实例只需要某来源访问 SSH,却同时关联了另一个允许全网 SSH 的组。即便专用组配置正确,实际效果仍可能超出预期。应从实例或网卡详情反查全部关联组,再根据平台匹配方式判断。
这些细节不能直接迁移到其他云。腾讯云还需要检查实例绑定安全组的优先级及规则顺序,见其安全组概述。迁移规则时,至少核对作用资源、默认策略、多组组合方式、拒绝语义和组引用范围;名称相似不代表执行模型相同。
有状态过滤与新连接验证
有状态安全组跟踪已允许连接的状态。客户端建立到服务器 TCP 22 的连接后,关联回包可按连接状态放行,无需再为这条响应添加“出方向目标端口 53124”的规则。
这也影响规则变更的验证:一个已经建立的 SSH 会话可能在修改规则后继续使用,不能拿旧会话仍然存活判断新规则无效。需要发起不复用旧连接的新连接,并考虑平台规则生效与连接跟踪处理。安全组状态跟踪
在专用学习实例上,保留当前管理会话和可用的云端恢复通道,再验证限制来源的结果:
- 记录目标实例 ID、网卡、全部关联安全组和修改前规则。若安全组关联了其他实例,应先评估影响,不能只按眼前这台机器操作。
- 确认允许当前管理来源访问 TCP 22,检查是否存在更宽的来源规则或其他组放行。
- 在同一授权来源另开终端,使用前面的
ssh -F /dev/null ...命令建立新会话。预期能够登录。 - 如果有另一处获准用于测试、且确认使用不同出口的客户端,从那里对同一目标发起新连接。按当前只允许一个来源的配置,预期不能建立 SSH 会话。缺少不同来源的对照时,只能确认当前来源可用。
- 发现新连接异常,使用保留的管理通道检查或恢复原规则;不要把 22 临时开放给所有来源作为通用恢复方法。
未授权来源连接失败也可能由它自己的网络造成。把规则生效作为结论,还需结合云端规则诊断、流量记录和明确的来源地址。若在专用资源上进一步做允许/撤销对照,只变更测试来源的规则,保留原管理来源,并使用新的 TCP 连接。
网络 ACL、主机防火墙和容器
不同层的过滤器不能相互替代。阿里云网络 ACL 关联交换机,采用无状态规则,需要考虑请求与回包;其对同一交换机内实例互访的处理也不同于跨交换机流量。安全组关联实例网络资源,主机防火墙则由操作系统维护。VPC 访问控制
以客户端访问服务器 443 为例,无状态 ACL 的回包目的端口是客户端临时端口,不是 443。只在两个方向各允许一次“目的端口 443”可能使请求进入而响应被丢弃。临时端口范围取决于客户端及中间设备,应按真实路径和平台规则设置。
在 Ubuntu 云主机上,以具有 sudo 权限的管理员只读检查:
sudo ss -lntp '( sport = :22 or sport = :443 )'
sudo ufw status verbose
sudo nft list rulesetss 显示监听地址和进程;UFW 显示其管理状态;nftables 显示对应规则集。如果工具未安装,不能把“命令不存在”当作“没有防火墙”。已有系统使用其他规则后端时,还需检查实际启用的后端,不能随手切换防火墙管理工具。
Docker 的端口发布还会配置转发与地址转换规则,流量可能不经过只针对宿主本地输入链的过滤。UFW 显示端口被限制,也不能直接推出所有 Docker 发布端口同样被限制。Docker 与防火墙
部署容器时分别确认容器内监听、宿主发布地址和云端授权。宿主发布到 127.0.0.1 适合本机反向代理或隧道访问;发布到所有宿主地址则会扩大可达范围。EXPOSE 只是镜像元数据,不会单独建立端口发布。具体部署见 Docker,系统过滤规则见防火墙、端口与网络排查。
公网入口、出网与多实例访问
公网直连、负载均衡和 NAT 网关承担不同任务。一个系统可能只用其中一种,也可能组合使用。
公网访问
├─ 直接访问实例
│ 客户端 → 固定公网 IP / EIP 映射 → 实例网卡 → 服务
├─ 通过负载均衡
│ 客户端 → LB 监听器 → 被选中的后端实例 → 服务
└─ 通过 DNAT
客户端 → NAT 公网地址:映射端口 → 私网实例:服务端口
实例主动出网
├─ 使用自身公网入口的出网能力
└─ 私网实例 → 匹配的路由与 SNAT 规则 → NAT 网关/EIP → 外部服务
每条路径再检查实际适用的访问控制;并非都经过上述所有产品。私网 IP、固定公网 IP 与 EIP
私网 IP 是实例在 VPC 内通信的地址。公网地址通过平台提供的公网接入能力使外部客户端能够寻址。固定公网 IP 与实例关联较紧;EIP 可以独立持有,并在支持的资源之间绑定或解绑。EIP 的资源模型
阿里云普通 EIP 映射方式下,EIP 位于云端公网网关,映射到网卡私网地址,因此系统里可能只看到私网 IP。应用应监听实际存在的地址,或按需要监听 0.0.0.0;强行绑定一个没有配置在系统网卡上的 EIP 会失败。EIP 还有不同绑定模式,具体以当前模式为准。EIP 与 ECS 绑定
0.0.0.0 表示监听本机所有 IPv4 地址,不是分配给实例的公网地址;127.0.0.1 仅供本机访问。绑定正确地址后,外部访问仍取决于公网关联、平台网络与访问规则。
IPv6 要独立检查。拥有 IPv6 地址后,还需要相应的公网能力、路由、服务监听和 IPv6 规则。阿里云 VPC 与交换机启用 IPv6 后,默认能力与公网开通是不同步骤,见 VPC 的 IPv6 配置。域名同时发布 A 与 AAAA 记录时,应分别验证两条路径,避免 IPv4 正常而 IPv6 超时。
SNAT 与 DNAT 改写什么
SNAT 改写源地址,常用于多台私网实例共享公网出口。实例发起连接时,网关把私网源地址及必要的端口映射为公网侧地址,并维护回程所需状态。
DNAT 改写目的地址,常用于把公网地址上的指定端口映射到私网服务。两者都是地址转换能力;是否对外开放服务取决于实际配置,不能把 NAT 网关笼统理解为“只能出网”。公网 NAT 网关接入
SNAT:私网实例访问外部 HTTPS
转换前:10.42.10.10:53124 → 外部服务:443
转换后:出口 EIP:映射端口 → 外部服务:443
DNAT:外部客户端访问私网服务
转换前:客户端:临时端口 → 入口 EIP:443
转换后:客户端侧来源 → 10.42.10.10:8443
最终看到的来源是否保留,还需看具体产品与模式接入 SNAT 时,在 NAT 控制台确认地域、VPC、绑定 EIP、覆盖的源网段,以及该源网段实际使用的路由。然后从目标实例访问批准的外部服务,并在外部服务或出口日志中核对实际来源。只有 NAT 网关、却没有匹配规则或可用下一跳,实例仍可能无法访问公网。
设置 DNAT 前,先确认私网服务监听目标地址与端口,再明确公网映射的协议、端口和允许的来源。NAT 不负责 HTTP 域名路由、证书终止或后端健康选择;需要这些能力时选择负载均衡或反向代理。
负载均衡的两段连接
负载均衡至少涉及入口监听器、转发规则、后端组和健康检查。以 HTTPS 入口为例:
客户端
│ 域名、TLS、请求
▼
LB 监听器:443 / HTTPS / 对应证书
│ 按 Host、路径或其他规则选择后端组
▼
后端实例:私网地址 / 实际服务端口
▲
└─ 健康检查:独立的协议、端口、路径、Host 与成功条件四层负载均衡主要按传输层信息转发;七层负载均衡可以理解 HTTP,执行域名和路径路由。TLS 可以在 LB 终止,也可以继续加密到后端,或者使用透传方案。应明确证书在哪一层校验,以及后端实际收到的是 HTTP 还是 HTTPS。
后端来源也依赖模式:应用可能看到代理地址,或通过受支持的机制取得客户端地址。HTTP 的转发头只能信任来自受控代理的部分,不能让公网调用者任意伪造客户端 IP。记录访问日志时,同时保留直接对端和经过可信代理解析的客户端地址。
阿里云 ECS 安全组存在 SLB 特殊放行规则:经 ALB、NLB 或 CLB 转发到后端 ECS 的特定流量由平台识别并默认放行,不能照搬“只需把 LB 地址加入 ECS 安全组白名单”的通用说法。应按所用产品配置入口侧访问控制,并核对后端适用规则。ECS 安全组特殊规则
ALB 自身还有托管安全组规则。根据其官方说明,未设置拒绝策略时,监听端口可能仍默认放通;只添加允许某个 IP 的规则并不足以构成白名单,需要按匹配优先级设置兜底拒绝。ALB 端口访问控制
接入时依次确认:
- 后端服务已在网卡可达地址监听,端口和协议与后端组配置一致。
- 健康检查使用应用实际提供的路径及 Host,成功码、间隔和超时符合应用启动与响应行为。
- LB 监听器配置正确证书和转发规则,在控制台看到后端健康,再用真实域名发起请求。
- 查看入口与后端日志,确认流量进入预期实例;多实例场景还应验证单节点退出后流量可转移。
健康检查路径应反映是否可以接收当前业务流量。检查得太浅,会把依赖已损坏的实例继续留在池中;把所有非关键依赖都作为摘除条件,又可能在共享依赖抖动时摘掉全部实例。是否检查数据库等依赖,要根据服务能否降级处理决定。
公网网站与受限网络
使用中国内地云资源对外提供网站或 App 服务前,要按接入商与主管部门要求办理相应手续。换成非标准端口不能替代备案;服务器所在地、接入信息和业务类型都需要确认。备案服务器及接入信息要求
内网部署需要提前准备软件仓库、镜像仓库、证书信任、DNS、时间同步和云管理组件所需通道。收紧出方向规则前,先列出这些依赖的真实地址与协议。域名背后地址可能变化,普通 IP 安全组无法自动追踪所有域名变化;可使用批准的出口代理、内部仓库或具备相应能力的访问控制产品。
完全离线环境从受控路径导入软件包和镜像,保留版本、校验值及来源。不要因下载失败关闭 TLS 校验,也不要把临时公网代理写成服务器的长期默认配置。
实例元数据也是访问入口
元数据服务向实例提供自身配置,还可能提供实例角色的临时凭据。应用存在 SSRF 漏洞时,攻击者可能借应用访问这个本地可达服务。
对需要元数据的阿里云实例,优先采用仅加固模式,并确认所用 SDK 和云管理组件支持令牌访问。角色只授予应用需要的资源权限;即使临时凭据泄漏,权限范围也应受到限制。元数据与传输安全
阿里云安全组对 MetaServer 存在默认放行行为,因此不能仅靠普通出方向拒绝规则作为元数据保护方案。应用应限制可请求的目标,容器环境还需按网络和工作负载身份设计访问限制,不能把同一主机上的全部程序都视为同一可信主体。
云盘、快照与实例变更
实例的计算资源与磁盘有各自的生命周期。停止进程、停止实例、卸载磁盘和释放磁盘会产生不同结果,处理数据前应先识别正在操作的对象。
云盘挂载到实例之后
云控制台中的“挂载云盘”把块设备关联到实例;Linux 的 mount 则把文件系统接入目录树。两步之间还可能涉及分区、LVM 和文件系统识别。挂载数据盘
云盘 ID
↓ 云端关联到实例
Linux 块设备
├─ 新建空盘:确认无保留数据后,选择分区和文件系统方案
└─ 已有数据 / 快照恢复盘:识别已有布局,不重新格式化
↓
分区或逻辑卷 → 文件系统 → 挂载目录 → 应用使用该目录在实例内,以管理员只读查看设备和当前挂载:
sudo lsblk -o NAME,PATH,SIZE,TYPE,FSTYPE,UUID,MOUNTPOINTS,SERIAL
findmnt --target /把云端磁盘 ID、容量及可获得的序列号与系统设备对应。设备名可能是 /dev/vdb,也可能是 NVMe 形式,且重挂后可能变化;不要仅凭“第二块盘”就执行格式化。FSTYPE 为空也不能单独证明盘内无重要数据,LVM、加密或未识别格式需要继续检查。
从快照创建的云盘通常保留原分区和文件系统。重新执行 mkfs 会破坏原数据。新的空盘初始化、文件系统选择与持久挂载操作见 Linux 系统基础;恢复盘按快照创建云盘识别已有布局。
挂载后要核对应用目录究竟落在哪个文件系统。例如实际数据目录是 /srv/app-data,在确认该目录存在后执行:
findmnt --target /srv/app-data
df -hT /srv/app-datafindmnt --target 会显示承载该路径的文件系统,即使目标数据盘没有挂载,也可能返回根文件系统。必须比较 SOURCE 与预期设备,并确认 TARGET 是计划挂载点;否则应用可能把数据继续写入系统盘。服务需要在挂载就绪后再启动,不能只依赖目录存在。
云盘可独立保留,但是否随实例释放由属性决定。本地盘与宿主资源关系更紧,故障和释放风险不同,重要数据应有独立副本。加密保护静态数据,密钥权限与可用性也成为恢复条件;备份计划应包含密钥管理,不能只保存磁盘快照。
扩容需要走完各层
云控制台增加容量后,操作系统和文件系统还需要识别新增空间。常见层次是:
云盘容量 → 系统识别的块设备容量 → 分区 → LVM(若使用)→ 文件系统操作前备份并记录现有布局,在控制台按目标云盘 ID 扩容,然后比较 lsblk 与 df -hT。如果 lsblk 显示盘变大而分区未变,先处理分区;如果分区已变而文件系统未变,才进入文件系统扩展。没有分区的整盘文件系统不需要分区扩容;使用 LVM 时还要处理物理卷与逻辑卷。
ext4 与 XFS 使用的扩展工具及参数对象不同,不能互换。按实际系统、布局及在线/离线支持条件执行Linux 云盘扩容。完成后同时检查容量、应用读写和服务日志。云盘扩容一般不能直接原地缩回,因此不能把“再改小”当作回退方案。
快照保存什么,恢复如何验证
普通磁盘快照保存磁盘上的数据状态,不包含尚未落盘的内存内容。一个数据库数据目录还可能依赖日志恢复;多块盘分别拍快照,又可能取得不同时刻的数据。单盘快照与一致性
多盘一致性组用于协调多个磁盘的时间点;应用一致性还要求应用和文件系统参与。选中了相关功能之后,应检查实际创建结果,不能只凭选项名称认定数据库备份有效。快照一致性组
备份设计先确定 RPO 和 RTO:RPO 表示可接受丢失多长时间的数据,RTO 表示允许恢复服务所用的时间。快照周期影响恢复点,恢复实例、回放日志、核对数据和切换入口则影响恢复时长。数据库有原生备份与日志恢复机制时,应与磁盘快照配合,而不是用一次 sync 代替数据库一致性处理。
恢复演练优先在隔离副本完成:
- 确认快照 ID、源盘 ID、成功状态与保留时间。为数据盘准备兼容的测试实例,为系统环境恢复准备合适的镜像或启动方案。
- 从目标快照创建新云盘,选择测试实例可以挂载的可用区和磁盘类型。检查容量、加密密钥权限和费用后再提交。从快照创建数据盘
- 将新盘关联到隔离实例,识别原有分区与文件系统。不要重新初始化,不自动启动其中的业务服务。隔离实例不得使用生产回调、消息消费和写入凭据。
- 按文件系统要求挂载副本。检查样本文件、校验值与应用数据;数据库需按原生恢复流程启动隔离副本,验证日志回放和业务查询。
- 记录能恢复到哪个业务时点、缺失哪些数据、耗时多少;只有确认数据与服务满足要求后,才安排正式切换。
快照副本可能与原盘具有相同 UUID。把两者挂到同一系统时,按 UUID 挂载可能选择错误设备,XFS 等还可能拒绝重复 UUID。优先使用隔离恢复实例,并按官方步骤处理副本身份。只读挂载也要考虑日志回放语义,数据取证应采用相应的只读恢复方式。
自定义镜像用于复制可启动环境;单个系统盘快照直接创建的数据盘不自动成为可启动的新实例。原地回滚会覆盖快照之后的写入,必须先决定这些新数据如何保留。备份策略、保留周期和恢复演练见备份与恢复。
升配、重建与迁移
实例升配适合明确的单机资源瓶颈,但可能需要停机,并受规格兼容、库存和资源上限影响。CPU 升配不会修复错误 SQL,内存升级也不会自动调整应用堆大小;变更后还需重新观察应用配置与瓶颈。
重建更适合系统镜像更新、环境不可重复修复或架构切换:用可追踪的镜像和部署配置创建新实例,完成初始化和数据接入,再验证监听与健康检查。多实例系统可逐步引入新节点,排空旧节点连接后下线;单实例服务则要安排停机窗口。
回退要同时考虑程序和数据。旧实例保留着,不代表它能够读取新版本已经修改的数据格式;数据库结构变更和消息格式应保持兼容,或具备经过验证的数据恢复方案。切换 EIP、LB 后端或 DNS 前,应明确旧连接如何结束、客户端缓存何时更新,以及新写入在哪一侧发生。
同地域换可用区、跨地域迁移和换云平台所需资源不同。依赖数据、专有服务地址、证书、角色与网络策略都要迁移,不能仅复制系统盘。系统与服务初始化见服务器初始化,长期 SSH 配置与密钥管理见 SSH。
运行观测、费用与资源释放
把云端指标与系统状态对应起来
云端实例状态、来宾系统状态和应用状态分别观察。控制台显示运行中时,应用可能正在重启;应用进程存活时,公网入口也可能被限速或拒绝。
| 观察位置 | 重点字段 | 能帮助区分的问题 |
|---|---|---|
| 实例详情与事件 | 实例 ID、状态、规格、系统事件 | 资源变更、平台维护、回收与启动失败 |
| 云监控 | CPU、网络带宽、PPS、连接和磁盘指标中实际提供的项目 | 实例规格或网关容量是否接近限制 |
| 来宾系统监控 | 内存、文件系统、进程、I/O 等,需要相应采集能力 | 内存不足、磁盘满、应用资源竞争 |
| 访问与应用日志 | 状态码、耗时、目标节点、请求关联信息 | 入口正常但应用或依赖出错 |
| 云操作审计 | 操作身份、资源 ID、动作及结果 | 谁修改了规则、解绑了 IP 或释放了资源 |
在 Ubuntu 实例内,以普通用户先进行只读检查:
uptime
free -h
df -hT
df -i
ip -s link
ss -s这些结果分别对应负载、内存、容量、inode、网卡统计和 socket 汇总。负载升高可能来自计算或等待 I/O,需再结合进程和磁盘指标定位;网络字节量低却存在丢包时,还应检查 PPS、连接数、队列和限制事件,而不是只增加公网带宽。
为生产资源启用必要的云监控、系统采集和操作审计,确认告警能送达实际值班人员。操作审计记录的是云 API 行为,应用日志记录的是业务执行,两者通过实例 ID、变更记录和时间范围关联。云端身份与操作审计
账单按资源分别计算
云主机账单通常包含多个项目。计算规格、磁盘容量与性能、镜像许可、公网流量或固定带宽可能分别收费;EIP、NAT、LB、快照和日志存储又可能形成独立账单。
在费用控制台按产品、地域和实例 ID 查看明细,不能只看最初购买实例的价格。ECS 账单查询
短期实验需要估算运行时长与公网流量,长期服务还要考虑增长、备份保留和跨区域传输。带宽峰值限制瞬时吞吐,但累计流量仍随运行时间增加。免费额度、资源包或包年包月只覆盖其约定范围,选装资源可能仍按量产生费用。
在费用与成本控制台配置预算、高额消费和余额提醒,并检查消息接收人。成本预警用于通知;它不是自动停止所有消费的硬上限,账单与提醒还存在出账延迟。费用常见问题
停止实例与释放资源
普通停止保留实例以供再次启动。对于支持的按量实例,节省停机模式会回收部分计算资源以降低费用,但云盘等资源继续保留和计费;再次启动需要重新申请计算资源,可能遇到库存不足,固定公网 IP 也可能变化。节省停机模式
因此,停机前先决定目标:只是暂停应用、暂时不用计算资源,还是永久删除整套学习资源。长期保留数据时应检查磁盘和快照的保留属性;永久退出时要逐个处理独立资源。
释放实例属于不可逆操作。系统盘、本地盘、设为随实例释放的数据盘,以及设为随盘释放的自动快照可能一并删除。操作前逐项确认数据去向和保留设置。释放实例的影响
对于前面创建的独立学习资源,按依赖顺序处理:
- 按实例 ID 确认目标,核对标签、系统盘、数据盘、关联 IP 和是否存在其他使用者。若已经接入服务,先停止新流量、任务和写入。
- 导出要保留的文件,或创建并验证需要的备份。确认快照成功、可保留,以及不会因释放属性被同时删除。
- 在实例详情中检查每块盘的“随实例释放”和自动快照保留设置;确认后释放或按产品规则退订实例,不批量选中未知资源。
- 检查剩余独立云盘、EIP、NAT、LB、快照和日志资源。确定不再被使用的才释放;需要长期保留的记录用途与费用。
- 删除没有资源依赖的专用安全组、交换机和 VPC;不能删除共享网络。VPC 删除会校验关联资源,按提示先处理依赖。VPC 删除条件
- 账单更新后按资源 ID 检查是否还有持续费用,区分延迟出账和仍在保留的计费资源。
若只做了 SSH 隧道实验,没有创建 NAT、LB 或数据盘,就无需额外创建这些产品再演示释放。需要保留的备份也不能为了账单“归零”而删除。
连接失败的分层处理
连接失败先记录客户端所在网络、目标域名或 IP、地址族、协议、端口和错误信息。然后按已经到达的阶段缩小范围:
域名解析失败 ───────────────→ DNS 配置与客户端解析路径
TCP 连接超时 ──────────────→ 目标地址、路由、过滤、平台状态、回程
TCP 被拒绝 ────────────────→ 监听与主动拒绝,确认拒绝来自何处
SSH publickey 失败 ────────→ 用户名、密钥、绑定和系统认证
TLS 校验失败 ──────────────→ 证书、域名、信任链、系统时间、代理
收到 HTTP 响应但业务失败 ──→ 入口路由、应用、依赖与业务状态超时本身不能定位到安全组;拒绝可能来自目标系统或中间设备;HTTP 响应也可能由 LB、代理或平台拦截页生成。每一步都要核对究竟是哪一层给出了结果。
SSH 超时或认证失败
先在控制台确认当前地域、实例 ID、运行状态、公网关联及服务事件,然后用本地 Bash 发起直连诊断。沿用前面已经设置的 SSH 变量,主机指纹已核对并保存:
ssh -vv -F /dev/null -o IdentitiesOnly=yes -o ConnectTimeout=10 \
-o StrictHostKeyChecking=yes -i "$SSH_KEY" \
"$SSH_USER@$SERVER_IP"观察输出停在哪一层:只有 Connecting to,尚未完成 TCP;出现远端协议和密钥交换信息,已到达 SSH 服务;出现 Permission denied (publickey),转查账号与密钥。日志可能包含用户名、地址和本地路径,提交工单前删除无关敏感内容,不附私钥。SSH 登录故障指引
云端可恢复通道正常时,在目标 Ubuntu 实例以管理员只读查看:
sudo ss -lntp '( sport = :22 )'
sudo systemctl status ssh.service ssh.socket --no-pager
sudo journalctl -u ssh.service -b -n 60 --no-pagerUbuntu 可能使用 socket 激活,监听进程显示为 systemd 时应同时检查 ssh.socket。没有监听就先处理 SSH 服务、配置或初始化错误;已经监听,再检查云端授权来源、实际关联组和主机过滤。不要在同一次诊断中同时改端口、换密钥、关闭防火墙,否则无法判断哪个变化有效。
HTTP 访问与域名、入口分别比较
对已经部署、允许测试且具备有效证书的 HTTPS 服务,可用两次独立 curl 请求比较普通解析与指定入口。下面在本地 Bash 执行,SERVICE_HOST 使用真实服务域名,TARGET_IP 使用当前入口 IPv4 地址,CHECK_PATH 使用该服务实际提供的只读检查路径;示例值需要替换。
SERVICE_HOST='api.example.com'
TARGET_IP='你的入口IPv4地址'
CHECK_PATH='/health'
curl -q --noproxy '*' --ipv4 --fail-with-body --silent --show-error \
--connect-timeout 5 --max-time 15 \
--write-out '\nremote_ip=%{remote_ip} http_status=%{http_code} connect=%{time_connect} total=%{time_total}\n' \
"https://$SERVICE_HOST$CHECK_PATH"
curl -q --noproxy '*' --ipv4 --fail-with-body --silent --show-error \
--connect-timeout 5 --max-time 15 \
--resolve "$SERVICE_HOST:443:$TARGET_IP" \
--write-out '\nremote_ip=%{remote_ip} http_status=%{http_code} connect=%{time_connect} total=%{time_total}\n' \
"https://$SERVICE_HOST$CHECK_PATH"两次请求保持域名、方法、路径、证书校验和 IPv4 条件一致,只改变地址选择。--resolve 保留 URL 中的主机名供 HTTP 与 TLS 使用;直接改成 IP URL 会改变 Host、SNI 与证书匹配,不能当作等价对照。
若指定入口成功、普通请求失败,先比较 remote_ip:普通解析可能指向其他节点,也可能涉及 DNS、地址选择或短时波动。只有重复对照、确认入口和请求条件后,才能进一步收窄原因;单次结果不能直接判定 DNS 故障。企业禁止直连时,不执行这组绕开代理的对照,改查批准的代理链路。
如果输出 HTTP 4xx/5xx,curl 会因 --fail-with-body 返回非零,并保留响应体。应结合响应头、内容和服务日志确认返回方。遇到 TLS 错误检查证书域名、有效性、信任链与系统时间,不加 -k 把错误藏起来。
浏览器访问不一致时,在 F12 的 Network 中查看实际 Request URL、Remote Address、状态码、重定向和 Timing,必要时保留请求日志并重新加载。浏览器代理、IPv6、缓存、Cookie 或 Service Worker 都可能使它与 curl 不同;不要复制带认证信息的整段请求到公开工单。工具使用详见从请求到响应。
私网可以访问,公网或 LB 不正常
先确认两次测试访问的是同一服务端口和协议。通过 SSH 隧道访问回环服务成功,只涉及回环监听;另一台实例访问私网成功,也只说明那台实例所处路径可用。
公网直连失败时,核对公网地址是否仍绑定目标实例、当前带宽及平台限制、实际来源匹配和公网对应的监听地址。LB 失败时,检查监听器、后端组成员、健康检查失败原因、端口、Host 和证书位置,不把这两种入口混查。
若后端显示健康却返回 502/504,结合 LB 与应用日志检查连接复用、超时、协议错配、后端重启和依赖耗时。返回 404 时先核对域名与路由是否命中目标应用,而不是增加安全组端口。
需要确认报文是否抵达实例时,在获准抓包的目标 Linux 主机使用 tcpdump。Ubuntu 缺少工具时,由管理员通过已配置仓库执行 sudo apt-get update 和 sudo apt-get install --yes tcpdump。以下不启用 -A、-X 载荷输出,也不保存抓包文件;概要仍可能包含地址和协议字段,不直接公开。端口变量替换成实际服务端口,以管理员执行:
PORT='443'
sudo timeout 20s tcpdump -ni any -nn -c 20 "tcp port $PORT"在这 20 秒内从指定客户端发起请求。看到 SYN 表示捕获位置收到连接尝试,但主机过滤或服务仍可能拒绝;看到 SYN-ACK 发出而客户端持续重传,应继续查回程及客户端网络。未捕获到报文,还要确认接口、端口、容器命名空间和测试时间匹配,再向云端入口查找。超时结束可能返回 124,这是 timeout 的退出状态,不能解释为网络错误。tcpdump 手册
规则正确但仍不可用
安全组只是网络访问控制的一部分。带宽限速、DDoS 黑洞、产品端口限制、欠费与资源回收都有可能使连接异常。查看平台事件与产品诊断结果,再按相应恢复流程处理;放宽规则无法消除这些状态。EIP 网络安全与防护
磁盘相关故障也会表现为网络问题:系统盘满可能导致认证或日志异常,数据盘未挂载可能让服务启动失败,文件系统只读可能使请求持续报错。此时先回到 findmnt、容量、inode 和服务日志,保护现有数据后修复。
每次修复只改变已定位的对象,并重新执行原来失败的请求:保持来源、协议、端口和路径一致,检查实际响应及目标日志。完成后撤销诊断规则、停止测试服务,并保留必要的配置变更记录。
权威资料与规范地址
产品选项、规则细节、命令参数和恢复限制可按下面的主题查阅。
资源与首次连接
- VPC 与交换机:https://help.aliyun.com/zh/vpc/vpc-and-vswitch
- ECS 实例规格族:https://help.aliyun.com/zh/ecs/user-guide/overview-of-instance-families
- 云账号与凭据保护:https://help.aliyun.com/zh/ecs/user-guide/protect-alibaba-cloud-accounts-and-prevent-credential-leakage
- 登录名与密钥对:https://help.aliyun.com/zh/ecs/user-guide/instance-logon-credential-management
- 默认安全组:https://help.aliyun.com/zh/ecs/user-guide/default-security-groups
- 自定义创建实例:https://help.aliyun.com/zh/ecs/user-guide/create-an-instance-by-using-the-wizard
- 云助手状态:https://help.aliyun.com/zh/ecs/user-guide/check-the-status-of-cloud-assistant-and-handle-exceptions
- VNC 连接:https://help.aliyun.com/zh/ecs/user-guide/log-on-to-an-instance-by-using-vnc
安全组与网络
- ECS 安全组规则:https://help.aliyun.com/zh/ecs/user-guide/security-group-rules
- 普通与企业级安全组:https://help.aliyun.com/zh/ecs/user-guide/basic-security-groups-and-advanced-security-groups
- 腾讯云安全组:https://cloud.tencent.com/document/product/213/112610
- VPC 访问控制:https://help.aliyun.com/zh/vpc/access-control
- Docker 防火墙:https://docs.docker.com/engine/network/packet-filtering-firewalls/
- EIP 概述:https://help.aliyun.com/zh/eip/product-overview/what-is-eip
- EIP 绑定:https://help.aliyun.com/zh/ecs/user-guide/associate-or-disassociate-an-eip
- 公网 NAT:https://help.aliyun.com/zh/nat-gateway/user-guide/use-internet-nat-gateway-for-public-network-access
- ALB 安全组:https://help.aliyun.com/zh/slb/application-load-balancer/configure-security-groups-for-alb-instances
- 备案服务器与接入信息:https://help.aliyun.com/zh/icp-filing/basic-icp-service/user-guide/icp-filing-server-access-information-check
- 元数据与传输安全:https://help.aliyun.com/zh/ecs/user-guide/data-security/
- EIP 网络防护:https://help.aliyun.com/zh/eip/security-and-compliance/network-security
数据与资源生命周期
- 挂载数据盘:https://help.aliyun.com/zh/ecs/user-guide/attach-a-data-disk
- 从快照创建数据盘:https://help.aliyun.com/zh/ecs/user-guide/create-a-disk-from-a-snapshot
- Linux 云盘扩容:https://help.aliyun.com/zh/ecs/user-guide/resize-linux-cloud-disks
- 创建单盘快照:https://help.aliyun.com/zh/ecs/user-guide/create-a-snapshot
- 快照一致性组:https://help.aliyun.com/zh/ecs/user-guide/snapshot-consistency-group-overview/
- 云端身份与审计:https://help.aliyun.com/zh/ecs/user-guide/identity-and-access-security/
- ECS 账单:https://help.aliyun.com/zh/ecs/view-billing-details
- 成本预警:https://help.aliyun.com/zh/user-center/cost-alert
- 费用常见问题:https://help.aliyun.com/zh/user-center/support/billing-faqs
- 节省停机模式:https://help.aliyun.com/zh/ecs/user-guide/economical-mode
- 释放实例:https://help.aliyun.com/zh/ecs/user-guide/release-an-instance/
连接与诊断工具
- ssh-keygen:https://man.openbsd.org/ssh-keygen
- OpenSSH 客户端:https://man.openbsd.org/ssh
- Python HTTP 测试服务:https://docs.python.org/3/library/http.server.html
- curl 手册:https://curl.se/docs/manpage.html
- SSH 连接故障:https://help.aliyun.com/zh/ecs/troubleshooting-guidelines-when-you-cannot-remotely-log-on-to-a-linux-instance-through-ssh
- tcpdump 手册:https://www.tcpdump.org/manpages/tcpdump.1.html
