11

我已经在 Ubuntu 上安装了 wireshark,当我运行它时:

/usr/bin/wireshark

我收到一个错误:

(wireshark:27945): Gtk-WARNING **: cannot open display:

我想在命令提示符下运行 wireshark。

我不想使用用户界面。我不确定它为什么抱怨显示器,我想在端口上运行它。

4

2 回答 2

16

您可以尝试tshark - 这是一个“基于控制台的wireshark”,它是wireshark 项目的一部分。

您应该阅读阅读man tshark

例如在 80 端口上捕获 http 数据包运行:

tshark -f 'tcp port 80 and http'

PS 示例已修复为使用捕获过滤器而不是显示过滤器。

于 2012-12-04T06:51:59.440 回答
6

在 Ubuntu 上,运行 wireshark 会抱怨显示:

el@apollo:~$ wireshark
(wireshark:20619): Gtk-WARNING **: cannot open display:

设置 DISPLAY 环境变量:

export DISPLAY=:0.0
/usr/bin/wireshark

然后它工作:

el@apollo:~$ wireshark -Y
wireshark: option requires an argument -- 'Y'

Usage: wireshark [options] ... [ <infile> ]

Capture interface:
  -i <interface>           name or idx of interface (def: first non-loopback)
  -f <capture filter>      packet filter in libpcap filter syntax
  -s <snaplen>             packet snapshot length (def: 65535)
  -p                       don't capture in promiscuous mode
  -k                       start capturing immediately (def: do nothing)
  -S                       update packet display when new packets are captured
  -l                       turn on automatic scrolling while -S is in use
  -I                       capture in monitor mode, if available
  -B <buffer size>         size of kernel buffer (def: 2MB)
  -y <link type>           link layer type (def: first appropriate)
  -D                       print list of interfaces and exit
  -L                       print list of link-layer types of iface and exit

wireshark 是一个 X 应用程序,因此它需要知道将 X11 显示输出发送到哪里。

于 2012-12-04T06:48:02.953 回答