pftop是一个命令行工具,用于实时监控和显示pfSense防火墙的流量和连接状态。它主要用于查看有关 pf (Packet Filter) 过滤器的各种统计信息,对监控网络流量,排查网络故障非常有用。
pfSense防火墙提供了Web端的控制程序,OPNsense只提供了命令行命令,博主编写了一个Web端的控制程序,可以点击这里下载使用。下面以pfSense为例介绍pftop的使用方法。
功能特点
pftop可以显示以下信息:
- 流量统计:传入和传出的流量:可以查看每个连接的流量统计,包括传入(ingress)和传出(egress)的数据包数量和字节数。
- 连接状态:pftop会列出当前所有活动的连接,包括源IP、目标IP、端口、协议等信息。有助于查看哪些连接是活跃的,哪些可能存在异常流量。
- 连接超时:它显示连接的生命周期,帮助你识别哪些连接可能由于超时或被关闭而中断。
- 匹配规则:pftop会显示数据包与防火墙规则的匹配情况,帮助你了解哪些规则正在被触发以及相应的流量情况。
- 协议分析:pftop能够显示不同协议(如TCP、UDP、ICMP等)的数据包和字节数,帮助你监控不同类型流量的使用情况。
- 高流量连接:它会列出消耗最多流量的连接,帮助你快速识别带宽消耗较大的连接。
- 状态信息:提供关于pf防火墙的状态信息,例如过滤器的状态、流量控制、丢包等。
使用方法
导航到诊断>pfTop运行命令,如下图所示:
查看
查看选项可以让你根据不同的指标显示所需要的查询结果。
过滤表达式
pftop过滤器支持各种表达式和选项,可以对流量进行精确筛选。以下是一些常用的过滤表达式示例:
IP地址过滤
- 显示源 IP 地址为特定地址的流量:
- 显示目标 IP 地址为特定地址的流量:
- 显示源或目标 IP 地址为特定地址的流量:
- 显示源 IP 地址为指定网络的流量:
- 显示目标 IP 地址为指定网络的流量:
端口过滤
- 显示源端口为特定端口的流量:
- 显示目标端口为特定端口的流量:
- 显示源端口或目标端口为特定端口的流量:
协议过滤
- TCP 流量:
- UDP 流量:
- ICMP 流量:
流量方向过滤
- 显示传入流量:
- 显示传出流量:
- 显示入站流量或出站流量:
条件组合
- 显示源 IP 地址为 192.168.1.100 且目标端口为 80 的TCP流量:
- 显示从网络 192.168.1.0/24 到 10.0.0.0/24 网络的UDP流量:
其他常用表达式
- 显示与 192.168.1.0/24 网络相关的流量(不论是源还是目标):
- 显示流量中包含某个特定端口的数据:
- 显示来自指定 IP 范围的流量:
排序
pftop可以根据不同的指标进行排序,以方便查找所需要的数据。
最大状态数
确定所需要查询的数量,从50到全部。
参数释义
Age:时间长度,表示该连接在防火墙状态表中已存在的时间(从连接建立到当前时刻)。
Exp:(Expiration Time)倒计时值,表示该连接在无数据交互的情况下,剩余的存活时间。
pkt:数据包(packet)数量。它显示在给定时间内,匹配某个特定规则的入站或出站数据包的总数。
Long:用于切换至详细输出模式,显示更多关于防火墙状态表(state table)中每个连接的详细信息。
Speed:表示单位时间内通过该连接传输的数据量,可以监控通过防火墙的每个连接在特定时刻的带宽使用情况。
总结
做为常用故障排查的手段之一,pftop是一个非常有用的工具,可以实时监控防火墙的网络流量和连接状态,熟练掌握可以帮助进行流量分析或诊断性能问题。