文章详情

AWS账号解封 亚马逊云AWS安全组开放端口教程

亚马逊aws2026-05-07 15:47:17阿里云Online

开门这事儿,得有门牌号:AWS 安全组到底在干嘛

你可能听过“把端口开放一下就能连上了”,但当你真动手到 AWS 控制台时,会发现事情没那么简单——AWS 安全组看起来像“防火墙”,但又比你家小区门禁更讲规矩:它只会放行你明确写进规则里的流量,而且你写错一个条件,连通性就会像“隔壁邻居听不懂你在敲门”一样尴尬。

所谓安全组(Security Group),本质上是一个状态检查型的虚拟防火墙。你可以理解为:它规定了“谁能进、进哪扇门(端口)、用什么协议(TCP/UDP/ICMP)、从哪里来(源 IP/安全组)”。只要满足规则,流量就能进;不满足,就会被拦在外面。

AWS账号解封 接下来这篇文章,就专门讲如何在亚马逊云 AWS 中开放端口。我们会从控制台一步步来,并且尽量把每个关键选项背后的逻辑讲明白,避免你“打开了端口却还是连不上”的经典灾难。

准备工作:你得先知道自己要开什么端口

在开始“开放端口”之前,先确认你到底想放行什么。

1)端口号是什么?

比如:

  • AWS账号解封 HTTP:80
  • HTTPS:443
  • SSH:22
  • RDP:3389
  • 数据库(常见示例):MySQL 3306、PostgreSQL 5432

2)协议用什么?

一般端口对应协议:

  • HTTP/HTTPS 通常是 TCP
  • SSH/数据库也多是 TCP
  • UDP 则看你的服务具体要求

3)你希望从哪里访问?

安全组的最重要原则之一:尽量别让 0.0.0.0/0 变成“全宇宙白名单”。能限定就限定,比如仅允许你自己的公网 IP、或者允许来自某个应用的安全组。

如果你只是自己调试服务器,来源 IP 限制通常是最省心也最安全的做法。

第一步:登录 AWS 控制台并进入 VPC 安全组

下面按你在控制台里常见的路径走(不同账号界面可能略有差异,但逻辑相同)。

1)打开控制台

登录 AWS 管理控制台后,在搜索框里输入VPC,进入VPC控制台。

2)找到安全组

在左侧菜单中选择:安全组(Security Groups)

你会看到一堆安全组列表。别慌,别手滑乱点。我们要找到与你的实例(EC2)或网卡相关的那个安全组。

第二步:确认安全组绑定到你的实例(EC2)

开放端口这件事,前提是你要改对“那扇门”。安全组要么绑定在 EC2 实例上,要么绑定在某些弹性网络接口(ENI)上。

怎么确认绑定关系?

你可以:

  • 进入 EC2 控制台,选中你的实例
  • 查看 网络安全 相关信息
  • 找到其挂载的 安全组

如果你不知道实例用的是哪个安全组,就在安全组列表里按名字或描述找。实在不行就先从实例页看。

第三步:编辑安全组并添加入站规则(重点来了)

现在进入正题:我们要把某个端口“放行”。在安全组里,对应的是入站规则(Inbound rules)

1)选择目标安全组

在 VPC 的安全组列表中,勾选你的安全组,然后点击入站规则(Inbound rules)下方的编辑入口,通常会显示为:

编辑入站规则(Edit inbound rules)

2)添加一条规则

点击添加规则,AWS 会让你填写这些字段(不同 UI 可能排列顺序不同,但概念一致):

  • 类型(Type)
  • 协议(Protocol)
  • 端口范围(Port range)
  • 来源(Source)

下面用几个常见场景举例,你就能套用到你的情况。

常见开放端口示例:照着填就能跑

示例 A:开放 SSH(22)给你自己的公网 IP

你要做远程登录(例如用系统自带 ssh、或工具如 SecureCRT、MobaXterm),通常需要:

  • 类型:SSH
  • 协议:TCP
  • 端口范围:22
  • 来源:你的公网 IP/32(例如 203.0.113.10/32)

如果你把来源写成 0.0.0.0/0,那等同于把你的 SSH 门口贴了“欢迎全世界来敲”。当然它可能“能连上”,但不代表你应该这么做——尤其是公网环境,扫描机器人可不是来喝茶的。

示例 B:开放 Web(80)给互联网用户访问

如果你确实要提供公网 Web 服务:

  • 类型:HTTP
  • 协议:TCP
  • 端口范围:80
  • 来源:通常可以是 0.0.0.0/0

如果你希望更安全,建议你把公网访问前面再加上负载均衡器(ALB/NLB)或 WAF。就算今天只开放端口,也别把自己暴露成“裸奔服务器”。

示例 C:开放 HTTPS(443)

HTTPS 对应:

  • 类型:HTTPS
  • 协议:TCP
  • 端口范围:443
  • 来源:0.0.0.0/0(或更严格的来源)

注意:HTTPS 只是端口放行了,但你服务器上还得有 TLS/证书配置。端口只是“门打开了”,不是“服务自动就能用”。

示例 D:开放自定义端口(比如 8080)

如果你的应用用的是自定义端口,比如 8080:

  • 类型:自定义 TCP(Custom TCP)
  • 协议:TCP
  • 端口范围:8080
  • 来源:你的公网 IP/32 或者 0.0.0.0/0

