需通过CDN隐藏源站IP,具体包括:一、选用支持IP隐藏的CDN并配置代理与HTTPS回源;二、禁用源站裸IP访问,仅允许可信CDN IP段访问;三、清理DNS历史、WHOIS、SSL证书等泄露痕迹;四、配置WAF校验CF头并拦截异常请求;五、定期检测IP是否仍可被探测。

如果您希望保护网站免受直接IP攻击,防止黑客通过域名解析获取源站真实IP地址,则需要通过CDN服务对源站IP进行有效隐藏。以下是实现该目标的具体操作步骤:
一、选择支持IP隐藏的CDN服务商
并非所有CDN产品默认启用IP隐藏功能,需确认所选服务商支持“仅限CDN回源”或“源站IP保护”机制,并关闭源站裸IP访问权限。部分服务商还提供强制HTTPS回源与IP白名单联动能力。
1、登录Cloudflare官网,注册账号并添加您的域名。
2、在DNS设置页中,将域名的A记录或CNAME记录状态切换为橙色云朵图标(Proxied),确保流量经Cloudflare代理。
3、进入“SSL/TLS” → “Origin Server”,点击“Create Certificate”,生成并下载证书与私钥。
4、将证书上传至源服务器Web服务(如Nginx或Apache),配置强制HTTPS回源及SNI支持。
二、禁用源站HTTP明文访问入口
即使CDN已启用,若源站仍开放80/443端口且未限制访问来源,攻击者可能通过端口扫描或历史DNS记录反查暴露IP。必须切断非CDN路径的直接访问通道。
1、登录云服务器控制台,进入安全组规则设置页面。
2、删除或禁用允许0.0.0.0/0访问80和443端口的入方向规则。
3、新增两条入方向规则:源地址设置为Cloudflare全球数据中心IP段(如173.245.48.0/20),端口范围为80,443,协议为TCP。
4、保存规则后,在终端执行curl -I http://your-domain.com验证响应头是否含cf-ray字段,确认请求已由CDN中转。
三、清除历史DNS缓存与公开信息痕迹
旧的DNS解析记录、WHOIS信息、SSL证书透明日志或第三方测速平台缓存均可能导致真实IP泄露。需系统性清理所有可被检索到的关联数据。
1、访问DNS历史记录查询网站(如securitytrails.com),输入域名查看过往A记录,对已暴露的IP提交删除申请。
2、登录域名注册商后台,将WHOIS隐私保护功能设为开启状态,隐藏管理员邮箱与物理地址。
3、使用crt.sh搜索该域名对应的SSL证书历史,若发现含源站IP的证书,联系签发机构撤销并重新申请仅绑定域名的新证书。
4、检查百度、Google等搜索引擎是否缓存了服务器响应中的X-Powered-By或Server头,通过Web服务器配置移除该头部输出。
四、配置Web应用防火墙(WAF)规则拦截异常回源请求
即便源站仅响应CDN节点,仍需防范伪造CF-Connecting-IP头或绕过CDN直连源站的行为。WAF可在请求抵达Web服务前完成合法性校验。
1、在Nginx配置文件中添加map模块,定义合法CDN IP可信变量:
2、在server块内插入if判断逻辑:拒绝所有未携带CF-Connecting-IP头或X-Forwarded-For头的请求。
3、启用mod_security或ngx_waf模块,加载OWASP Core Rule Set规则集,屏蔽常见扫描特征UA与路径。
4、重启Nginx服务并使用curl模拟非CDN请求测试拦截效果:curl -H "Host: example.com" http://your-real-ip应返回403。
五、定期验证真实IP是否仍可被探测
隐蔽效果具有时效性,需建立常态化检测机制,避免因配置变更、新接口上线或第三方服务集成导致IP意外暴露。
1、使用在线工具(如ipcheck.host或viewdns.info)查询当前域名解析出的IP地址。
2、执行dig A your-domain.com +short与dig CNAME your-domain.com +short对比结果是否一致指向CDN节点。
3、访问http://your-domain.com/.git/HEAD、/phpinfo.php等高危路径,确认返回404或CDN自定义错误页而非源站响应。
4、在VPS上运行nmap扫描命令:nmap -sT -p 80,443 your-real-ip,预期结果应显示所有端口为filtered或closed。










