Linux / 명령어 / traceroute - 목적지까지 라우터 경로 추적

traceroute는 TTL 또는 홉 제한을 단계적으로 높여 목적지까지 거치는 라우터를 조사합니다. 어느 구간에서 지연이나 응답 중단이 나타나는지 살펴볼 때 사용합니다.

traceroute 명령어란?

각 홉의 응답은 해당 라우터가 진단 패킷에 보낸 결과이지 실제 애플리케이션 트래픽의 확정 경로를 뜻하지 않습니다. Linux의 일반적인 traceroute 구현은 기본적으로 UDP 프로브를 쓰며, -I는 ICMP, -T는 TCP 프로브를 선택합니다. 구현과 권한에 따라 사용할 수 있는 방식이 다릅니다.

기본 문법

traceroute [옵션] 목적지

설치된 구현과 옵션은 배포판에 따라 다를 수 있습니다. man traceroute으로 현재 시스템의 설명을 확인하세요.

사용 예제

기본 경로 추적

경로의 각 단계와 응답 시간을 확인합니다.

traceroute example.com

숫자 주소로 보기

DNS 역조회 시간을 제외해 경로 자체에 집중합니다.

traceroute -n example.com

ICMP 프로브 선택

기본 UDP 방식에서 응답이 제한될 때 다른 방식으로 비교합니다.

traceroute -I example.com

홉별 응답을 해석할 때

traceroute는 TTL을 달리한 탐지 패킷으로 목적지까지의 홉을 조사합니다. 다음은 숫자 IP로 출력해 DNS 역방향 조회 지연을 줄이는 예제입니다.

traceroute -n example.com

출력 구조의 예시(실제 경로·시간은 매번 달라짐):

1  192.0.2.1  1.0 ms  0.9 ms  1.1 ms
2  * * *

한 줄은 한 홉이며 세 값은 여러 탐지의 왕복 시간입니다. *는 그 탐지에 대한 응답이 없다는 뜻으로, 다음 홉이 계속 보인다면 그 지점만 응답을 제한했을 수 있습니다. 경로가 비대칭일 수 있으므로 이 결과만으로 장애 장비를 확정하지 마세요.

주요 옵션과 형식

옵션·형식 설명
-n 주소를 숫자로 표시합니다.
-I ICMP Echo 프로브를 사용합니다.
-T TCP 프로브를 사용합니다.
-m 홉 최대 홉 수를 제한합니다.
-q 횟수 홉마다 보내는 프로브 수를 지정합니다.
-w 시간 응답 대기 시간을 조정합니다.

사용할 때 주의할 점

한 홉에 *가 떠도 뒤의 홉이 계속 나타난다면 그 라우터의 진단 응답만 제한됐을 수 있습니다. 한 구간의 RTT 증가만으로 병목을 단정하지 말고 최종 목적지의 응답과 반복 측정을 비교하세요. 일부 프로브 방식에는 추가 권한이 필요합니다.

자주 묻는 질문

중간 홉이 *로 표시되면 패킷이 거기서 끊긴 건가요?

아닙니다. 해당 라우터가 TTL 만료 응답을 보내지 않거나 제한했을 수 있습니다. 이후 홉과 목적지 응답을 함께 보세요.

공식 문서

옵션의 정확한 동작과 구현별 차이는 traceroute 관련 공식 문서에서 확인할 수 있습니다.

같은 카테고리의 다른 글
Linux / 명령어 / ssh - 암호화된 원격 접속과 명령 실행

Linux / 명령어 / ssh - 암호화된 원격 접속과 명령 실행

Linux ssh 명령어의 기능과 기본 문법을 설명합니다. 실제 사용 예제, 주요 옵션과 작업 전 확인할 점을 알아봅니다.

Linux / 명령어 / bunzip2 - bzip2 압축 파일 풀기

Linux / 명령어 / bunzip2 - bzip2 압축 파일 풀기

Linux bunzip2 명령어의 용도와 기본 문법을 알아봅니다. 파일 처리 예제, 주요 옵션과 원본 보존·덮어쓰기 주의점을 설명합니다.

Linux / 명령어 / uniq - 인접한 중복 행 정리

Linux / 명령어 / uniq - 인접한 중복 행 정리

Linux uniq 명령어의 기본 문법과 실제 사용 예제를 설명합니다. 주요 옵션과 결과를 해석할 때 주의할 점을 확인할 수 있습니다.

Linux / 명령어 / stat - 파일 정보와 메타데이터 확인

Linux / 명령어 / stat - 파일 정보와 메타데이터 확인

Linux stat 명령어로 파일 크기, 권한, 소유자, inode와 타임스탬프를 확인하는 방법을 설명합니다. atime·mtime·ctime·Birth의 차이와 출력 형식, 파일 시스템 조회법도 정리합니다.

Linux 강좌 / 표준 입력·출력, 리디렉션과 파이프 이해하기

Linux 강좌 / 표준 입력·출력, 리디렉션과 파이프 이해하기

표준 입력·출력·오류의 차이를 이해하고 파일 리디렉션과 파이프를 실습합니다. 덮어쓰기 위험과 리디렉션 순서도 함께 설명합니다.

Linux / 명령어 / ls - 파일과 디렉터리 목록 확인

Linux / 명령어 / ls - 파일과 디렉터리 목록 확인

Linux ls 명령어로 파일과 디렉터리 목록, 숨김 파일, 권한과 소유자, 크기 및 수정 시간을 확인하는 방법을 설명합니다. 자주 쓰는 옵션 조합과 정렬 방법, 스크립트에서 ls 출력을 안전하게 다루는 기준도 정리합니다.

Linux / 명령어 / ssh-keygen - SSH 키 쌍 생성과 지문 확인

Linux / 명령어 / ssh-keygen - SSH 키 쌍 생성과 지문 확인

Linux ssh-keygen 명령어의 기능과 기본 문법을 설명합니다. 실제 사용 예제, 주요 옵션과 작업 전 확인할 점을 알아봅니다.

Linux / 명령어 / rm - 파일과 디렉터리 삭제

Linux / 명령어 / rm - 파일과 디렉터리 삭제

Linux rm 명령어로 파일과 디렉터리를 삭제하는 방법을 설명합니다. 재귀 삭제, 대화형 확인, 루트 보호 옵션과 복구가 어려운 삭제를 안전하게 다루는 원칙을 정리합니다.

Linux / 명령어 / cmp - 두 파일을 바이트 단위로 비교

Linux / 명령어 / cmp - 두 파일을 바이트 단위로 비교

Linux cmp 명령어로 두 파일을 바이트 단위로 비교하는 방법을 설명합니다. 첫 차이 위치, 조용한 검사, 모든 차이 출력과 종료 상태 활용법을 정리합니다.

Linux / 명령어 / unalias - 명령어 별칭 삭제

Linux / 명령어 / unalias - 명령어 별칭 삭제

Bash unalias 명령어로 특정 별칭이나 모든 별칭을 제거하는 방법을 설명합니다. 일시 제거와 영구 제거, 별칭 우회 및 함수·변수 삭제와의 차이를 정리합니다.