1、简介
conntrack-tools 是一套Linux用户空间连接跟踪工具,用于系统管理员进行交互连接跟踪系统。它包括了用户空间的守护进程conntrackd和命令行界面conntrack。
2、安装
下载连接:https://pkgs.org/download/conntrack
需要一些其他依赖:这个就不介绍怎么下载安装了。大家自己搞下吧
测试:安装好conntrack-tools之后,执行conntrack测试,如帮助信息打印,则安装成功。
3、使用
查看系统正式追踪表信息(包括系统目前正在追踪的连接信息):
conntrack -L conntrack
查看unconfirmed链表信息(包括系统没有被加入到正式追踪表、但又没有删除出unconfirmed链表的信息):
conntrack -L un
查看dying链表信息:(包括已经失效的连接,但还没有完全清除系统资源)
conntrack -L dy
查看各个表中总共连接数:
正式追踪表计数: conntrack -L conntrack | wc -l
unconfirmed追踪表计数: conntrack -L un | wc -l
dying追踪表计数: conntrack -L dy | wc -l
统计tcp连接的各状态和条数:
正式追踪表: conntrack -L conntrack | awk '/^.*tcp.*$/ {count[$4]++} END {for(state in count) print state, count[state]}'
(如图标示当前正式跟踪表的tcp连接中,ESTABLISHED有4个,TIME_WAIT有1个)
unconfirmed追踪表: conntrack -L un | awk '/^.*tcp.*$/ {count[$4]++} END {for(state in count) print state, count[state]}'
dying追踪表: conntrack -L dy | awk '/^.*tcp.*$/ {count[$4]++} END {for(state in count) print state, count[state]}'
统计udp连接的各状态和条数:(将tcp部分标红内容替换为udp即可)
记录数最多的10个ip(统计src端)
正式追踪表: conntrack -L conntrack | awk '{print $5}' | cut -d "=" -f 2 | sort | uniq -c | sort -nr | head -n 10
(如图所示,标示目前系统收到来自172.16.0.5的连接数最多,有4个,其他以此类推。)
unconfirmed追踪表:conntrack -L un| awk '{print $5}' | cut -d "=" -f 2 | sort | uniq -c | sort -nr | head -n 10
dying追踪表:conntrack -L dy| awk '{print $5}' | cut -d "=" -f 2 | sort | uniq -c | sort -nr | head -n 10
说在最后:
如果系统nf_conntrack_count = nf_conntrack_max但conntrack -L conntrack查看到的连接数远远小于nf_conntrack_count,则有可能连接被存在了内核uncomfirmed连接表中,可通过之后的命令查看,从而进一步了解nf_conntrack_count溢出的原因。