千家信息网

Linux VPS下怎么解决CC攻击

发表于:2026-11-03 作者:千家信息网编辑
千家信息网最后更新 2026年11月03日,今天小编给大家分享一下Linux VPS下怎么解决CC攻击的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我
千家信息网最后更新 2026年11月03日Linux VPS下怎么解决CC攻击

今天小编给大家分享一下Linux VPS下怎么解决CC攻击的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。

一,准备工作
  1,登录进vps控制面板,准备好随时重启vps。
  2,关闭web server先,过高的负载会导致后面的操作很难进行,甚至直接无法登录ssh。
  3,以防万一,把设置的web server系统启动后自动运行去掉。
  (如果已经无法登录进系统,并且重启后负载过高导致刚刚开机就已经无法登录,可联系管理员在母机上封掉vps的ip或80端口,在母机上用虚拟控制台登录进系统,然后进行2&3的操作,之后解封)
二,找出攻击者ip
  1,在网站根目录建立文件ip.php,写入下面的内容。

复制代码 代码如下:

  $real_ip = getenv('http_x_forwarded_for');
  if(isset($real_ip)){
  shell_exec("echo $real_ip > real_ip.txt");
  shell_exec("echo $_server['remote_addr']> proxy.txt");
  }else{
  shell_exec("echo $_server['remote_addr'] > ips.txt")"
  }
  echo'服务器受到攻击,正在收集攻击源,请在5分钟后访问本站,5分钟内多次访问本站有可能会被当作攻击源封掉ip。谢谢合作!';
  ?>

  2,设置伪静态,将网站下的所有访问都rewrite到ip.php。
  nginx规则:

复制代码 代码如下:

  rewrite (.*) /ip.php;
  lighttpd规则:
  url.rewrite = (
  "^/(.+)/?$" => "/ip.php"
  )

  3,启动web server开始收集ip
  进行完1和2的设置后,启动web server,开始记录ip信息。
  收集时间建议为3到5分钟,然后再次关闭web server。
  real_ip.txt,这个文件中保存的ip有80%以上都相同的,这个ip就是攻击者实施攻击的平台的ip。
  proxy.txt,这个文件中保存的是攻击者调用的代理服务器的ip,需要封掉。
  ips.txt,这里记录的是未表现出代理服务器特征的ip,根据访问次数判断是否为攻击源。
三,对上一段的补充
  如果vps上启用了web日志,可以查看日志文件的增长速度来判断是哪个站点被攻击。
  如果没有启用日志,并且站点数量很少,临时启用日志也很方便 。
  如果没有启用日志,并且站点数量过多,可以使用临时的web server配置文件,不绑定虚拟主机,设置一个默认的站点。然后在ip.php里加入下面一行
  shell_exec("echo $_server['http_host']>> domain.txt");
  domain.txt里将保存被访问过的域名,被cc攻击的站点将在里面占绝大多数。
四,开始封堵ip
  建立文件ban.php

复制代码 代码如下:

  $threshold = 10;
  $ips = array_count_values(file('ips.txt'));
  $ban_num = 0;
  foreach($ips as $ip=>$num){
  if($num > $threshold){
  $ip = trim($ip);
  $cmd = "iptables -i input -p tcp --dport 80 -s $ip -j drop";
  shell_exec($cmd);
  echo "$ip baned! ";
  $ban_num ++;
  }
  }
  $proxy_arr = array_unique(file('ips.txt'))'
  foreach($proxy_arr as $proxy){
  $proxy = trim($proxy);
  $cmd = "iptables -i input -p tcp --dport 80 -s $ip -j drop";
  shell_exec($cmd);
  echo "$ip baned! ";
  $ban_num ++;
  }
  echo "total: $ban_num ips ";
  ?>

  用下面的命令执行脚本(确保php命令在path中)
  php ban.php
  这个脚本依赖于第二段中ips.txt里保存的结果,当其中记录的ip访问次数超过10次,就被当作攻击源给屏蔽掉。如果是代理服务器,则不判断次数直接 封掉。
  封完ip之后,把所有的网站设置恢复正常,站点可以继续正常运行了。
  运行去掉。
