最近很多站长网站统计收到“烈马”“总裁”之类的恶意勒索,如果不挂他们的广告那么他们就会针对你的域名做出假墙和污染的攻击,目前网站域名污染最好使用dns清洗服务,下面针对假墙的处理方法做下说明并附上cloudflareAPI自动更换IP的php脚本。
网站域名假墙原理
首先要了解到这个假墙到底是什么样子的原理:网站域名假墙的原理是利用国内防火墙,一些不法分子利用低成本不断的用你的站点的域名向国内发送数据包造成防火墙误认为你的违规,造成对服务器IP大概十多分钟的墙(大概就是这么个原理)。
网站域名假墙利用cloudflare处理方法
废话不多说,我们要用到的工具无非就是上Cloudflare,因为这家CDN公司拥有非常多的IP,并且支持api调用切换,现在一些站长用的是Cloudflare 200美金的套餐,加上一个轮训IP的php插件,可以实现IP的启动切换,这样就算他假墙了一个IP,但是你的前端IP已经切换了,所以造成他的假墙无效,今天在群里看到很多人没有这个api的php脚本,现在给大家发出来:
脚本地址:https://www.caogao.net/php-cloudflare-api-ip
cloudflare API自动更换IP的php脚本
<?php /* 这个是php版的代码 要先准备一台一个站群服务器,建议一整个c段253IP以上的服务器 原理是,假墙封ip几个小时,每1分钟换一次解析,轮流使用250多个ip使其超过他封禁时间 用linux定时任务,每一分钟运行此一次:如新建网站,保存此文件名为q.php,网站端口4521,宝塔提交定时url任务 : http://127.0.0.1:4521/q.php */ $file = './tqdata.txt';// 同目录下新建tqdata.txt文件,里面填个数字 比如 1,用来记录当前使用的 $txt = file_get_contents($file); if ($txt == 254) { $txt = 1; } else { $txt += 1; } $myfile = fopen($file, "w"); fwrite($myfile, $txt); fclose($myfile); $ips = []; for($i=1; $i <=254; $i++){ $ips[$i] = '123.123.123.' . $i;// 自己的ip } $ip = $ips[$txt]; // 进cf解析页f12,找到那条记录,提交,得到下面的提交地址 xxxx是需要替换成自己的 // 第一个XXX是zonesid第二个XXX是域名DNS记录ID $www='https://api.cloudflare.com/client/v4/zones/xxxx/dns_records/xxxx'; $datawww = array( "type"=>"A", "name"=>"www.domain.com", "content"=>$ip, "ttl"=>120, "proxied"=>false ); curl_get($www,$datawww); function curl_get($url,$data) { $ch = curl_init(); $headers = array( 'X-Auth-Email:自己cf的账号', 'X-Auth-Key:自己cf的key', 'Content-Type:application/json' ); $data = json_encode($data); $ch = curl_init(); //初始化CURL句柄 curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); curl_setopt($ch, CURLOPT_URL, $url); //设置请求的URL curl_setopt($ch, CURLOPT_RETURNTRANSFER,1); //设为TRUE把curl_exec()结果转化为字串,而不是直接输出 curl_setopt($ch, CURLOPT_CUSTOMREQUEST,"PUT"); //设置请求方式 curl_setopt($ch, CURLOPT_POSTFIELDS, $data);//设置提交的字符串 curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); // 信任任何证书 curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2); // 检查证书中是否设置域名 $output = curl_exec($ch); curl_close($ch); return json_decode($output,true); }
X-Auth-Key 和 zonesid 所在地方:
你从cloudflare首页进去,点击自己的域名,右下角就可以看到
Zoneid可以直接复制,每个域名是不一样的.
ZONEID和域名DNS记录ID的获取:
红圈内就是DNS记录ID
对应的ID自己对照自己的cloudflare账户修改即可,下面附上一些cloudflare高质量IP段,如果有大牛可以做个更好的插件
CloudFlare优选IP段
172.64.32.1/24 (推荐移动,走香港)
104.28.14.0/24 (推荐移动,走新加坡)
104.23.240.0-104.23.243.254 (推荐联通、移动,线路未知)
108.162.236.1/24 (推荐联通,走美国)
104.20.157.0/24 (推荐联通,走日本)
104.16.160.1/24 (推荐电信,走洛杉矶)
172.64.0.0/24 (推荐电信,走旧金山)
172.64.32.* (走欧洲)
CloudFlare的百度云合作IP段
162.159.208.4-162.159.208.103
162.159.209.4-162.159.209.103
162.159.210.4-162.159.210.103
162.159.211.4-162.159.211.103
162.159.211.4-103
103.21.244.0/22
103.22.200.0/22
103.31.4.0/22
104.16.0.0/12
108.162.192.0/18
131.0.72.0/22
141.101.64.0/18
162.158.0.0/15
172.64.0.0/13
173.245.48.0/20
188.114.96.0/20
190.93.240.0/20
197.234.240.0/22
198.41.128.0/17
网友收集的CloudFlare国内线路友好IP段
108.162.236.1/24 联通 走美国
172.64.32.1/24 移动 走香港
104.16.160.1/24 电信 走美国洛杉矶
172.64.0.0/24 电信 美国旧金山
104.20.157.0/24 联通 走日本
104.28.14.0/24 移动 走新加坡
网友关于各线路推荐列表:
电信:推荐走圣何塞,例:104.16.160.* 或者上面的百度云合作 IP
移动:推荐走移动香港,例:172.64.32.* 141.101.115.* 或者 104.23.240.0-104.23.243.254
联通:没发布什么好线路,可走圣何塞。例:104.16.160.* 或者 104.23.240.0-104.23.243.254 。也可以试一下走亚特兰大 108.162.236.*
防止被CloudFlare封域名
自定义CloudFlare的节点IP,有几率被CloudFlare封掉,不过也很容易解决,我们也可以利用DNS智能解析,将默认/国外按照CloudFlare给的CNAME记录 使用CNAME解析,然后国内我们就按照三网智能解析自定义IP ,这样就可以防止被CloudFlare封域名啦。
好了这个就是目前市面上的域名被假墙的主流处理方法!