Wireshark 패킷 필터링 고급 설정부터 네트워크 문제 진단 방법 상세 알아보기

반가워요. 10년 차 생활 블로거 김승진입니다. 오늘은 우리 눈에 보이지 않는 데이터의 흐름을 투명하게 들여다볼 수 있는 도구인 와이어샤크(Wireshark)에 대해 깊이 있는 이야기를 나눠보려고 해요. 사실 처음 IT 기기를 다루다 보면 네트워크가 느려지거나 특정 사이트 접속이 안 될 때 답답함이 앞서기 마련이잖아요? 저도 예전에는 공유기만 껐다 켜는 게 전부였던 시절이 있었거든요.

하지만 와이어샤크를 제대로 활용하기 시작하면서부터는 문제의 원인을 정확히 짚어내는 재미를 알게 되었어요. 패킷이라는 작은 데이터 조각들이 어떻게 오가는지 확인하다 보면, 복잡하게만 느껴졌던 네트워크 세상이 한눈에 들어오는 기분이 들더라고요. 오늘은 단순한 설치 방법을 넘어 실무에서도 바로 써먹을 수 있는 고급 필터링 기법과 진단 노하우를 아낌없이 공유해 드릴게요.

캡처 필터와 디스플레이 필터의 결정적 차이

와이어샤크를 처음 접하는 분들이 가장 많이 헷갈려 하시는 부분이 바로 캡처 필터(Capture Filter)와 디스플레이 필터(Display Filter)의 차이점이에요. 저도 처음에는 아무 필터나 막 입력했다가 원하는 데이터가 안 나와서 당황했던 적이 많았거든요. 캡처 필터는 데이터를 수집하는 단계에서부터 거름망을 치는 것이고, 디스플레이 필터는 이미 수집된 방대한 데이터 중에서 내가 보고 싶은 것만 골라내는 역할을 한답니다.

간단히 비유하자면 캡처 필터는 낚시를 할 때 특정 어종만 잡히도록 그물을 짜는 것과 같고, 디스플레이 필터는 이미 잡은 물고기들 중에서 빨간색 물고기만 눈여겨보는 것과 같아요. 대용량 트래픽이 발생하는 환경에서는 캡처 필터를 잘 써야 컴퓨터 자원을 아낄 수 있다는 점이 핵심이더라고요. 아래 표를 통해 두 필터의 특징을 확실하게 비교해 드릴게요.

구분 캡처 필터 (Capture Filter) 디스플레이 필터 (Display Filter)
설정 시점 패킷 캡처를 시작하기 전 캡처 진행 중 또는 완료 후
사용 목적 저장 용량 절약 및 부하 감소 상세 분석 및 데이터 특정
문법 형식 BPF (Berkeley Packet Filter) 와이어샤크 고유 검색 문법
복구 가능성 필터링된 데이터는 복구 불가 필터 해제 시 모든 데이터 재확인 가능
예시 문법 host 192.168.0.1 ip.addr == 192.168.0.1

실제로 대규모 네트워크 점검을 나갔을 때, 캡처 필터 없이 무작정 패킷을 받기 시작했더니 5분 만에 파일 용량이 기가바이트 단위로 커져서 컴퓨터가 멈춰버린 적이 있었어요. 그때 이후로는 반드시 필요한 포트나 IP만 지정해서 캡처하는 습관이 생겼답니다. 여러분도 분석 범위를 좁히는 연습을 먼저 해보시는 게 좋을 것 같아요.

효율적인 분석을 위한 고급 필터링 문법

이제 본격적으로 데이터를 요리하는 법을 익혀볼까요? 와이어샤크의 진가는 강력한 디스플레이 필터 문법에서 나오거든요. 단순히 IP 주소만 검색하는 수준을 넘어서서, 특정 문자열이 포함된 패킷을 찾거나 응답 시간이 지연된 패킷만 골라내는 기술이 필요해요. 연산자를 활용하면 여러 조건을 조합할 수 있어서 아주 편리하더라고요.

가장 자주 쓰이는 연산자는 && (and)와 || (or)예요. 예를 들어 ip.src == 192.168.0.10 && tcp.port == 80이라고 입력하면 특정 IP에서 보내는 웹 트래픽만 쏙 골라낼 수 있죠. 여기에 ! (not) 연산자를 붙여서 불필요한 ARP나 DNS 패킷을 제외하고 보는 것도 아주 좋은 팁이랍니다.

💡 실무에서 빛을 발하는 고급 필터 모음

  • - http.request.method == "POST": 웹 서버로 데이터를 전송하는 패킷만 확인
  • - tcp.analysis.retransmission: 패킷 유실로 인해 재전송되는 구간 탐색
  • - frame contains "naver": 패킷 내부 데이터에 특정 단어가 포함된 경우 검색
  • - tcp.flags.syn == 1 && tcp.flags.ack == 0: 새로운 TCP 연결 요청(SYN)만 필터링

