代码之家  ›  专栏  ›  技术社区  ›  The Archetypal Paul

在solaris上嗅探/捕获apache和weblogic之间的所有通信

  •  3
  • The Archetypal Paul  · 技术社区  · 15 年前

    我们有一个嵌入式设备通过apache与weblogic对话的应用程序。weblogic和apache位于同一台solaris服务器上,我们正在为apache使用weblogic模块。

    通过http进行通信

    它不能在https上工作,尽管这个问题似乎与https没有直接关系(ssl会话协商得很好,有些来回发生)。当使用https时,设备处理通信的方式似乎不同。

    我们希望看到http/https请求和响应来调试它。

    我们可以使用(例如)WiReSARK捕获设备和服务器之间的数据,但是这是加密的,所以不是很大的帮助。wireshark(或snoop)看不到服务器上apache和weblogic之间的本地通信量。注意:在Linux上我们可以这样做,但在solaris上不行。

    我们实际上并不需要wireshark的低级包捕获——捕获http请求和响应的头和体就足够了。

    有人知道怎么做吗?是否有一个apache mod将记录所有通过的请求和响应,也许(google没有显示任何明显的内容)。还有其他有创意的方法吗?

    4 回复  |  直到 13 年前
        1
  •  1
  •   vpram86    15 年前
        2
  •  1
  •   Community Mike Causer    7 年前

    asked 在serverfault上有一个类似的问题,最好的答案似乎是在另一台机器上设置一个tcp代理,并强制所有通信都通过它。

    所以不是:

    Weblogic -> Apache
    

    你应该:

    Weblogic -> (across network) TCP Proxy -> (across network) -> Apache
    

    然后你可以做任何你想要的tcpdump/wiresharking。我用过 rinetd 它工作得很好,但我知道至少在Linux上,内置的inetd还可以执行代理(和日志记录)。

    更新: 如果你不能在网络上做任何事情,你可以使用相同的概念和类似的东西。 TcpProxy 或者类似的(甚至可能是您的常规inetd)来执行代理和日志记录。你甚至可以用 Netcat 作为一个 TCP Proxy . 其他人也有 suggested 使用dTracle对回送流量进行窥探,因为它可以直接钩住内核。

        3
  •  1
  •   brianegge    15 年前

    我选择的TCP捕获程序称为 balance .

     _           _
    | |__   __ _| | __ _ _ __   ___ ___
    | '_ \ / _` | |/ _` | '_ \ / __/ _ \
    | |_) | (_| | | (_| | | | | (_|  __/
    |_.__/ \__,_|_|\__,_|_| |_|\___\___|
      this is balance 3.42
      Copyright (c) 2000-2007,2008
      by Inlab Software GmbH, Gruenwald, Germany.
      All rights reserved.
    

    它设计为一个TCP负载均衡器实用程序,但是使用-p包转储标志可以很好地记录所有流量的进出。它以ascii格式显示ascii,并将所有内容编码为十六进制。当使用端口1024时,它可以作为非根端口运行。

        4
  •  0
  •   Kenster marc_s    15 年前

    你可以用 桁架 捕获其中一个进程执行的套接字读写操作。