Linux

tcpdump -i 任意和混雜模式

  • December 29, 2020

來自 tcpdump 4.1.1 的手冊頁(是的,我知道它的舊版本)

   -i     Listen  on interface.  If unspecified, tcpdump searches the 
          system interface list for the lowest numbered, configured up 
          interface (excluding loopback).  Ties are broken by choosing >               the earliest match.

          On Linux systems with 2.2 or later kernels, an interface 
          argument of ``any'' can be used to capture packets from all
          interfaces.
          Note  that captures on the ``any'' device will not be done in
          promiscuous mode.

任何人都可以闡明最後一句話的確切含義。我正在使用具有許多介面的 IDS 伺服器,當我使用 tcpdump -i any 時,它清楚地顯示了不是源自/目的地為 IDS 伺服器的流量。但是,還有另一項服務已經將所有介面置於混雜模式。他們是否可能只是意味著如果您使用 -i any tcpdump 不會將介面置於 PROMISC 模式?

他們是否可能只是意味著如果您使用 -i any tcpdump 不會將介面置於 PROMISC 模式?

是的,這就是我的意思。“任何”設備無法通過獨立打開所有設備並在它們上擷取來工作,它通過打開“數據包套接字”來工作,而不是將其綁定到特定設備(這是您在 Linux 上在該設備上擷取的方式) ,使其未綁定,因此它偵聽所有套接字。

設置混雜模式的呼叫將在未綁定的套接字上失敗(我剛剛在相當新的核心上對其進行了測試),因此 libpcap 不會為“任何”設備打開混雜模式。

引用自:https://unix.stackexchange.com/questions/188244