특히 유용한 기능 중 하나가 바로 컬러링 룰(Coloring Rules) 설정이에요. 에러가 발생한 패킷은 빨간색으로, 정상적인 데이터 흐름은 초록색으로 보이게 설정해두면 수만 개의 패킷 사이에서도 직관적으로 문제를 발견할 수 있거든요. 저는 개인적으로 중복 ACK나 재전송 패킷에 아주 튀는 색상을 입혀서 사용하는 편인데, 가독성이 정말 좋아지더라고요.

실제 장애 진단 사례와 나의 뼈아픈 실패담

여기서 제 부끄러운 실패담을 하나 들려드릴게요. 예전에 지인의 사무실 인터넷이 너무 느리다고 해서 와이어샤크를 들고 출동한 적이 있었어요. 저는 당연히 외부 망 문제라고 확신하고 외부 IP와의 통신만 미친 듯이 분석했거든요. 그런데 2시간 동안 아무리 뜯어봐도 TCP 핸드쉐이크 과정이 너무 깨끗한 거예요. 도대체 원인을 못 찾아서 땀만 뻘뻘 흘리고 있었죠.

알고 보니 문제는 내부에 있었어요. 한 직원의 컴퓨터가 악성코드에 감염되어 내부 네트워크에 엄청난 양의 브로드캐스트 패킷을 뿌려대고 있었더라고요. 제가 eth.addr == ff:ff:ff:ff:ff:ff 필터만 한 번만 걸어봤어도 바로 알 수 있었을 텐데, '외부 서버가 문제일 거야'라는 선입견에 갇혀서 내부 트래픽을 아예 무시했던 게 화근이었죠. 이때 깨달았어요. 네트워크 진단은 가장 낮은 계층부터, 그리고 전체를 넓게 보는 것부터 시작해야 한다는 것을요.

그 뒤로는 Statistics -> Endpoints 메뉴를 가장 먼저 확인하는 습관이 생겼어요. 어떤 단말기가 가장 많은 데이터를 주고받는지 한눈에 파악되니까, 범인을 찾는 속도가 비약적으로 빨라지더라고요. 여러분도 특정 서버만 보지 마시고, 전체적인 트래픽 통계를 먼저 살펴보는 여유를 가지셨으면 좋겠어요.

⚠️ 초보자가 흔히 저지르는 실수

와이어샤크를 실행할 때 관리자 권한으로 실행하지 않으면 네트워크 인터페이스가 보이지 않을 수 있어요. 또, 무선 랜카드를 사용할 경우 'Promiscuous mode'가 작동하지 않아 다른 기기의 패킷을 잡지 못하는 상황도 빈번하니 주의해야 한답니다!

네트워크 성능 최적화를 위한 핵심 지표 확인법

네트워크 문제를 해결할 때 가장 중요한 지표는 무엇일까요? 저는 RTT(Round Trip Time)와 TCP Window Size를 꼽고 싶어요. RTT는 패킷이 목적지에 갔다가 돌아오는 데 걸리는 시간인데, 이 시간이 들쭉날쭉하다면 회선 품질이나 라우팅 경로에 문제가 있다는 신호거든요. 와이어샤크의 TCP Stream Graph 기능을 활용하면 이 흐름을 시각적으로 아주 예쁘게 그려볼 수 있답니다.

또한, 윈도우 사이즈는 수신측에서 받을 수 있는 데이터의 양을 조절하는 매커니즘인데, 이게 0에 가깝게 떨어진다면(Window Full) 서버가 데이터를 처리하지 못해 쩔쩔매고 있다는 뜻이에요. 이런 지표들을 분석하다 보면 "회선이 느린 게 아니라 서버 CPU가 한계에 도달했구나!" 같은 정확한 결론을 내릴 수 있게 되는 거죠.

성능 분석을 할 때 제가 꼭 사용하는 기능은 Expert Information이에요. 와이어샤크가 스스로 패킷을 분석해서 '이상 징후'가 보이는 것들을 모아서 보여주거든요. Chat, Note, Warn, Error 단계별로 정리되어 있어서, 사실 이것만 잘 봐도 웬만한 장애 원인의 80%는 파악이 가능하더라고요. 수동으로 필터를 걸기 전에 이 요약 리포트를 먼저 훑어보는 게 시간을 아끼는 가장 큰 비법이랍니다.

자주 묻는 질문

Q. 와이어샤크를 쓰면 다른 사람의 카톡 내용도 볼 수 있나요?

