阿里云ECS安全组与远程连接设置完全指南 一、引言云服务器安全的守门人在云计算时代云服务器ECSElastic Compute Service已经成为企业IT基础设施的核心组件。然而将服务器暴露于公网之中安全风险随之而来——未经授权的访问尝试、恶意扫描、暴力破解密码等威胁每天都在发生。如何在享受云计算的弹性与便利的同时确保服务器的访问安全答案就藏在两个关键的配置环节中安全组与远程连接。安全组是云上虚拟防火墙负责控制哪些流量可以进出你的ECS实例远程连接则是你与服务器交互的通道决定了你如何安全地登录和管理服务器。这两者相辅相成——安全组控制着谁可以访问你的服务器远程连接方式则决定了你以何种身份和凭证进入系统。本文将从零开始系统讲解阿里云ECS安全组与远程连接的完整配置方法涵盖概念原理、操作步骤、最佳实践和常见问题帮助你构建安全、高效的云服务器管理体系。二、安全组云上虚拟防火墙2.1 什么是安全组安全组是阿里云提供的一种虚拟防火墙功能用于控制ECS实例的入方向和出方向流量。你可以将具有相同安全需求且相互信任的ECS实例放入同一个安全组以此划分安全域。安全组在ECS的使用中扮演了云上虚拟防火墙的角色通过管理安全组和规则可提供精细化的网络安全隔离与访问控制。每个ECS实例在创建时必须关联至少一个安全组也可以关联多个安全组。安全组的规则变动会自动作用于该安全组中的所有ECS实例。安全组规则由以下几个核心要素组成授权对象、目的端口、协议类型、授权策略允许或拒绝和优先级。需要先登录阿里云控制台点击阿里云控制台2.2 安全组的分类阿里云安全组根据特性不同分为普通安全组和企业级安全组两种类型两者均免费使用。普通安全组支持组内互通功能支持添加授权安全组访问的规则。普通安全组默认允许所有出方向访问入方向默认拒绝所有访问。同一普通安全组内的ECS实例默认内网互通。企业级安全组可以容纳更多的私网IP地址数量但不支持组内互通功能也不支持添加授权安全组访问的规则。企业级安全组默认拒绝所有入方向和出方向访问。企业级安全组适用于对整体规模和运维效率有较高需求的企业级用户。根据操作权限归属不同安全组还分为自定义安全组和托管安全组。自定义安全组由阿里云账号直接在ECS控制台上创建你拥有完全的操作权限。托管安全组则由云产品为你创建和管理。2.3 安全组的网络类型适配阿里云的网络类型分为经典网络和专有网络VPC。在专有网络VPC下安全组仅能在所属的VPC下使用。创建ECS实例时指定的虚拟交换机和安全组必须属于同一个VPC。一台专有网络VPC类型的ECS实例只能加入本VPC的安全组。对于专有网络VPC安全组规则同时控制公网和内网访问。在配置安全组规则时只需配置入方向规则安全组会自动放行对应的出方向响应流量——这就是安全组的有状态特性。三、安全组规则配置详解3.1 安全组规则的构成安全组规则是用户自定义的访问控制规则用于控制安全组内ECS实例的出入站流量。每条规则由以下属性定义授权策略PolicyAccept允许或Drop拒绝优先级Priority范围为1~100数字越小优先级越高默认值为1协议类型IpProtocoltcp、udp、icmp、gre或all端口范围PortRange格式为起始端口/终止端口如80/80表示单个端口授权对象源IP地址段CIDR格式或源安全组ID3.2 入方向规则与出方向规则入方向规则控制外部流量进入ECS实例。由于安全组是有状态的只需配置入方向规则系统会自动放行对应的出方向响应流量。这意味着当你允许某个IP通过SSH22端口访问实例时该实例返回的SSH响应数据包会自动被允许流出无需单独配置出方向规则。出方向规则控制ECS实例向外发起访问的流量。普通安全组默认允许所有出方向访问企业级安全组默认拒绝所有出方向访问。如果你需要限制实例访问特定的公网IP或网段可以配置出方向拒绝规则。3.3 规则的优先级与匹配顺序当一个ECS实例关联多个安全组时所有安全组的规则会合并按照优先级排序后共同决定是否放行流量。安全组规则的优先级范围为1~100数字越小优先级越高。规则匹配时按照优先级从高到低依次判断一旦匹配到一条规则无论是允许还是拒绝就不再继续匹配后续规则。需要注意的是普通安全组组内互通的规则是系统自动添加的隐藏规则优先级最高不受自定义规则影响。企业级安全组默认组内隔离需要通过显式规则来放通内部通信。3.4 创建安全组你可以在购买ECS实例时一并创建安全组也可以独立于实例创建安全组再关联至已有实例。控制台创建步骤登录阿里云ECS管理控制台在左侧导航栏中选择网络与安全 安全组选择需要创建安全组的地域单击创建安全组设置安全组名称及专有网络VPC选择安全组类型为普通安全组或企业级安全组配置安全组规则后单击确定创建通过API创建安全组可以调用CreateSecurityGroup接口。3.5 添加安全组规则控制台添加规则登录ECS控制台进入网络与安全 安全组找到目标安全组单击管理规则选择入方向或出方向标签页单击添加安全组规则配置授权策略、协议类型、端口范围、授权对象、优先级等参数单击保存使规则生效通过CLI添加规则以允许特定IP访问SSH为例acs ecs AddSecurityGroupRule \ --SecurityGroupId sg-xxxxxx \ --IpProtocol tcp \ --PortRange 22/22 \ --SourceCidrIp 203.0.113.0/24 \ --Policy accept上述命令中的参数说明SecurityGroupId目标安全组的IDIpProtocol协议类型tcp/udp/icmp等PortRange端口范围格式为起始端口/终止端口SourceCidrIp源IP地址段使用CIDR格式Policy授权策略accept允许/drop拒绝3.6 常用端口配置示例下表列出了常见场景下需要开放的端口及授权建议端口协议用途授权对象建议22TCPSSH远程连接Linux办公网或固定公网IP不建议使用0.0.0.0/03389TCPRDP远程桌面Windows办公网或固定公网IP不建议使用0.0.0.0/080TCPHTTP网站服务0.0.0.0/0公网访问443TCPHTTPS网站服务0.0.0.0/0公网访问3306TCPMySQL数据库仅允许应用服务器IP或安全组5432TCPPostgreSQL数据库仅允许应用服务器IP或安全组对于Web服务通常需要开放80HTTP和443HTTPS端口。对于远程管理Linux实例开放22端口SSHWindows实例开放3389端口RDP。数据库服务如MySQL3306、PostgreSQL5432等建议仅允许应用服务器所在的IP段或安全组访问不应直接暴露到公网。四、安全组最佳实践4.1 最小权限原则安全组配置的核心原则是最小权限原则——仅开放业务必需的端口并尽量限制源IP地址范围。安全组应作为白名单使用默认拒绝所有访问仅添加允许规则放通必要端口和授权对象。具体实践建议禁止使用0.0.0.0/0全开放高危操作SSH端口建议修改默认22为自定义端口降低被扫描风险仅开放必要端口如Web服务开80/443SSH开22结合标签管理实现环境隔离生产/测试/开发定期审计安全组规则删除过期规则4.2 不同应用使用不同安全组不同应用通常需要开放不同端口建议分属不同安全组避免规则互相影响。对于分布式应用来说应对Web层、Service层、Database层、Cache层使用不同的安全组暴露不同的出入规则和权限。例如可以分别为以下场景创建独立的安全组Web层安全组开放80/443端口供公网访问应用层安全组开放特定服务端口仅允许Web层安全组访问数据库层安全组开放3306/5432等数据库端口仅允许应用层安全组访问通过安全组间的相互授权实现分层访问控制。4.3 避免0.0.0.0/0的陷阱授权对象为0.0.0.0/0表示允许所有IP访问风险极高。允许全部入网访问是经常犯的错误这意味着所有的端口都对外暴露了访问权限。正确做法是先拒绝所有的端口对外开放安全组应该是白名单访问。如果确实需要公网访问如Web服务的80/443端口也应仅开放必要的端口其他端口保持关闭。4.4 内网互通的正确姿势即使是同一个账户下的ECS实例如果分属不同安全组内网网络也是隔离的。如果想让不同安全组的实例内网互通应使用安全组授权方式——在目标安全组的入方向规则中授权源安全组ID而非IP地址。例如允许安全组A访问安全组B的3306端口在安全组B的入方向规则中授权对象填写安全组A的ID端口填写3306。这种方式比CIDR网段授权更安全、更易维护。对于普通安全组同一安全组内的实例默认内网互通。企业级安全组默认组内隔离如需内部通信需显式配置规则。4.5 安全组规则的管理与审计建议每月执行一次安全组规则扫描使用阿里云安全组检查工具进行合规审计。在修改线上安全组规则前应先克隆一个安全组在克隆的安全组上进行调试避免直接影响线上应用。尽可能保持单个安全组的规则简洁。一台ECS实例最多可以加入5个安全组一个安全组最多包括200条规则因此单台实例可能同时应用数百条安全组规则。规则越多管理复杂度越高也越容易产生配置错误。五、远程连接ECS实例配置好安全组之后接下来就需要通过远程连接来登录和管理ECS实例。阿里云提供了多种远程连接方式适用于不同的使用场景。5.1 远程连接方式概览阿里云ECS支持以下几种主要的远程连接方式Workbench阿里云提供的Web远程连接工具无需安装直接在浏览器中使用SSH客户端使用OpenSSH、Xshell、MobaXterm等第三方工具连接Linux实例VNC管理终端可直接查看实例操作系统的实时界面不受安全组限制阿里云客户端阿里云官方桌面客户端支持多种连接方式会话管理通过安全通道连接无公网IP的实例5.2 准备工作安全组放行无论使用哪种远程连接方式首先需要确保安全组已放行相应的端口Linux实例放行SSH端口默认22Windows实例放行RDP端口默认3389Workbench连接系统会自动检测并提示添加安全组规则建议将SSH的默认端口22修改为其他端口如2222并将授权对象限制为办公网IP或固定IP段避免使用0.0.0.0/0。5.3 方式一Workbench远程连接Workbench是阿里云提供的一款Web远程连接工具无需安装任何软件直接在浏览器中使用。Workbench支持通过SSH协议连接Linux实例也支持通过RDP协议连接Windows实例。Workbench的特点支持多种连接方式SSH/RDP支持通过公网IP或私网IP连接实例支持免密登录支持文件管理上传下载文件支持多屏终端同时连接多台实例支持AI Agent模式自然语言指令运维使用Workbench连接Linux实例的步骤登录ECS控制台进入实例页面在页面顶部选择资源组和地域找到目标实例单击远程连接在对话框中单击通过Workbench远程连接对应的立即登录选择连接方式免密连接推荐或终端连接SSH输入用户名Linux默认为root选择认证方式免密、密码或SSH密钥单击登录Workbench的远程连接会话最久维持6个小时如果超过6小时没有任何操作连接会自动断开。5.4 方式二SSH客户端连接对于习惯使用命令行的开发者使用SSH客户端连接是最高效的方式。OpenSSH是macOS和Windows 10/11系统内置的标准SSH客户端。准备工作获取实例公网IP地址在ECS控制台实例详情页的配置信息区域查看设置实例登录凭证密码或密钥对配置安全组入方向规则允许本地IP通过SSH端口默认22访问实例密码登录方式ssh root47.98.xxx.xxx首次连接时会提示验证主机密钥指纹这是SSH的安全机制The authenticity of host 47.98.xxx.xxx (47.98.xxx.xxx) cant be established. ED25519 key fingerprint is SHA256:AbCdEf123456... Are you sure you want to continue connecting (yes/no/[fingerprint])?确认指纹无误后输入yes然后输入实例密码即可登录。密钥对登录方式ssh -i /path/to/private_key.pem root47.98.xxx.xxx其中/path/to/private_key.pem为私钥文件路径。使用密钥对登录比密码登录更安全推荐使用。SSH密钥对的管理在ECS控制台创建密钥对私钥会自动下载保存为.pem格式的文件将密钥对绑定到ECS实例公钥信息会保存在~/.ssh/authorized_keys文件中私钥文件应设置400权限如果私钥文件丢失将无法找回需要解绑后重新绑定新的密钥对5.5 方式三VNC管理终端VNCVirtual Network Computing管理终端可以直接查看实例中操作系统的实时界面。VNC不受安全组设置或实例中运行软件的限制可以作为排查其他连接方式异常的重要手段。重要变更自2023年7月10日起远程连接工具VNC无需单独设置VNC登录密码仅需通过实例的登录名和密码即可安全访问ECS实例。阿里云对VNC完成了安全升级自动托管用户鉴权和端到端加密数据。使用VNC连接实例的步骤访问ECS控制台-实例页面选择目标资源所在的资源组和地域单击目标实例ID进入实例详情页单击远程连接选择通过VNC远程连接中的立即登录对于Linux实例输入登录用户如root后按Enter输入实例登录密码后按Enter对于Windows实例在页面左上角解除系统锁屏选择用户账户默认为Administrator输入密码后按EnterVNC使用注意事项VNC连接会因闲置时间超过300秒而自动断开需重新连接支持复制粘贴命令最大2000个字符暂不支持中文等特殊字符支持发送远程命令模拟特定快捷键操作5.6 方式四会话管理无公网IP实例对于没有分配公网IP的ECS实例可以通过会话管理Session Manager进行安全连接。会话管理通过安全通道访问实例无需开放公网端口安全性更高。使用会话管理的前提是实例已安装云助手Agent且已开启会话管理功能。在阿里云客户端中找到目标实例后选择启动远程会话即可连接。六、安全组与远程连接的联合实践6.1 场景一搭建安全的Web服务器假设你需要在一台Linux ECS实例上部署Nginx Web服务并确保只有你能远程管理服务器。安全组配置如下入方向规则1允许0.0.0.0/0访问TCP 80端口HTTP入方向规则2允许0.0.0.0/0访问TCP 443端口HTTPS入方向规则3允许你的办公网IP访问TCP 2222端口SSH已修改默认端口出方向规则保持默认允许所有远程连接时使用以下命令ssh -p 2222 root你的实例公网IP6.2 场景二数据库服务器的安全隔离假设你有一台MySQL数据库服务器只允许应用服务器访问不对外暴露公网。安全组配置如下创建安全组A数据库安全组入方向规则允许应用服务器所在安全组B访问TCP 3306端口创建安全组B应用安全组入方向规则允许公网访问Web端口80/443数据库实例加入安全组A应用实例加入安全组B数据库实例不分配公网IP这种配置下数据库只能被应用服务器访问公网无法直接连接数据库最大程度保障了数据安全。6.3 场景三通过CLI批量管理安全组对于需要批量管理安全组的场景可以使用阿里云CLI或SDK。以下是通过Python SDK添加安全组规则的示例from aliyunsdkcore.client import AcsClient from aliyunsdkecs.request.v20140526 import AuthorizeSecurityGroupRequest client AcsClient(your-access-key-id, your-access-key-secret, cn-hangzhou) request AuthorizeSecurityGroupRequest.AuthorizeSecurityGroupRequest() request.set_SecurityGroupId(sg-xxxxxx) request.set_IpProtocol(tcp) request.set_PortRange(22/22) request.set_SourceCidrIp(203.0.113.0/24) request.set_Policy(accept) request.set_Priority(1) response client.do_action_with_exception(request) print(response)通过SDK可以实现安全组规则的自动化管理特别适合需要频繁调整规则的场景。七、常见问题与排查7.1 配置规则后仍无法访问问题表现在安全组中添加了规则后仍然无法通过SSH或HTTP访问ECS实例。排查步骤检查实例关联确认ECS实例已加入正确的安全组路径ECS控制台 实例详情 安全组列表验证服务状态确保实例内应用程序已启动并监听正确端口使用netstat -ano命令检查排查规则冲突当实例关联多个安全组时优先级较低的规则可能被覆盖。使用安全组规则检测工具分析最终生效规则7.2 内网无法互通问题表现同一账号下不同安全组的实例无法内网通信。解决方案使用安全组授权在目标实例的安全组入方向规则中授权源实例所属安全组ID而非IP地址检查网络架构确保实例处于同一VPC内。跨VPC场景需使用云企业网或对等连接7.3 SSH连接失败问题表现通过SSH无法连接到Linux实例。排查步骤检查安全组是否放行SSH端口默认22确认实例已绑定公网IP确认用户名和密码/密钥正确检查实例内防火墙如iptables是否阻止了SSH连接尝试使用VNC登录实例检查SSH服务是否正常运行八、总结阿里云ECS的安全组与远程连接设置是云服务器安全管理的基石。安全组作为云上虚拟防火墙通过精细化的规则控制着进出ECS实例的所有流量而远程连接则是管理员与服务器交互的通道。两者需要协同配置——安全组控制谁可以访问远程连接方式决定如何安全地登录。核心要点回顾安全组应遵循最小权限原则仅开放必要端口限制授权对象范围避免使用0.0.0.0/0全开放高危端口如22、3389建议修改默认端口并限制IP不同应用使用不同安全组实现分层隔离Workbench是最便捷的远程连接方式无需安装任何软件SSH密钥对比密码登录更安全推荐在Linux实例上使用VNC不受安全组限制是排查连接问题的利器定期审计安全组规则删除过期规则保持配置整洁掌握了安全组与远程连接的配置方法你就能够构建一个既安全又高效的云服务器管理体系让ECS实例在提供稳定服务的同时远离安全威胁。九、简单问答问1安全组规则添加后多久生效答安全组规则添加后立即生效无需重启ECS实例。问2如何修改SSH默认端口答需要两步操作先在安全组中放行新端口如2222然后登录实例修改/etc/ssh/sshd_config文件中的Port配置重启SSH服务后生效。问3Workbench连接和SSH客户端连接有什么区别答Workbench是阿里云提供的Web工具无需安装、支持免密登录和文件管理SSH客户端是标准协议工具适合习惯命令行的开发者。Workbench更便捷SSH客户端更灵活。问4忘记实例登录密码怎么办答可以在ECS控制台的实例详情页选择全部操作中的重置实例登录密码根据界面提示完成重置。问5一台ECS实例可以加入多个安全组吗答可以。一台ECS实例最多可加入5个安全组。多个安全组的规则会合并后按优先级生效。问6安全组规则数量有限制吗答单个安全组规则上限为200条单实例关联多安全组时规则总数上限为1000条。建议定期清理未使用的规则。