【问题标题】:How do I capture SYN tcpdump packets within a Linux server?如何在 Linux 服务器中捕获 SYN tcpdump 数据包?
【发布时间】:2016-05-29 20:23:26
【问题描述】:

我正在尝试使用 python 使用 tcpdump 处理所有服务器连接,并且使用此命令运行良好:

tcpdump -tttt -nn 'tcp[tcpflags] & tcp-syn == tcp-syn'

这是它捕获的内容:

  • 任何从另一台机器与服务器的连接
  • 在盒子上运行,它将登录一个 telnet 到端口 22

这是它没有的:

  • 如果我运行 ssh localhost
  • 任何时候机器上的任何服务器(或大多数进程)都会同步到同一台机器上的监听端口

所以我得到了从外到内的所有流量,但机器没有发生任何事情。

我想我弄错了一些标志,但我不确定是什么。有任何想法吗?我只是想监控机器内部的服务器连接活动,但只在外部时获取日志。

【问题讨论】:

    标签: python linux sockets tcp tcpdump


    【解决方案1】:

    本地主机上的连接将通过lo 接口。尝试使用-i any 选项使其监听所有网络接口。

    【讨论】:

    • 大概你的意思是-i any,因为这是 Linux 而不是 OS X。(-i any-i all 适用于更新版本的 OS X,使用 Apple 的 tcpdump 和 libpcap,尽管它们只是文档-i all.)
    • @GuyHarris 不错的收获。我可能在错误的机器上查看了联机帮助页。我确定了答案。
    【解决方案2】:

    使用-i any捕获所有接口的数据,包括环回(“localhost to localhost”)

    【讨论】:

      【解决方案3】:

      您可以通过

      排除自己的IP(ssh客户端IP)
          tcpdump -tttt -nn 'tcp[tcpflags] & tcp-syn == tcp-syn && ! host <ssh-client-ip>'
      

      例如,如果你从 10.2.3.4 ssh,那么命令应该是

          tcpdump -tttt -nn 'tcp[tcpflags] & tcp-syn == tcp-syn && ! host 10.2.3.4'
      

      希望对你有帮助。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-08-28
        • 2023-04-10
        • 2013-01-14
        • 1970-01-01
        相关资源
        最近更新 更多