A. 예전에는 가능했을지 몰라도, 지금은 대부분의 서비스가 SSL/TLS 암호화를 사용하기 때문에 패킷을 잡아도 내용은 깨진 글자로 보여요. 복호화 키가 없다면 실제 대화 내용을 보는 것은 거의 불가능하답니다.

Q. 노트북으로 와이파이 패킷을 잡는데 내 것만 보여요.

A. 무선 네트워크 환경에서는 'Monitor Mode'를 지원하는 전용 무선 랜카드가 필요해요. 일반적인 내장 랜카드는 보안상의 이유로 자기에게 오는 패킷만 수신하도록 설계되어 있거든요.

Q. 패킷이 너무 많아서 컴퓨터가 버벅거려요.

A. 이럴 때 바로 '캡처 필터'를 써야 해요. not port 443 처럼 양이 많은 HTTPS 트래픽을 제외하거나, host 특정IP로 범위를 좁혀서 캡처하면 부하가 확 줄어들어요.

Q. 필터 창이 빨간색으로 변하면서 적용이 안 돼요.

A. 문법이 틀렸다는 뜻이에요. 와이어샤크는 올바른 문법을 입력하면 배경이 초록색으로 변하거든요. 오타가 없는지, 혹은 디스플레이 필터 칸에 캡처 필터 문법을 적지는 않았는지 확인해보세요.

Q. HTTPS 트래픽의 내용을 꼭 봐야 한다면 방법이 없나요?

A. 브라우저의 'SSLKEYLOGFILE' 환경 변수를 설정해서 마스터 키를 추출하면 와이어샤크에서 복호화해서 볼 수 있어요. 다만 이건 본인 PC의 트래픽을 분석할 때만 유효한 방법이에요.

Q. 특정 시간대의 패킷만 따로 저장할 수 있나요?

A. 네, 원하는 패킷 범위를 마우스로 드래그하거나 필터를 적용한 뒤 File -> Export Specified Packets 메뉴를 이용하면 필터링된 결과만 별도 파일로 저장할 수 있어요.

Q. 와이어샤크 설치 시 같이 깔리는 Npcap은 무엇인가요?

A. 윈도우 운영체제에서 네트워크 카드의 드라이버와 직접 통신하여 패킷을 가로챌 수 있게 해주는 핵심 라이브러리예요. 이게 없으면 와이어샤크는 빈 껍데기나 다름없으니 꼭 같이 설치해야 해요.

Q. 패킷 분석을 잘하려면 네트워크 이론을 다 알아야 하나요?

A. 모든 걸 알면 좋겠지만, 처음에는 OSI 7계층 중에서 2~4계층(Ethernet, IP, TCP/UDP) 정도의 헤더 구조만 공부해도 분석 효율이 엄청나게 올라가는 걸 느끼실 거예요.

Q. 원격지에 있는 서버의 패킷도 로컬에서 볼 수 있나요?

A. SSH 리모트 캡처 기능을 지원해요. 서버에 직접 와이어샤크를 깔지 않아도 SSH 연결을 통해 실시간으로 패킷 데이터를 내 PC로 쏴줄 수 있답니다.

와이어샤크라는 도구는 알면 알수록 참 매력적인 것 같아요. 처음에는 복잡한 숫자와 영어의 향연에 머리가 아플 수도 있지만, 하나씩 필터를 적용해가며 문제의 실마리를 찾아내는 과정은 마치 탐정이 된 것 같은 기분을 주거든요. 오늘 제가 공유해드린 팁들이 여러분의 쾌적한 네트워크 생활에 조금이나마 도움이 되었으면 좋겠네요.

혹시라도 분석하다가 막히는 부분이 생기면 언제든 댓글 남겨주세요. 제가 아는 선에서 최대한 친절하게 답변해 드릴게요. 네트워크 정복의 길은 멀고도 험하지만, 와이어샤크와 함께라면 충분히 즐겁게 헤쳐나갈 수 있을 거예요. 그럼 오늘도 데이터 가득한 하루 보내시길 바랄게요!

작성자: 10년 차 생활 블로거 김승진

네트워크와 IT 기기를 사랑하며, 복잡한 기술을 일상의 언어로 풀어내는 것을 즐깁니다. 다수의 시스템 구축 및 유지보수 경험을 바탕으로 실용적인 정보를 전달합니다.

본 포스팅은 정보 제공을 목적으로 작성되었으며, 와이어샤크를 이용한 비인가 네트워크 도청이나 해킹 행위는 법적 처벌을 받을 수 있음을 알려드립니다. 반드시 본인이 소유하거나 허가받은 네트워크 환경에서만 실습하시기 바랍니다.

다음 이전