五,一些细节
  为保持对操作过程的描述尽量简洁,没有在上面的内容中加入过多的解释,留在这段统一讲述。
  1,关于"代理服务器"的一些本质
  两个与tcp&http协议相关的值,remote_addr和http_x_forwarded_for。
  (1)remote_addr总是取离web服务器最接近的一台主机的ip,如果没有使用代理,这个值就是访问者本身的ip,如果使用了代理,这个值就是 代理服务器的ip,如果通过多个代理服务器进行的连接,这个值就是到达web服务器前最后一台代理服务器的ip。
  remote_addr是由tcp/ip层决定的,不能修改不能伪造。
  (2)http_x_forwarded_for,因为这个值是属于http部分,而不是tcp/ip,所以这个值不管是什么,都不影响数据的传输。事实 上,一般情况下,如果是访问者直接访问web服务器,这个值为空;通过透明代理的时候,这个值会被代理服务器设置为访问者的ip;通过匿名代理连接时,这 个值可能为代理服务器的ip也可能是空的也有可能是随机的。
  http_x_forwarded_for可以被任意修改。大多数代理服务器都是透明代理,也就是说,会把这个值设置为最原始访问者的ip。
  2,关于解决cc攻击的层面问题
  按处理效率从高到低排列。
  (由于本文是针对vps服务器所写,而vps简单来说就是服务器的低端替代品,内存和cpu等资源普遍偏低,当然是处理效率越高越好。)
  (1)网络传输层。也就是本文所用的iptables,这个工具本身是工作于系统内核,在建立网络连接时直接把攻击者的连接给否了。在这一层面上将攻击源处理掉后,消耗掉的资源几乎可以忽略不计。
  (2)web server层,大多数web server都可以设置禁止访问的ip。在这一层上解决的意义和上面的差不多,但是效率要差些。
  (3)脚本层,从脚本程序上制定适合于本身的策略过滤掉攻击源。网络上有很多流传的在这一层面的解决方案,但是不太适用于vps,而且设置难度可能要增加几倍或者几十倍。
  3,为什么不是从日志收集ip?
  主要是考虑两点,一是大多数vps使用者都因为硬盘空间过小,经常清除日志很麻烦,而直接禁止了日志。
  二是如果从日志收集ip,脚本复杂程度要高很多,而且可能要根据情况做些调整。

以上就是"Linux VPS下怎么解决CC攻击"这篇文章的所有内容,感谢各位的阅读!相信大家阅读完这篇文章都有很大的收获,小编每天都会为大家更新不同的知识,如果还想学习更多的知识,请关注行业资讯频道。

攻击 服务器 服务 代理 日志 代码 就是 文件 站点 脚本 面的 登录 内容 攻击者 知识 篇文章 系统 访问者 层面 效率 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 互联网络科技 科技企业和互联网企业 金融科技创新监管互联网金融 与互联网科技公司 汇久创客互联网科技 互联网科技logo设计 滨湖区互联网智能科技产品供应 中国互联网有什么科技含量 以后互联网后是啥科技 汽车互联网创新科技园 中化能源互联网科技招聘 互联网科技商业 互联网数据科技专业 科技互联网的核心竞争力 智帮互联网科技公司最近动向 宇信科技在杭州互联网排第几 求路客互联网科技电话 互联网科技创业有什么好项目 知域互联网科技有限公司官网 广州全民伙伴互联网科技有限公司 互联网下的科技发展 互联网络科技有限公司 朗涯互联网科技 互联网科技创新企业排名 顶级互联网科技成果有哪些 互联网和黑科技的看法 众安科技工业互联网合作 上海万顺科技互联网有限公司招聘 互联网领先科技活动 福仕德教育科技互联网
0