【问题标题】:tshark piping output results in packet countertshark 管道输出导致数据包计数器
【发布时间】:2023-03-27 04:30:02
【问题描述】:

当我尝试将 tshark 输出传送到任何东西时,我再也看不到流量了。 Tshark 只显示一个数据包计数器。我怎样才能防止这种情况发生?

 sudo tshark -i enp60s0 -f "tcp" -T fields -e ip.src -e ip.dst -e tcp.srcport -e tcp.dstport -e tcp.checksum -e tcp.options -E header=y | column -t

【问题讨论】:

    标签: tshark


    【解决方案1】:

    上下文

    对于上下文,这是您正在谈论的命令和输出:

    $ sudo tshark -i enp60s0 -f "tcp" -T fields -e ip.src -e ip.dst -e tcp.srcport \
        -e tcp.dstport -e tcp.checksum -e tcp.options -E header=y | column -t
    Capturing on 'Eth: enp60s0'
    45
    

    Tshark 会将控制信息(例如捕获位置和数据包计数)发送到 stderr 而不是 stdout。如果不想看到这个控制信息,发送stderr到dev null:

    $ sudo tshark ... 2>/dev/null | column -t
    

    方法

    我们还可以每秒连续生成一个新的捕获,然后我们可以使用 tshark 读取(请参阅 tshark 的manpage 了解完整详细信息)。这类似于@ChristopherMaynard 的解决方案,但您无需等待捕获完成。使用 -b duration:1 保存 (-w) 将每秒保存一个新捕获:

    #!/usr/bin/env bash
    sudo tshark -w temp.pcap -b duration:1 2>/dev/null &
    
    i=0
    while true
      do if [ "$i" != "$(ls -1A . | wc -l)" ]; then 
        newfile="$(ls -t | head -n1)"
        sudo tshark -r "$newfile" 2>/dev/null | column -t
      fi  
      sleep 0.1 
    done
    

    验证

    运行它,我们得到如下输出。请注意,我们正在读取新的数据包捕获,因此 tshark 会为它正在读取的每个新捕获添加从 1 开始的数字。

    1   0.000000  192.168.2.1    →  192.168.2.242    DNS      134  Standard     query  response           0xfd75             No                            such                         name               PTR                                     1.2.168.192.in-addr.arpa      SOA                localhost               6c:96:cf:d8:7f:e7  ←  78:8a:20:d9:f9:11
    2   0.000412  192.168.2.242  →  192.168.2.1      DNS      87   Standard     query  0x2a9b             PTR                249.249.16.104.in-addr.arpa   78:8a:20:0d:05:e7            ←                  6c:96:cf:d8:7f:e7
    3   0.023726  192.168.2.1    →  192.168.2.242    DNS      149  Standard     query  response           0x2a9b             No                            such                         name               PTR                                     249.249.16.104.in-addr.arpa   SOA                cruz.ns.cloudflare.com  6c:96:cf:d8:7f:e7  ←  78:8a:20:d9:f9:11
    4   0.024091  192.168.2.242  →  192.168.2.1      DNS      85   Standard     query  0x2f71             PTR                40.2.168.192.in-addr.arpa     78:8a:20:0d:05:e7            ←                  6c:96:cf:d8:7f:e7
    1   1.026460  192.168.2.242  →  192.168.2.255    UDP      86   57621        →      57621              Len=44             ff:ff:ff:ff:ff:ff             ←                            6c:96:cf:d8:7f:e7
    2   1.048071  192.168.2.1    →  192.168.2.242    DNS      135  Standard     query  response           0x2f71             No                            such                         name               PTR                                     40.2.168.192.in-addr.arpa     SOA                localhost               6c:96:cf:d8:7f:e7  ←  78:8a:20:d9:f9:11
    3   1.048555  192.168.2.242  →  192.168.2.1      DNS      87   Standard     query  0xe77d             PTR                25.206.252.198.in-addr.arpa   78:8a:20:0d:05:e7            ←                  6c:96:cf:d8:7f:e7
    4   1.125073  192.168.2.1    →  192.168.2.242    DNS      118  Standard     query  response           0xe77d             PTR                           25.206.252.198.in-addr.arpa  PTR                stackoverflow.com                       6c:96:cf:d8:7f:e7             ←                  78:8a:20:d9:f9:11
    

    【讨论】:

      【解决方案2】:

      column 命令需要读取所有输入以确定每列的宽度,因此您不能在此上下文中使用column。 (您可以通过发出tshark 命令来测试它,然后在其他地方发出killall tshark,然后您将看到所有输出。

      相反,我认为您必须将输出重定向到文件,然后在完成tshark 捕获会话后,您可以根据需要使用cat file | column -t。如果您想在屏幕上查看输出并将其重定向到文件以供以后处理,您可以通过管道将其发送到tee 并提供tee 与要写入的文件的名称。例如,tshark [options] | tee file,但您看到的输出在您稍后执行cat file | column -t 之前不会被很好地格式化。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-02-13
        • 2022-10-15
        • 2020-02-10
        • 1970-01-01
        • 2012-12-19
        相关资源
        最近更新 更多