利用conntrack-tools 工具查看系统追踪连接信息

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溢出的原因。

conntrack-tools是一个用于连接跟踪的工具,它的工作原理是通过在内核层面创建一个连接跟踪表,然后将所有的连接信息都存储在这个连接跟踪表中,从而让用户可以在上层应用程序中通过查询这个连接跟踪表来获取连接的相关信息。 为了能够运行conntrack-tools,我们需要安装一些依赖包,这些依赖包如下: 1. libmnl:这是一个库,它以可扩展的方式提供了对Netlink协议的访问,它是conntrack-tools的第一个依赖包。 2. libnfnetlink:这也是一个库,它提供了一些操作Netfilter-related sockets的函数,这个库也是conntrack-tools的必须依赖包。 3. libnetfilter_conntrack:这个库提供了一些操作Netfilter连接跟踪表的函数,这也是conntrack-tools的必须依赖包之一。 4. libnetfilter_cttimeout:这个库提供了一些关于连接跟踪定时器的函数,它依赖于libnetfilter_conntrack。 5. libnetfilter_cthelper:这个库提供了一些操作连接跟踪helper模块的函数,它依赖于libnetfilter_conntrack。 6. libnetfilter_queue:这个库提供了一个访问Netfilter队列的接口,它是conntrack-tools的可选择依赖包,如果您不打算使用Netfilter队列,请不要安装它。 7. libevent:这是一个事件处理库,它为conntrack-tools提供了异步处理事件的能力,这也是一个可选择依赖包,如果您需要异步处理事件,请安装它。 总的来说,上述的依赖包中,libnfnetlink、libnetfilter_conntrack和libmnl是最重要的,并且它们是conntrack-tools必须依赖包。而其他的库主要是为了提供一些特定的功能而存在的,如果您不需要使用这些特定的功能,那么它们就是可选择依赖包,可以不用安装。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值