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 / 리눅스 역사 - 1991년 취미 프로젝트가 세계 인프라가 되기까지

Linux / 리눅스 역사 - 1991년 취미 프로젝트가 세계 인프라가 되기까지

리눅스는 1991년 시작된 커널 프로젝트에서 서버·클라우드·모바일을 떠받치는 기반 기술로 성장했습니다. UNIX와 GNU의 배경부터 배포판과 공동 개발 생태계의 확장까지 핵심 연표로 정리합니다.

Linux / 명령어 / tail - 파일의 마지막 내용과 로그 실시간 확인

Linux / 명령어 / tail - 파일의 마지막 내용과 로그 실시간 확인

Linux tail 명령어로 파일의 마지막 행과 바이트를 확인하고 새로 추가되는 로그를 추적하는 방법을 설명합니다. -n, -f, -F 차이와 로그 로테이션, 필터링 및 여러 파일 모니터링 예제를 정리합니다.

Linux 강좌 / 파일과 디렉터리 관리 - 생성·복사·이동·삭제

Linux 강좌 / 파일과 디렉터리 관리 - 생성·복사·이동·삭제

실습 폴더에서 파일과 디렉터리를 만들고 복사·이동·삭제해 봅니다. 덮어쓰기와 삭제 전에 경로와 결과를 확인하는 습관도 익힙니다.

Linux / 명령어 / screen - 터미널 세션 유지와 관리

Linux / 명령어 / screen - 터미널 세션 유지와 관리

Linux screen 명령어로 원격 터미널 세션을 분리하고 다시 연결하는 방법을 설명합니다. 세션·창 관리, 로그 기록, 문제 해결과 nohup·tmux·systemd의 차이를 정리합니다.

Linux / 명령어 / whatis - 명령어의 한 줄 설명 확인

Linux / 명령어 / whatis - 명령어의 한 줄 설명 확인

whatis 명령어로 매뉴얼 페이지의 한 줄 설명과 섹션을 확인하는 방법을 설명합니다. 정규 표현식·와일드카드 검색, apropos·type과의 차이 및 색인 문제 해결법을 정리합니다.

Linux / 명령어 / tr - 표준 입력의 문자 치환과 삭제

Linux / 명령어 / tr - 표준 입력의 문자 치환과 삭제

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

Linux / 명령어 / nc - TCP·UDP 연결과 포트 점검

Linux / 명령어 / nc - TCP·UDP 연결과 포트 점검

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

Linux / 명령어 / tracepath - 네트워크 경로와 경로 MTU 확인

Linux / 명령어 / tracepath - 네트워크 경로와 경로 MTU 확인

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

Linux / 명령어 / ethtool - 네트워크 링크·드라이버 정보 확인

Linux / 명령어 / ethtool - 네트워크 링크·드라이버 정보 확인

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

Linux / 명령어 / man - 명령어 매뉴얼 확인

Linux / 명령어 / man - 명령어 매뉴얼 확인

man 명령어로 리눅스 매뉴얼을 읽고 검색하는 방법을 설명합니다. 매뉴얼 섹션, 화면 이동, 키워드 검색, 셸 내장 명령 확인과 문서가 없을 때의 해결 방법을 함께 정리합니다.