发布时间:2021-11-23来源:古典技术网
今天无意间看到了一篇关于烈火和总裁的假墙消息和做联盟的朋友聊了聊,说今年被搞死很多网站,查了下解决应对方案还挺多的,刚好朋友的站也被攻击了,我就抽空给他弄了下。原理是,假墙封ip几个小时,每1分钟换一次解析,轮流使用250多个ip使其超过他封禁时间
用linux定时任务,每一分钟运行此一次:如新建网站,保存此文件名为g.php,网站端口1122,宝塔提交定时url任务 : http://127.0.0.1:1122/g.php
被假墙IP除了网站端口外其他的端口是能正常访问的。
1、用CDN轮播IP进行解决,这种成本比较高,一台站群256IP的美国机器基本是在900-1600左右,当然你也可以用125IP进行轮换,根据自己实际被打情况而定。(CDN系统后台直接轮换IP的有那么几家自己去查,如果没找到就用第二种办法)
2、同样准备好IP用DNS的API接口用脚本自动检测轮换,这种办法感觉没CDN清洗的干净,攻击力度大不建议使用
3、备案换国内机器
一般我会使用第二种办法解决方法如下:
注意:CF不能开启CDN,也就是解析的时候云朵要关掉,另外需要执行的PHP文件最好用另外台机器的宝塔计划去执行
另外我这个办法只能用时间轮播,不能自动PING被墙IP,对于大部分情况足以解决,256分钟的轮换,不行就自己加多IP
下面是轮换IP脚本:
<?php
$file = './gudiancom.txt'; //同目录下新建gudiancom.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++){ //这里是你站群机器的IP总数,根据自己IP修改
$ips[$i] = '123.123.123.' . $i; //这里设置站群的IP
}
$ip = $ips[$txt];
// 进cf解析页f12,找到那条记录,提交,得到下面的提交地址 xxxx是需要替换成自己的
$www='https://api.cloudflare.com/client/v4/zones/XXXXXXXXXXXX/dns_records/XXXXXXXXXXXXX';
$datawww = array(
"type"=>"A",
"name"=>"www.gudian.com", //自己域名
"content"=>$ip,
"ttl"=>120,
"proxied"=>false
);
curl_get($www,$datawww);
function curl_get($url,$data)
{
$ch = curl_init();
$headers = array(
'X-Auth-Email:gudian@gmail.com', //自己CF账号
'X-Auth-Key:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX', //自己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);
}
转载请注明出处:古典技术网
本页地址:https://www.gu90.com/chengxu/139.html