와이어 샤크와 Tcpdump의 차이

Feb 27, 2024
와이어 샤크와 Tcpdump의 차이

 
 
notion image
 
tcpdump 명령어를 사용하면 네트워크 인터페이스로 오가는 모든 패킷을 캡처할 수 있다.
 
tcpdump로 네트워크 인터페이스를 오가는 모든 패킷을 캡처할 수 있다면,
와이어 샤크와 대체 뭐가 다른건가 싶은 의문이 IT 엔지니어를 위한 네트워크 입문을 읽던 중 들었다.
 
책을 마저 읽으니 tcpdump와 같은 역할을 하는 Application으로 와이어 샤크가 있다고 한다.
 
그렇다면 와이어 샤크는 tcpdump를 대신 수행해주는 tool일 뿐인걸까?
 
  • tcpdump
    • 리눅스에서 tcpdump…
      리눅스에서 tcpdump…
       
      tcpdump는 주로 리눅스 환경에서 사용하지만, 리눅스 커널 기반의 네트워크에서도 많이 사용되는 패킷을 캡처할 수 있는 명령어다.
       
      tcpdump를 사용하면 네트워크 인터페이스로 오가는 모든 패킷을 캡처할 수 있다고 한다.
      네트워크 트래픽을 실시간으로 모니터링하고, 패킷을 캡처해 장애가 난 부분을 파악하는데 주로 사용되는데, 특정 Protocol이나 IP 주소, 포트 등을 필터링하여 사용할 수 있다.
       
      예를들면 이런식이다.
      // -i는 패킷을 캡처할 인터페이스를 의미한다. // HTTP 서비스 패킷 캡처 tcpdump -i interface_name tcp port 80 // 172.16.10.10이 출발지 또는 목적지면서 HTTP 패킷 캡처 tcpdump -i interface_name tcp port 80 and host 172.16.10.10 // ssh(22번 포트)를 제외한 전체 패킷 캡처 tcpdump -i interface_name not tcp port 22
       
  • 와이어 샤크(Wireshark)
    • notion image
       
      Wireshark는 네트워크 패킷 분석 도구로, 네트워크 트래픽을 실시간으로 캡처하고 분석하는 데 사용되며, 강력한 네트워크 프로토콜 분석을 제공해준다.
       
      간단하게 어떤 기능을 지원하는지 살펴보면,
    • 패킷 캡처 기능
    • 패킷 분석을 위한 GUI 제공
    • 캡처된 패킷 저장 기능 제공
    • 크로스 플랫폼(Window, Linux 등) 지원…..
    •  
      등이 있는데 위에서 설명한 것과는 별개로 다양한 기능을 지원하고 있다.
       
      와이어 샤크는 네트워크 인터페이스를 통해 전송되는 모든 패킷을 캡처할 수 있을 뿐만 아니라 필터링 기능도 지원하며, 바이너리 트래픽을 사람이 볼 수 있는 형식으로 변환하는 등 강력한 네트워크 추적 기능을 제공한다.
       
      암호화된 LTS 트래픽을 가로채 분석할 수도 있으며, 악의적 트래픽을 분석할 수도 있고 패킷을 시각화하여 트래픽의 흐름이나 추세를 쉽게 파악시켜줄 수도 있다.
       
      Window에서 메인으로 사용하는 유선 이더넷의 패킷을 캡처하면 다음과 같이 나온다.
      window Ethernet에서 동작한 wireshark
      window Ethernet에서 동작한 wireshark
      시간 / 출발지 IP / 목적지 IP / Protocol / length / info 등…
       
      와이어 샤크를 사용하면 내 Window PC나 리눅스 상에서 동작하는 EC2같은 서버의 패킷을 캡처하여 네트워크 트래픽을 분석하고, 디버깅할 수 있다.
       
 
그래서 차이는?
 
  1. tcpdump는 명령어를 사용하여 동작하는 반면, Wireshark는 그래픽 사용자 인터페이스(GUI)를 통해 동작한다.
  1. tcpdump는 주로 패킷 캡처와 저장에 중점을 두며 필터링 기능을 지원하지만, 패킷을 디코딩하거나 시각적으로 이해하기 쉬운 형태로 표시하지는 않는다.
 
결론적으로, tcpdump와 Wireshark는 모두 Windows나 Linux에서 빠르게 패킷을 캡처하고 분석하는 데 사용된다. 그러나 간단한 명령어로 패킷을 캡처하고 저장하는 용도로는 주로 tcpdump가 사용되는 것 같다.
Wireshark는 패킷 분석 도구로, 패킷 캡처 능력을 기반으로 다양한 분석 및 디버깅 도구를 제공한다.
tcpdump와 Wireshark의 주요 차이는 사용자가 느끼는 경험에 있다. tcpdump는 명령줄을 통해 raw 데이터를 확인하는 것에 비해, Wireshark는 GUI를 통해 사용자에게 더 직관적인 환경을 제공한다.
 
와이어 샤크가 25만개 이상의 패킷을 대규모로 캡쳐하면 처리하기가 어렵고 tcpdump는 이를 수행할 수 있다지만 중요한 점은 기능적으로 tcpdump와 Wireshark가 처음에는 동일한 코드베이스를 사용하며 libpcap과 BPF를 활용한다는 것이며, 이로 인해 기능상의 큰 차이는 없다는 것이다.
Share article
RSSPowered by inblog