我有一个 KVM 节点,其中只有 7 个 VM 实例。当启用 GigE 上行链路端口时,服务器连接会变得非常快,不知何故达到 300MBps 以上。我无法追踪哪个 IP 可能受到攻击,反之亦然(在 Observium 中显示为传出峰值而不是传入峰值)。
我的问题是 netstat 没有提供任何信息。我想具体知道连接来自哪里,是进还是出,以及哪个特定的 IP,甚至是 VM 服务器。
我在 KVM 节点上运行 64 位 Centos 6.8。
[root@server ~]# netstat -anp |grep 'tcp|udp' | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -n
[root@server ~]# netstat -ntu | grep ESTAB | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -nr
3 xxx.xxx.xxx.xxx
1 8.8.8.8
[root@server ~]# netstat -plan|grep :80|awk {'print $5'}|cut -d: -f 1|sort|uniq -c|sort -nk 1
[root@server ~]# netstat -n -p | grep SYN_REC | sort -u
[root@server ~]# netstat -n -p | grep SYN_REC | awk '{print $5}' | awk -F: '{print $1}'
[root@server ~]# netstat -ntu | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -n
1 8.8.8.8
1 Address
1 servers)
4 xxx.xxx.xxx.xxx
[root@server ~]# netstat -an | grep :80 | sort
[root@server ~]# netstat -n|grep :80|cut -c 45-|cut -f 1 -d ':'|sort|uniq -c|sort -nr|more
[root@server ~]# netstat -an | grep ESTABLISHED | awk '\''{print $5}'\'' | awk -F: '\''{print $1}'\'' | sort | uniq -c | awk '\''{ printf("%s\t%s\t",$2,$1); for (i = 0; i < $1; i++) {printf("*")}; print ""}'\''
> ^C
[root@server ~]# netstat -an | grep :80 | sort
[root@server ~]# netstat -n -p|grep SYN_REC | wc -l
0
[root@server ~]# netstat -n -p | grep SYN_REC | sort -u
[root@server ~]# netstat -ntu | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -n
1 xxx.xxx.xxx.xxx
1 Address
1 servers)
4 xxx.xxx.xxx.xxx
[root@server ~]# netstat -anp |grep 'tcp|udp' | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -n
[root@server ~]# netstat -plan|grep :80|awk {'print $5'}|cut -d: -f 1|sort|uniq -c|sort -nk 1
[root@server ~]#
答案1
虽然 netstat 中没有显示任何内容很有趣,但您可以从另一个角度解决这个问题。如果某个东西的发送速度为 300 MB/s,则很可能占用大量 CPU ... 尝试运行top
并根据使用最多 CPU 的服务相应地检查日志。