阿里云 ECS 实例如何配置安全组限制特定 IP 访问 SSH

文章导读
最稳妥的做法是通过阿里云控制台的安全组功能,将 SSH 端口(默认 22)的入方向权限从“全网开放”改为“仅特定 IP 访问”。
📋 目录
  1. 快速处理思路
  2. 为什么会这样
  3. 分步处理
  4. 怎么验证是否生效
  5. 常见坑
  6. 参考来源
A A

最稳妥的做法是通过阿里云控制台的安全组功能,将 SSH 端口(默认 22)的入方向权限从“全网开放”改为“仅特定 IP 访问”。

先说结论:安全组是实例级别的第一道防线,配置白名单能有效减少暴力破解风险,但操作顺序错误会导致无法远程连接。

  • 先判断:确认当前操作机的公网 IP 地址,避免把自己关在门外。
  • 优先做:先在安全组中添加允许特定 IP 的规则,再删除或修改全网开放规则。
  • 再验证:更换网络环境或使用未授权 IP 测试连接是否被阻断。

快速处理思路

大部分用户通过控制台操作即可,无需命令。核心逻辑是“先加白名单,再删开放规则”。

  1. 登录阿里云 ECS 控制台,找到目标实例。
  2. 进入实例详情页,点击“安全组”标签,配置规则。
  3. 在“入方向”添加一条允许 TCP 22 端口、授权对象为本机 IP 的规则。
  4. 确认新规则生效后,再删除或修改原有的 0.0.0.0/0 规则。

为什么会这样

安全组是一种虚拟防火墙,用于控制实例的入方向和出方向流量。默认情况下,为了便于初始化,许多镜像或创建向导会开放 22 端口给 0.0.0.0/0(即全网任意 IP)。这意味着互联网上的任何设备都可以尝试连接你的 SSH 服务,容易遭受密码暴力破解或漏洞扫描。通过限制授权对象为特定 IP 或 CIDR 块,可以从网络层面直接丢弃非信任来源的连接请求,无需依赖实例内部的防火墙软件。

分步处理

以下操作基于阿里云 ECS 控制台界面,不同时期的界面布局可能略有差异,但逻辑一致。

1. 查询本机公网 IP

在准备修改规则前,必须先知道你现在用来连接服务器的 IP 是什么。如果是家庭宽带,通常是动态 IP,重启路由器可能会变。

在浏览器访问 ipinfo.io 或在终端执行:

阿里云 ECS 实例如何配置安全组限制特定 IP 访问 SSH

curl ifconfig.me

记录下显示的 IPv4 地址。

2. 添加白名单规则

登录阿里云控制台,进入 ECS 实例列表。点击实例 ID 进入详情页,找到“安全组”区域,点击“配置规则”。选择“入方向”,点击“手动添加”。

  • 端口范围:填写 22/22(或你自定义的 SSH 端口)。
  • 授权对象:填写上一步查到的 IP 地址。如果是固定 IP 段,可使用 CIDR 格式(如 192.168.1.0/24)。
  • 优先级:默认即可,确保该规则优先级高于拒绝规则。
  • 策略:允许。

点击保存。此时,你的 IP 已经拥有访问权限,原有的 0.0.0.0/0 规则暂时保留。

3. 收紧开放规则

确认新规则添加成功后,找到原有的授权对象为 0.0.0.0/0、端口为 22 的规则。点击“删除”或将其授权对象修改为更小的范围。

阿里云 ECS 实例如何配置安全组限制特定 IP 访问 SSH

注意:务必确保步骤 2 已完成且生效,再执行此步。如果先删除了开放规则而白名单未生效,你会立即失去连接。

怎么验证是否生效

验证分为两部分:确认自己能连,确认别人不能连。

1. 正向验证

保持当前网络环境不变,尝试 SSH 连接。如果连接成功,说明白名单规则已生效。

ssh -v root@你的实例公网 IP

观察输出中是否有 Permission denied 或 Connection timed out。正常应进入密码或密钥验证环节。

2. 反向验证

切换网络环境(例如关闭 WiFi 使用手机热点,确保出口 IP 变化),再次尝试 SSH 连接。此时应出现 Connection timed out 错误,表明安全组已拦截非授权 IP 的流量。

常见坑

  • 动态 IP 问题:家庭宽带或移动网络 IP 经常变化。如果 IP 变了,你会无法连接。这种情况下,建议结合 VPN 固定出口 IP,或使用阿里云 Bastion Host(堡垒机)作为中转,而不是频繁修改安全组。
  • 多网卡场景:如果实例有多块网卡或多个安全组,规则是叠加生效的。只要任何一个安全组允许了 0.0.0.0/0,限制就会失效。需检查实例关联的所有安全组。
  • 优先级混淆:安全组规则按优先级从小到大匹配。如果有一条高优先级的拒绝规则匹配了你的 IP,即使后面有允许规则也会被拦截。通常默认策略是允许,但需检查是否有显式的拒绝规则。
  • IPv6 忽略:如果实例开启了 IPv6,记得也要配置 IPv6 的安全组规则,否则 IPv6 流量可能仍处于开放状态。

参考来源

  • 阿里云帮助中心 - 添加安全组规则(help.aliyun.com)
  • 阿里云 ECS 产品文档 - 安全组最佳实践