패킷 분석 및 디버깅 도구
리눅스에서는 다양한 패킷 분석 및 디버깅 도구를 제공하여 네트워크 트래픽 분석, 문제점 진단 등에 활용됩니다. 대표적인 도구로는 tcpdump, Wireshark, strace, gdb 등이 있습니다.
tcpdump
tcpdump는 네트워크 인터페이스에서 전송되는 패킷을 캡처하고 분석하는 명령어 기반 도구입니다. 기본적으로 모든 패킷을 캡처하므로, 필요한 패킷만 추출하려면 BPF(Berkeley Packet Filter) 필터를 이용해야 합니다. 예를 들어, 다음 명령어는 eth0 인터페이스에서 포트 80으로 전송되는 HTTP 패킷만 캡처합니다.
sudo tcpdump -i eth0 port 80
Wireshark
Wireshark는 GUI 기반 패킷 분석 도구로, tcpdump와 유사하게 패킷을 캡처하고 분석할 수 있습니다. GUI 환경에서 패킷을 시각화하여 분석할 수 있으며, 다양한 필터를 제공하여 원하는 패킷만 추출할 수 있습니다.
strace
strace는 프로세스가 시스템 호출(system call)을 할 때마다 호출 정보를 출력하는 도구입니다. 이를 통해 프로그램의 동작을 추적하고, 문제가 발생한 시점을 파악할 수 있습니다. 예를 들어, 다음 명령어는 ls 명령어 실행 시 호출되는 시스템 호출 정보를 출력합니다.
sudo strace ls
gdb
gdb는 C/C++ 프로그램 디버깅에 사용되는 명령어 기반 도구입니다. 프로그램 실행 중에 원하는 지점에서 중지하고, 변수 값 등을 확인할 수 있습니다. gdb를 이용해 프로그램이 비정상 종료되는 원인을 찾을 수 있습니다.
서브목차