独立站长必看!Nginx 防扫描 + 反制爬虫终极方案,谁扫谁卡死!

事情是这样的之前就发现服务器宽带有点不正常 不过没有影响网站访问就没管 ,今天下午服务器宽带上行 下行都是10m/s网站访问的一卡一卡的

一、先实时查看当前连接 IP

直接在服务器 SSH 终端 运行:
 
netstat -ntu | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -nr

结果说明:

前面数字 = 连接次数
后面 IP = 访客 / 爬虫 IP
  • 数字很大 = 正在刷你网站
  • 国外 IP + 高连接 = 恶意扫描 / 攻击
  • 我网站请求 1120 154.82.100.29
    764 34.150.97.225
    347 43.248.131.87

    这3个Ip请求大下面是教程

2. 查看 Nginx 访问日志(看详细请求)

tail -f /www/wwwlogs/你的网站.log

二、如何拉黑恶意 IP(彻底屏蔽)

1. 拉黑单个 IP

iptables -I INPUT -s 1.2.3.4 -j DROP

2. 拉黑整个网段(推荐,对付机房肉鸡)

iptables -I INPUT -s 1.2.3.0/24 -j DROP
iptables -I INPUT -s 1.2.0.0/16 -j DROP

3. 强制断开恶意 IP 连接

ss -K dst 1.2.3.4(1.2.3.4这里换成恶意 IP)

4. 查看当前拉黑列表

iptables -L -n

三、前言

适合:宝塔 / 所有 Nginx 环境

 

作用:防机器人扫描、防暴力破解、反制爬虫下载 1000GB 文件

四、作用说明

服务器每天都会被机器人批量扫描:
  • 扫描后台地址
  • 扫描备份文件(zip/sql/rar)
  • 扫描网站漏洞
  • 消耗服务器资源
这套规则:
  • 正常用户 / SEO 完全不受影响
  • 恶意爬虫直接拦截
  • 扫描敏感文件自动跳转 1000GB 下载,卡死扫描器

五、第一步:禁止 IP 直接访问网站(必设置)

作用:拦截 90% 的机器扫描

创建一个空站点(随便填域名),配置文件写入:

nginx

server {
    listen 80;
    listen 443 ssl;
    server_name ~^[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+$;
    return 500;
}

高级设置-默认站点-选择空站点这样ip访问就是500

六、第二步:给你的网站添加【核心安全规则】

只需要在你的网站 Nginx 配置里 添加以下代码

nginx
# ====================== 安全防御规则 ======================
# 1. 拦截恶意爬虫/扫描器/工具
if ($http_user_agent ~* "Python|curl|Wget|Go-http|HttpClient|Nmap|Masscan|Acuentix|Netsparker|Semrush|Ahrefs|DotBot|Censys|MJ12") {
    return 403;
}

# 2. 拦截暴力扫描后台/登录/注册
location ~ ^/(user-sign|login|register|oauth|wp-login) {
    return 403;
}

# 3. 反制扫描:访问敏感文件 → 自动跳转1000GB文件
rewrite \.asp/?$ http://speedtest.tele2.net/1000GB.zip permanent;
rewrite \.zip/?$ http://speedtest.tele2.net/1000GB.zip permanent;
rewrite \.gz/?$ http://speedtest.tele2.net/1000GB.zip permanent;
rewrite \.7z/?$ http://speedtest.tele2.net/1000GB.zip permanent;
rewrite \.sql/?$ http://speedtest.tele2.net/1000GB.zip permanent;
rewrite \.rar/?$ http://speedtest.tele2.net/1000GB.zip permanent;
rewrite \.tar/?$ http://speedtest.tele2.net/1000GB.zip permanent;
rewrite \.bak/?$ http://speedtest.tele2.net/1000GB.zip permanent;
rewrite \.old/?$ http://speedtest.tele2.net/1000GB.zip permanent;
rewrite \.log/?$ http://speedtest.tele2.net/1000GB.zip permanent;

# 4. 禁止访问敏感文件
location ~* (\.user.ini|\.htaccess|\.env|\.git|\.svn) {
    return 404;
}

七、完整使用方法

  1. 打开 宝塔 → 网站 → 你的网站 → 配置文件
  2. 找到 root /www/wwwroot/xxx; 这一行
  3. 下一行粘贴上面的【核心安全规则】
  4. 保存 → 重启 Nginx
  5. 完成!

八、规则效果

  1. 机器人扫描 → 直接拦截(403)
  2. 扫描后台地址 → 直接拦截
  3. 扫描备份文件 → 自动下载 1000GB
  4. 正常用户访问 → 完全正常
  5. 网站真实文件下载 → 完全正常
  6. 下载效果https://www.8l2.cn/1.rar(你服务器不存在的压缩文件访问就是自动下载大小你自己设置我设置的1000gb)

九、可选大小(自己替换)

 
http://speedtest.tele2.net/1000GB.zip
http://speedtest.tele2.net/100GB.zip
http://speedtest.tele2.net/50GB.zip

十、总结

这套规则是独立站长必备安全配置,不影响网站速度、不影响 SEO、不影响正常用户,
但能让恶意爬虫无法扫描、无法破解、被反制卡死
防御一次,安心很久!
© 版权声明
THE END
喜欢就支持一下吧
点赞8 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片快捷回复

    暂无评论内容