AWS账号解封 亚马逊云AWS安全组开放端口教程
开门这事儿,得有门牌号: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 或路由表是否可能拦截?
看完如果你还是卡住,别硬猜。把“你的端口号、协议、来源范围、实例是否有公网、服务是否在监听”这几项信息整理一下,一步步验证,很快就会找到那个“真正卡住你的点”。毕竟云上排错不是玄学,是纪律。

