Mac에서 Traceroute 실행하는 방법: 명령어, 출력, 의미 해석
Mac에서 traceroute를 실행하고, 각 홉을 읽고, 지연 및 방화벽을 발견하고, Terminal을 건너뛰고 싶다면 GUI를 사용하는 방법. macOS Sequoia 이후 버전을 다룹니다.
인터넷이 느리지만 연결은 기술적으로 작동하고 있습니다. 페이지는 결국 로드됩니다. 화상 통화가 끊깁니다. Mac과 서버 사이 어딘가에 문제가 있습니다. Traceroute가 정확히 어디인지 알려줍니다.
macOS traceroute는 데이터가 목적지로 가는 도중 통과하는 모든 라우터를 각각의 응답 시간과 함께 보여줍니다. 혼잡, 잘못 구성된 경로, 또는 죽은 링크가 있다면 출력에 나타납니다. 이 가이드는 traceroute 명령어, 반환 내용을 읽는 방법, 일반적인 패턴의 의미, 시각적 인터페이스를 선호한다면 Terminal 없이 Mac에서 traceroute를 실행하는 방법을 다룹니다.
Traceroute가 하는 것
데이터는 Mac에서 서버로 직접 이동하지 않습니다. 라우터 체인을 통해 홉합니다: 홈 라우터, ISP의 장비, 지역 백본 네트워크, 마지막으로 목적지의 네트워크. 각 단계를 홉이라고 합니다.
Traceroute는 모든 네트워크 패킷의 TTL(생존 시간)이라는 필드를 활용하여 이 체인을 매핑합니다. TTL은 카운터입니다. 패킷을 전달하는 모든 라우터가 1씩 감소시킵니다. TTL이 0에 도달하면 라우터가 패킷을 삭제하고 자신을 식별하는 오류 메시지를 보냅니다.
Traceroute는 TTL=1인 패킷을 보냅니다. 첫 번째 라우터가 삭제하고 응답합니다. Traceroute는 해당 라우터의 주소와 응답 시간을 기록하고 TTL=2 패킷을 보냅니다. 두 번째 라우터가 응답합니다. 이것이 패킷이 목적지에 도달할 때까지 홉 단위로 계속됩니다.
결과는 각 단계의 지연 측정과 함께 경로의 완전한 지도입니다.
macOS에서 traceroute 실행하기
Terminal을 열고 (Applications > Utilities > Terminal) 다음을 실행합니다:
traceroute google.com
결과는 각 홉이 응답함에 따라 줄 단위로 나타납니다. 전체 실행이 완료될 때까지 기다릴 필요 없이 초기 홉을 읽을 수 있습니다.
출력이 어떻게 보이는가
traceroute to google.com (142.250.80.46), 64 hops max, 52 byte packets
1 192.168.1.1 (192.168.1.1) 2.849 ms 2.103 ms 1.987 ms
2 96.120.68.69 (96.120.68.69) 12.445 ms 11.203 ms 10.987 ms
3 68.87.167.117 (68.87.167.117) 14.221 ms 13.008 ms 12.445 ms
4 * * *
5 72.14.215.171 (72.14.215.171) 18.334 ms 17.112 ms 16.889 ms
6 108.170.246.33 (108.170.246.33) 19.441 ms 18.902 ms 18.776 ms
7 lga34s32-in-f14.1e100.net (142.250.80.46) 20.112 ms 19.887 ms 19.654 ms
컬럼은 다음과 같습니다:
- 홉 번호 (맨 왼쪽): 체인의 위치. 홉 1은 홈 라우터입니다.
- 호스트명과 IP: 라우터의 신원. 역방향 DNS가 가능하면 호스트명을 제공하고, 아니면 IP만 보입니다.
- ms 단위의 세 가지 시간 판독값: traceroute는 홉당 세 가지 프로브를 보냅니다. 이것들이 각각의 왕복 시간입니다. 세 가지 판독값으로 불일관성을 발견할 수 있습니다: 두 개가 12ms이고 하나가 80ms라면 그 홉에 가끔 급등이 있는 것입니다.
유용한 플래그
| 플래그 | 기능 |
|---|---|
-n |
DNS 조회 건너뛰기. IP 주소만 표시, 더 빠르게 실행. |
-m 30 |
최대 홉 수 설정 (기본값은 64). 목적지가 가깝다고 알고 있을 때 유용. |
-q 1 |
세 개 대신 홉당 하나의 프로브만 보냄. 더 빠르고, 데이터가 적음. |
-w 2 |
5초 대신 홉당 2초만 대기. 응답하지 않는 홉에 대한 실행 속도를 높임. |
더 빠른 결과를 위한 일반적인 조합:
traceroute -n -q 1 -w 2 google.com
Traceroute 결과 읽는 방법
지연 진행
지연은 일반적으로 홉이 당신으로부터 더 멀어질수록 증가합니다. 홈 라우터는 1-5ms에 응답합니다. ISP 장비는 10-20ms일 수 있습니다. 국제 목적지는 100-200ms 이상일 수 있습니다. 이 진행은 정상입니다.
찾고 있는 것은 갑작스러운 급등입니다: 유사한 범위의 여러 연속 홉, 그런 다음 지연이 급격히 급등하여 이후 모든 홉에서 높게 유지되는 하나의 홉. 그 급등이 지연이 발생하는 곳을 가리킵니다.
지연이 하나의 홉에서 급등했다가 다음 홉에서 다시 떨어지면, 급등은 실제 데이터 경로가 아니라 그 라우터가 traceroute 프로브를 처리하는 방식에 있습니다. 일부 라우터는 일반 트래픽을 정상적으로 통과시키면서 진단 패킷에 응답하는 것을 낮은 우선순위로 처리합니다.
별표: * * *
별표 줄은 그 홉의 라우터가 타임아웃 내에 응답을 보내지 않았다는 의미입니다. 세 가지 원인:
- ICMP를 차단하는 방화벽: 많은 라우터, 특히 기업 및 통신 네트워크에서 traceroute 프로브를 자동으로 차단하도록 설정되어 있습니다. 이것이 가장 일반적인 이유입니다.
- 속도 제한: 라우터가 일부 프로브에는 응답했지만 전부에는 아닙니다.
* 14ms *와 같이 부분 응답을 볼 수 있습니다. - 실제 패킷 손실: 홉 사이의 링크에 실제 문제가 있습니다.
핵심 테스트는 별표 이후에 어떻게 되는가입니다. 경로가 계속되어 목적지에 도달하면 별표는 거의 확실히 방화벽 구성이며, 실제 문제가 아닙니다. 경로가 별표에서 멈추고 목적지에 도달하지 못하면 그 지점에 실제 단절이 있습니다.
완전한 예시 읽기
1 192.168.1.1 2 ms 2 ms 1 ms ← 홈 라우터, 정상
2 10.20.30.1 11 ms 10 ms 10 ms ← ISP의 첫 번째 홉, 정상
3 * * * ← 무음 홉, 아마도 방화벽
4 68.86.90.34 14 ms 13 ms 13 ms ← 경로 계속, 홉 3은 방화벽이었음
5 96.110.40.1 15 ms 15 ms 15 ms
6 96.110.40.2 180 ms 178 ms 179 ms ← 여기서 지연이 급등, 이 링크에 병목
7 162.151.77.10 182 ms 181 ms 180 ms ← 여기서부터 높게 유지
8 destination 184 ms 183 ms 182 ms
이 추적에서: 홉 1-5는 정상이고, 무음 홉 3은 방화벽(경로가 정상적으로 계속됨)이며, 홉 6이 무언가가 느려진 곳입니다. 문제는 홉 6이거나 그 전에 있습니다.
일반적인 패턴과 그 의미
홉 1에서 일관되게 높은 지연: 홈 라우터가 병목입니다. 과부하된 오래된 라우터, 동시에 너무 많은 클라이언트를 실행하는 라우터, 또는 하드웨어 문제가 있는 라우터에서 발생합니다. 재부팅이 때로는 도움이 되지만, 오래된 하드웨어를 교체하는 것이 더 지속적인 해결책입니다.
홉 2-4에서 지연 급등: ISP의 로컬 인프라가 혼잡합니다. 이것은 주거 지역의 저녁 피크 시간에 흔히 나타납니다. ISP에 전화하여 보고할 수 있지만, 기다리는 것 외에 할 수 있는 것이 없는 경우가 많습니다.
하나의 홉에서 높은 지연, 이후 홉은 정상: 그 라우터는 ICMP 응답 우선순위를 낮춥니다. 그것을 통한 실제 데이터 경로는 아마 괜찮습니다. 목적지도 높은 지연을 보이지 않는 한 이에 대해 행동하지 마세요.
지연이 급격히 급등하고 높게 유지: 이것이 실제 신호입니다. 급등하는 홉을 찾으면 그것이 병목입니다. 홉 1-2라면 로컬 네트워크입니다. 홉 3-5라면 ISP입니다. 홉 8 이후라면 당신의 손이 미치지 않는 곳입니다.
경로가 예상치 못한 지리를 통과: 근처 서버에 대한 연결이 다른 지역이나 심지어 다른 대륙을 통해 라우팅될 수 있습니다. 이것은 상당한 지연을 추가할 수 있습니다. 인터넷 라우팅은 물리적 근접성이 아닌 비용과 피어링 계약을 최적화하는 라우팅 테이블에 의해 제어됩니다. 50마일 거리의 데이터센터에 대한 연결이 유럽을 통해 라우팅된다면, 그것은 어딘가에서 라우팅 테이블 잘못 구성입니다.
패킷이 목적지에 전혀 도달하지 못함: 경로가 완전히 멈춥니다. 목적지가 다운되거나, 당신과 목적지 사이의 링크에 정전이 있거나, 방화벽이 프로브가 통과하는 것을 차단하고 있습니다. 같은 목적지에 ping을 시도하여 ICMP가 최소한 응답을 받는지 확인하세요.
Terminal 없이 Mac에서 Traceroute 실행하기
Terminal에서 작업하고 싶지 않다면 NetUtil에 표 기반 인터페이스가 있는 traceroute 도구가 포함되어 있습니다. 호스트명을 입력하고 Trace를 클릭하세요. 결과가 홉 번호, 호스트명, IP 주소, 세 가지 타이밍 값을 컬럼으로 하는 구조화된 표에 홉 단위로 나타납니다.
Apple은 이전에 그래픽 traceroute 탭이 있는 내장 앱인 네트워크 유틸리티에 이것을 포함했습니다. 네트워크 유틸리티는 macOS Monterey에서 제거되었습니다. NetUtil은 traceroute와 ping, DNS 조회, 포트 스캐닝, 기타 진단을 포함하는 무료 대체 앱입니다.
Terminal 출력보다 GUI의 실질적인 장점은 단순히 미학만이 아닙니다. 몇 분 간격으로 실행한 두 추적을 비교할 때, 같은 컬럼 레이아웃의 별도 창에서 차이점을 더 쉽게 볼 수 있습니다. 높은 지연 홉은 원시 텍스트를 스캔하지 않고도 눈에 띕니다.
모든 것이 Mac에서 로컬로 실행됩니다. Traceroute 프로브는 서드파티 서버를 통과하지 않고 직접 Mac에서 목적지로 갑니다.
발견한 것으로 무엇을 할까요
Traceroute는 진단하지만 수정하지는 않습니다. 배운 것이 다음에 할 일을 결정합니다.
홉 1-2의 문제 (로컬 네트워크): 라우터를 재부팅하세요. 네트워크의 다른 디바이스에서 문제가 나타나는지 확인하세요. 하나의 디바이스에서만 나타난다면 해당 디바이스의 네트워크 설정을 확인하세요. 모든 디바이스에서 나타난다면 라우터가 문제입니다.
홉 3-5의 문제 (ISP): traceroute 출력과 함께 지원에 전화하세요. 어떤 홉이 느린지 알면 지원 팀이 구체적으로 살펴볼 것이 생깁니다. 해당 IP 주소에서의 혼잡이나 문제에 대해 구체적으로 물어보세요.
ISP 너머의 문제: 느린 홉이 체인 아래쪽에 있다면 백본 네트워크나 목적지의 인프라에 있을 가능성이 높습니다. 보통 당신 측에서 조치할 수 있는 것이 없습니다. 기다렸다가 나중에 다시 확인하거나, VPN을 통해 라우팅하여 다른 경로가 병목을 피하는지 확인해 보세요.
목적지에 전혀 도달할 수 없음: downdetector.com 같은 서비스를 사용하여 사이트가 모든 사람에게 다운인지 확인하세요. 일반적인 정전이 아니라면, 다른 네트워크(폰의 LTE 등)에서 시도하여 문제가 연결에 특정한지 더 광범위한지 확인하세요.
다음번에 무언가가 느리게 느껴질 때 최악을 가정하기 전에 traceroute를 실행하세요. 약 30초가 걸리고 즉시 문제가 수정할 수 있는 것인지 기다려야 하는 것인지 알려줍니다.