最稳妥的做法是在 EC2 关联的安全组入站规则中,将 80 端口的源地址设置为你的特定 IP 地址(CIDR 格式 /32),并移除原本开放的 0.0.0.0/0 规则。
先说结论:安全组默认拒绝所有入站流量,需显式添加允许规则。限制 80 端口仅对特定 IP 开放可降低被扫描和攻击的风险,但操作不当会导致无法访问服务。
- 先判断:确认当前操作机器的公网 IP,并确保该 IP 在允许列表中后再删除旧规则,避免锁死。
- 优先做:在入站规则中添加 TCP 80 端口,源设置为你的公网 IP/32。
- 再验证:修改后立即使用外部网络测试端口连通性,确保规则生效且未误锁。
命令速用版
如果你习惯使用 AWS CLI,可以通过以下命令快速添加规则。请将 sg-12345678 替换为你的安全组 ID,203.0.113.0 替换为允许访问的具体 IP。
aws ec2 authorize-security-group-ingress \
`--group-id` sg-12345678 \
`--protocol` tcp \
`--port` 80 \
`--cidr` 203.0.113.0/32若要删除原本开放的 0.0.0.0/0 规则,需先查看现有规则详情,确认新规则生效后,再使用 revoke-security-group-ingress 命令移除。
为什么会这样
AWS 安全组(Security Group)充当实例的虚拟防火墙,控制进出流量。它的核心机制是“白名单”:默认情况下,所有入站流量都被拒绝,只有你明确允许的规则才会放行。
将源地址设置为 0.0.0.0/0 意味着允许互联网上任何 IP 访问该端口,这会暴露服务给全网扫描器。限制为特定 IP(CIDR 后缀为 /32 表示单个 IP)可以显著减少攻击面,只允许可信来源连接。
分步处理
以下是通过 AWS 管理控制台进行配置的具体步骤,请严格按顺序操作以防失联:
- 查询当前公网 IP:在浏览器搜索"what is my ip",记录当前操作机器的公网 IP 地址。注意:必须是当前用来管理 AWS 控制台这台机器的 IP,否则保存后你将无法访问服务。
- 找到安全组:登录 AWS 控制台,进入 EC2 Dashboard,在左侧菜单选择“安全组”。找到关联到你目标实例的安全组 ID。
- 编辑入站规则:选中该安全组,点击下方的“入站规则”标签页,然后点击“编辑入站规则”。
- 添加特定 IP 规则:
- 点击“添加规则”。
- 类型选择