Linux
tcpdump -i 任意和混雜模式
來自 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 不會為“任何”設備打開混雜模式。