云服务器迁移后无法访问,通常是因为新实例未绑定原安全组或规则未复制,需在云控制台手动重新配置放行端口。操作前请确认业务端口范围,避免开放 0.0.0.0/0 全端口带来安全风险。
先说结论:迁移产生的新实例通常不会自动继承旧安全组规则,必须手动在控制台绑定或复制规则。
- 先确认:登录云控制台查看实例绑定的安全组 ID 是否与迁移前一致。
- 先处理:在安全组管理页面添加入站规则,放行业务所需端口(如 80、443、22)。
- 再验证:使用 telnet 或 curl 命令测试端口连通性,确认规则生效。
命令速用版
安全组配置主要通过云厂商控制台操作,若使用 CLI 工具,可参考以下通用逻辑查询绑定关系:
查询实例安全组:aws ec2 describe-instances `--instance-ids` i-xxx
查询安全组规则:aws ec2 describe-security-groups `--group-ids` sg-xxx
多数场景建议直接登录网页控制台,在“网络与安全”菜单下找到安全组配置入口,可视化添加规则更不易出错。
为什么会这样
安全组是云厂商提供的虚拟防火墙,绑定在实例 ID 或网卡上,而非操作系统内部。
迁移操作(如镜像复制、跨可用区迁移)往往会生成新的实例 ID 或弹性网卡,原有的安全组绑定关系不会自动跟随数据磁盘迁移。若未手动重新关联,新实例将默认应用默认安全组,通常仅允许内部通信,导致外部无法访问。
分步处理
步骤 1:登录控制台定位实例
进入云服务器管理控制台,找到迁移后的新实例,记录实例 ID 和当前绑定的安全组 ID。
步骤 2:对比安全组规则
进入安全组管理页面,查看当前绑定安全组的入站规则。若规则为空或缺失业务端口,需点击“添加规则”。
步骤 3:配置放行规则
设置协议类型(TCP/UDP)、端口范围(如 80/80)和授权对象(来源 IP)。测试期间可临时开放本机 IP,生产环境建议限制特定 IP 段。
步骤 4:检查操作系统防火墙
云安全组放行后,若仍无法访问,需登录服务器检查内部防火墙(如 firewalld、iptables、ufw)是否拦截了相同端口。
怎么验证是否生效
在本地电脑或另一台服务器上执行测试命令,观察返回结果。
TCP 端口测试:telnet <服务器 IP> <端口号>,若显示 Connected 则通畅。
HTTP 服务测试:curl -I http://<服务器 IP>,若返回 HTTP 状态码则服务正常。
控制台状态:刷新安全组规则列表,确认新规则状态显示为“生效”或“已添加”。
常见坑
默认安全组限制:新实例默认绑定的安全组通常禁止所有外部入站流量,必须手动修改。
方向混淆:无法访问通常是“入站规则”未配置,而非出站规则。
协议不匹配:Web 服务需放行 TCP 协议,若误选 UDP 则无法访问。
多层防火墙:同时存在云安全组、系统防火墙、软件自带防火墙(如宝塔面板),需逐层排查。
常见问题
迁移工具会自动同步安全组吗?
大多数原生迁移工具不会自动同步安全组规则,除非明确选择了“复制安全组”选项。
重启服务器能恢复安全组规则吗?
不能,安全组规则绑定在实例网络接口上,重启不会改变绑定关系,必须手动配置。
内网互通也受影响吗?
是的,若安全组未放行内网网段,同一 VPC 下的其他实例也无法访问该迁移后的服务器。