要点是:类型不一定必须选系统预设,你完全可以选择 Custom TCP 自己填端口。

第四步:保存规则并等待生效(它通常很快)

添加完成后,点击保存。AWS 安全组规则一般是立即生效或几秒内生效。

但是如果你还是连不上,别急着怪安全组。因为连通性这事儿常常像“考试你以为填错答案其实是答题卡没涂”,真正原因可能在别处。

第五步:验证是否真的通了(外网/内网都要查)

开放端口不是“配完就算赢”。你需要验证。

验证方法 1:从外部主机测试

如果你开放的是 SSH(22),可以在你的本机运行:

ssh user@你的公网 IP -p 22

AWS账号解封 如果是 Web:

浏览器打开 http://你的公网 IP:80 或 https://你的公网 IP:443

如果是数据库端口,可能需要对应客户端或工具测试连通性。

验证方法 2:从实例内部确认服务在监听

有时你以为“端口开放了”,但实际上你的服务器进程没启动,或者没监听在正确的地址。

你可以在实例里检查(以 Linux 为例):

  • 确认服务是否运行
  • 确认是否在监听端口(例如 netstat/ss)

AWS账号解封 如果服务没起来,你把安全组“开到天上去”也没用。

安全组开放端口,但为什么我还是连不上?排错清单来啦

下面这一段我保证你看了会“啊对对对,这就是我”。因为绝大多数“端口已开但不通”的原因都在这些点上。

问题 1:改错了安全组

比如你打开了 A 安全组,但实例实际用的是 B 安全组。结果当然是:你很努力,连通性完全不买账。

解决:确认实例当前挂载的安全组 ID,与修改的是否一致。

问题 2:忘了改网络 ACL(NACL)或路由/子网设置

安全组不是唯一“门卫”。VPC 里还有网络 ACL,它是另一层过滤规则。

一般情况下,安全组是主要问题,但如果你在一个更复杂的网络里,NACL 可能也拦了。

解决:检查子网的 NACL 入站/出站规则。

问题 3:实例是私有子网,但你拿公网去测

如果实例没有公网 IP,你从公网直接访问当然失败。

解决:检查:

  • 实例是否有公网 IPv4/弹性公网 IP
  • 是否需要通过负载均衡器或堡垒机(bastion)
  • 路由表是否把流量正确导出去

问题 4:服务器本身没监听或防火墙没放行

AWS 安全组只是云层的第一道门。实例内部还可能有:

  • 系统防火墙(ufw、firewalld、iptables)
  • 应用只绑定了本地地址(比如 127.0.0.1)

解决:确认服务监听在 0.0.0.0 或对应网卡地址,并放行本机防火墙对应端口。

问题 5:端口协议写错了(TCP/UDP 搞反)

比如你开放的是 TCP,但你的服务其实用的是 UDP。或者反过来。

解决:核对应用使用的协议与端口。

问题 6:来源 IP 写得太死,结果 IP 不匹配

你可能把来源写成你本机公网 IP,但你其实在换网络、换手机热点,公网 IP 变了。

解决:先用测试 IP 或临时放宽(建议放在短时段),确认后再收回来源限制。

关于“开放端口”的安全建议:别只追求“能连”,也要追求“别作死”

你肯定知道“能用就行”,但我还是想认真说一句:安全组的开放范围就是你的风险边界。你越宽,越容易成为扫描与攻击的靶子。

给你几个务实建议:

  • 优先限制来源:能用你的公网 IP/32 就别用 0.0.0.0/0。
  • 能用安全组引用就别用开放到全网:如果是实例与实例之间通信,可以用“来源安全组”而不是 IP。
  • 只开放必要端口:上线后回头检查,删掉没用的规则。
  • AWS账号解封 不要轻易开放管理端口到公网:例如 SSH(22) / RDP(3389)。建议走堡垒机或 VPN。
  • 配合最小权限原则:安全组开了,系统权限和应用鉴权也别松。

小结:这套流程你记住,基本就不会“开了端口却依然不通”

把整个教程收束成一句话:找到正确的安全组 → 添加正确的入站规则(端口/协议/来源)→ 确认实例绑定关系 → 检查实例内部服务与系统防火墙 → 再做外部连通性验证。

如果你照做,99% 的问题会被你一刀切掉。剩下的那 1% 通常是“网络拓扑太复杂”或“服务根本没跑”,不是什么玄学。

附录:快速自查清单(你可以复制到备忘录里)

  • 我改的安全组,是否确实绑定在目标 EC2 实例上?
  • 入站规则里我填的端口号与协议是否一致?
  • 来源(Source)是否符合当前访问来源 IP/网络?
  • AWS账号解封 实例是否有公网 IP,或我是否通过正确的路径(ALB/NAT/堡垒机)访问?
  • 实例内部服务是否在监听该端口(0.0.0.0 或正确网卡)?
  • 实例操作系统防火墙是否放行对应端口?
  • 子网 NACL 或路由表是否可能拦截?

看完如果你还是卡住,别硬猜。把“你的端口号、协议、来源范围、实例是否有公网、服务是否在监听”这几项信息整理一下,一步步验证,很快就会找到那个“真正卡住你的点”。毕竟云上排错不是玄学,是纪律。

Telegram售前客服
客服ID
@cloudcup
联系
Telegram售后客服
客服ID
@yanhuacloud
联系