服务器IP遭到攻击或者被封禁,不少运维人员都碰到过。很多人第一反应慌乱,不清楚联系谁、该做哪些操作。梳理清楚思路就简单:先确认封禁层级,查清封禁主体和原因,再决定提交申诉解封,或者直接更换IP。
先判断封禁发生在哪一层。很多时候并不是IP被外部封禁,而是自身安全组或者服务器防火墙拦截流量。超过六成所谓IP被封案例,根源来自安全组配置。最常见错误就是入站规则放行全部IP、全部端口,服务器裸奔,扫描脚本几分钟就能探测到,暴力破解、漏洞攻击接踵而至,服务商异常流量检测触发,直接封禁IP。还有一种情况,安全组放行80端口,但服务器内部iptables或者firewalld配置DROP规则拦截80端口流量,外部流量过了安全组,却被服务器本地防火墙拦截,这种双重拦截排查难度更高。遇到无法连接,不要立刻联系客服,先登录云控制台检查安全组规则和服务器内部防火墙状态,能省去大量沟通时间。

确认本地配置无误,IP依旧无法访问,大概率被服务商或者运营商封禁。最常见类型是黑洞封锁。服务器遭受大规模DDoS攻击,流量超出机房防护阈值,运营商为了保护骨干网络,把该IP所有流量丢入黑洞,数据包全部丢弃。触发阈值一般攻击流量超过10Gbps,常规封锁时长两到四小时,如果攻击持续,封禁时间会延长。腾讯云封堵默认时长两小时,最长可达二十四小时,如果频繁触发封堵,服务商有权下调封堵阈值。判断黑洞封锁简单,ping目标IP,返回Destination Host Unreachable或者数据包卡在运营商网关,基本就是黑洞。
还有一类封禁和网络攻击无关,属于内容或者使用违规。服务器存放违规内容被监管部门通报,或是服务器被黑客入侵变成肉鸡,向外发送垃圾邮件、发起网络攻击,服务商监测系统识别后直接封IP。私自搭建VPN代理类服务,运营商禁止这类行为,查到也会封禁IP。这类封禁通常处罚较重,解封难度大,就算解封,如果违规内容或者恶意程序没有清理干净,很快会再次封禁。
确认属于服务商层面封禁,下一步联系客服提交工单,这是最高效处理方式。登录服务商后台工单系统或者拨打客服热线,提供服务器IP、账号信息、故障现象,确认封禁类型和原因。临时封禁和永久封禁处理方案完全不同,临时封禁等待到期自动解除即可;永久封禁需要提交申诉材料。申诉材料准备尽量完整,服务器业务用途说明、攻击流量截图、防护整改承诺文档,资料越详实,审核越快。腾讯云用户可以直接控制台提交申诉,附带业务正常运行截图和主体资质证明。华为云企业主机安全服务中,被拦截IP可以控制台手动解除拦截,或是等待系统检测攻击停止后自动恢复。
申诉等待期间不要空等,尽快切换业务流量。如果有备用IP,修改DNS的A记录指向新IP,TTL调整为60秒,加快解析生效速度。使用负载均衡的业务,替换后端服务器组为备用实例。部署CDN的站点,修改源站IP为未被封禁地址。有游戏企业遭遇40Gbps UDP攻击,三十秒内把域名解析切换到备用IP池,业务中断时长控制在五分钟内。
申诉失败或者不想等待解封,更换IP是最直接方案。主流云服务商支持控制台更换公网IP。腾讯云操作路径,登录控制台进入服务器实例,在网络与安全选项找到公网IP,点击切换IP。存在限制:单个账号同一地域每日更换上限三次,单台实例仅允许更换一次公网IP,更换之后原有IP释放。阿里云用户可以把公网IP转为弹性公网IP,绑定新弹性IP完成切换。AWS在EC2控制台分配新弹性IP重新绑定实例。虚拟主机或者共享IP用户,联系主机商提交工单,后台分配新IP,一般十五到三十分钟完成。
更换IP有一点需要提前考量,新IP不一定干净。部分IP段历史被用来发送垃圾邮件或者作为攻击跳板,新IP启用之后就会被各类平台限制。更换IP之后,不要马上把域名解析切过去,先用itdog.cn这类国内检测工具做全球ping测试,验证国内外访问正常。如果国内访问正常,海外访问超时,代表IP可能被墙,建议再次更换。
部分场景单纯换IP解决不了问题。如果IP被国际反垃圾邮件黑名单收录,更换IP只是临时规避,需要查询当前IP命中哪些黑名单,向对应黑名单管理机构提交申诉。各大黑名单数据库官网都有申诉页面,说明情况并承诺整改,封禁原因不严重的话,几天内可以移除。查询黑名单可以使用DNSBL方式,IP地址反向拼接黑名单域名,用nslookup查询。
IP被墙的情况,国内无法访问但海外正常,基本没有申诉渠道。最快处理方式联系服务商更换新IP,网站迁移到新IP环境。但更换IP之后,如果继续原有违规操作,新IP依旧会被墙,需要先定位被墙根源。
事前防护远比事后补救重要。服务器部署高防IP或者高防CDN,隐藏源站真实IP,所有访问流量经过清洗节点过滤,攻击者无法获取真实服务器地址。定期检查安全组规则,不要为省事全开所有端口,Web服务只开放80和443端口,远程管理端口限定自身固定IP访问。部署监控工具持续监测CPU、带宽、TCP连接数量,设置阈值告警,流量异常第一时间收到提醒,比封禁之后再排查问题要好。SSH默认22端口修改为其他端口,禁止root账号直接远程登录,这类简单操作,能拦截绝大多数自动化扫描脚本。