Unix Snoop 命令

Unix Snoop 命令

现在正在服务器上进行测试。客户端和服务器都在我的机器上。我试图监听它们之间的数据包,但没有成功。以下是我尝试过的一些变体:

sudo snoop host myHost and port 443 or port 8443

sudo snoop to host myHost from host myHost

这些均未返回任何结果。这是否意味着:

  1. snoop 无法拾取同一主机之间的数据包
  2. 我错误地使用了 snoop
  3. 我的客户端和服务器正在做一些奇怪的事情

这些命令都返回大量信息(所以我假设它有效并且配置正确)

sudo snoop

sudo snoop host myHost

答案1

据我所知,Solaris 不允许你在本地环回接口(在你的情况下是 lo0)上进行捕获。例如,这一页明确指出,如果不重新编译内核,则无法在 Solaris 上完成此操作。

因此,您必须在不同的机器上设置客户端和服务器,或者查看是否有某种方法可以通过您的网络路由流量(以便它通过非环回接口)。

答案2

我不太熟悉 snoop,但也许你会更喜欢wireshark

答案3

您正在监听以太网接口之一,但正在通过环回进行通信。从snoop手册页中:

    -d 设备使用以下设备从网络接收数据包
                    设备指定的接口。通常为 le0
                    或 ie0。程序 netstat(1M),当
                    使用 -i 标志调用,列出所有
                    机器所具有的接口。通常,
                    snoop 会自动选择第一个
                    找到的非环回接口。

因此,如果您想窃听本地通信,请使用该-d选项添加您的环回接口。

答案4

  1. 以 root 用户身份登录您的机器。
  2. 运行snoop命令,如下所示:

    root@psp-2 # snoop -o /export/home/john/file.pcap

    使用设备 vnet0(混杂模式)

  3. 按 Ctrl+C 停止数据包捕获。

  4. 您可以在所提及的路径检查所需的数据包捕获。

相关内容