查询占用最多流量的IP,通常需要使用服务器上的流量分析工具。以下是几种常用的方法:
1. 使用命令行工具实时监控
a. iftop(需安装)
安装:sudo apt install iftop(Debian/Ubuntu)或 sudo yum install iftop(CentOS/RHEL)
运行:sudo iftop -P
按 P 显示端口,按 Shift+S 查看源IP流量,按 Shift+D 查看目标IP流量。
退出按 Ctrl+C。
b. nethogs(按进程监控)
安装:sudo apt install nethogs 或 sudo yum install nethogs
运行:sudo nethogs
直接显示每个进程的实时流量。
2. 分析日志文件(Web服务器日志)
a. Apache 日志分析
日志路径通常为 /var/log/apache2/access.log(Ubuntu)或 /var/log/httpd/access_log(CentOS)。
使用命令统计IP流量:
awk '{print $1}' /var/log/apache2/access.log | sort | uniq -c | sort -nr | head -20
b. Nginx 日志分析
日志路径通常为 /var/log/nginx/access.log。
统计IP流量:
awk '{print $1}' /var/log/nginx/access.log | sort | uniq -c | sort -nr | head -20
3. 使用网络流量分析工具
a. vnStat(长期流量统计)
安装:sudo apt install vnstat 或 sudo yum install vnstat
查看每日/每月流量:vnstat -d 或 vnstat -m
b. iptables 统计(需配置规则)
添加iptables规则记录流量:
iptables -I INPUT -j ACCEPT
iptables -I OUTPUT -j ACCEPT
查看统计:sudo iptables -L -n -v
4. 使用专业监控工具
a. NetFlow/sFlow 分析
工具:nfdump, ntopng
示例(nfdump):
nfdump -r /var/log/netflow.log -s ip/bytes -n 10
b. Web控制面板工具
宝塔面板:网站监控报表 → IP访问统计。
cPanel:Awstats 或 Webalizer 报表。
5. 排查异常流量(DDoS/爬虫)
检查是否有单一IP大量请求:
netstat -ntu | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -n | tail -20
结合 tcpdump 抓包分析:
tcpdump -i eth0 -n src host 可疑IP -w capture.pcap
快速步骤建议
实时查看:用 iftop 或 nethogs。
历史分析:分析Web服务器日志(Apache/Nginx)。
长期监控:安装 vnStat 或 ntopng。
面板用户:直接用宝塔/cPanel等面板的流量统计功能。
声明:本文为原创文章,版权归旷野小站所有,欢迎分享本文,转载请保留出处!