tcpdump -i any는 FreeBSD에서 작동하지 않습니다.

tcpdump -i any는 FreeBSD에서 작동하지 않습니다.

FreeBSD모든 인터페이스 에서 듣는 방법tcpdump

> tcpdump -i any
tcpdump: any: No such device exists
(BIOCSETIF failed: Device not configured)

(ICMP를 듣고 싶어요)

답변1

FreeBSD 11.3에서 이것을 보고 있는데 "아무것도" 할 수 있는 방법이 없는 것 같습니다. 나는 여러 개의 s가 작동할 수 있다고 생각합니다 -i. 맨페이지에는 이에 대한 내용이 없지만 첫 번째 s만 필요합니다. tcpdump가 여러 를 지원하도록 강화된 경우 -i다음과 같이 해야 합니다(또는 시스템에 없다는 것을 증명할 수 있습니다).

tcpdump --list-interfaces | grep Running | cut -f 1 -d ' ' | cut -f 2- -d '.' | awk '{ print "-i " $1 }' | xargs -t -Jinterfaces tcpdump interfaces host 8.8.8.8

답변2

tcpdump 매뉴얼 페이지에서:

인터페이스 매개변수 "all" 또는 "pktap,all"을 사용하여 루프백 및 터널 인터페이스를 포함한 모든 인터페이스에서 패킷을 캡처할 수 있습니다.

예를 들어 다음과 같이 간단하게 수행할 수 있습니다.

tcpdump -i all tcp port 80

-i 플래그가 지정되지 않으면 기본적으로 루프백 및 터널 인터페이스를 제외하고 모든 인터페이스 세트가 의사 인터페이스에 다시 포함됩니다. 다시 tcpdump 매뉴얼 페이지에서:

Darwin 시스템 버전 13 이상에서 인터페이스가 지정되지 않으면 tcpdump는 의사 인터페이스를 사용하여 커널에 의해 결정된 인터페이스 세트에서 패킷을 캡처합니다(기본적으로 루프백 및 터널 인터페이스 제외).

답변3

이 접근 방식이 특정 사용 사례에 대해 잘 작동한다고 보장할 수는 없지만 FreeBSD에서 이를 수행하는 강력한 방법은 각각 알려진 인터페이스에 해당하는 N인스턴스를 실행하는 것입니다 . 그룹화 및 백그라운드 명령으로 실행하여 결합된 출력을 단일 파일로 보낼 수 있습니다. 출력 파일에는 패킷이 인터페이스 a에 도착할 때 패킷을 표시하고 패킷이 인터페이스 b를 떠날 때 다시 표시하는 등 많은 중복 패킷이 있는 것은 불가피해 보입니다.tcpdumpNifconfig

하지만 꼭 그렇게 해야 한다면 다음을 고려해보세요.

{
    for i in $(ifconfig -l)
    do
        ( tcpdump -i $i & )
    done
} > tcpdump.out

답변4

FreeBSD의 모든 것과 마찬가지로 맨페이지를 읽으면 일반적으로 모든 것이 설명됩니다.

       -i interface
   --interface=interface
      Listen on interface.  If unspecified, tcpdump searches the  sys-
      tem interface list for the lowest numbered, configured up inter-
      face (excluding loopback), which may turn out to be,  for  exam-
      ple, ``eth0''.

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

      If the -D flag is supported, an interface number as  printed  by
      that flag can be used as the interface argument, if no interface
      on the system has that number as a name.

https://www.freebsd.org/cgi/man.cgi?query=tcpdump&apropos=0&sektion=0&manpath=FreeBSD+12.1-RELEASE+and+Ports&arch=default&format=html

관련 정보