동일한 네트워크에 있는 세 번째 호스트에서 두 호스트 사이의 패킷을 캡처하는 것이 가능합니까?

동일한 네트워크에 있는 세 번째 호스트에서 두 호스트 사이의 패킷을 캡처하는 것이 가능합니까?

나는 세 번째 호스트의 두 호스트 사이의 트래픽을 보고 싶습니다. 내 네트워크 전체에 트래픽이 있고 세 번째 호스트에서 이 작업을 수행합니다.

ip link set eth0 promisc on

tcpdump -vv -i eth0 -xX host 192.168.0.2 and host 192.168.0.38 and not stp

192.168.0.2에서 ssh를 실행하고 192.168.0.2에서 192.168.0.38로 ping을 실행했는데 터미널에 udp 데이터그램이 표시되는 대신 다음이 표시됩니다.

tcpdump -vv -i eth0 -xX host 192.168.0.2 and host 192.168.0.38 and not stp
tcpdump: listening on eth0, link-type EN10MB (Ethernet), snapshot length 262144 bytes
^C
0 packets captured
8 packets received by filter
0 packets dropped by kernel

왜?

src와 dst를 지정해 보았습니다..

  tcpdump -vv -i eth0 -xX src host 192.168.0.2 and dst host 192.168.0.38 and not stp

그러나 아무것도 변하지 않습니다.

답변1

당신은 "...내 네트워크에서..."라고 말합니다.

물리적 네트워크 계층에 액세스할 수 있다면 가능합니다.

일부 관리형 스위치에는 포트 X로 향하는 트래픽을 포트 Y로 복사하는 기능이 있습니다.

tcpdump호스트에 여러 개의 NIC가 있는 경우 tcpdump다른 두 호스트 사이에 호스트를 배치하고 트래픽을 브리징할 수 있는 또 다른 방법이 있습니다.

답변2

해결책을 찾을 수 있습니다. 구문은 정확하지만 최신 스위치 네트워크(예전의 10base2 또는 base5와 같은 기존 공유 버스와 달리)는 대상 MAC 주소에 연결되지 않은 스위치 포트로 트래픽을 보내지 않으므로 tcpdump는 연결된 패킷에서 다음 주소로의 트래픽만 표시합니다. 직접 호스트하세요.

관련 정보