Trippy - 네트워크 진단 도구 치트시트
trippy (바이너리: trip)는 traceroute와 ping을 하나의 라이브 TUI로 통합하는 Rust 네트워크 진단 도구입니다. 모든 홉에 대해 전송/수신된 패킷, 손실률, 그리고 마지막/평균/최적/최악/표준편차 지연 시간을 표시하며, 지터 분석, 히스토그램, GeoIP, DNS 해석을 포함합니다. ICMP, UDP, TCP 프로브를 지원하고 여러 대상을 동시에 추적할 수 있어서 “네트워크가 어디서 끊기는가?”라는 질문에 기존의 traceroute + ping 조합보다 훨씬 빠르게 답할 수 있습니다.
설치
| 플랫폼 | 명령어 |
|---|
| Cargo (모든 플랫폼) | cargo install trippy |
| macOS (Homebrew) | brew install trippy |
| Arch Linux | sudo pacman -S trippy |
| Debian/Ubuntu | sudo apt install trippy |
| Fedora | sudo dnf install trippy |
| Nix | nix-env -iA nixpkgs.trippy |
| Windows (Scoop) | scoop install trippy |
권한
ICMP/원본 소켓에는 상위 권한이 필요합니다:
sudo trip example.com
# 또는 Linux에서 한 번만 capability를 부여한 다음 sudo 없이 실행:
sudo setcap cap_net_raw+ep $(which trip)
기본 사용법
| 명령어 | 설명 |
|---|
trip example.com | 호스트 추적 + ping (ICMP, 라이브 TUI) |
trip example.com google.com | 여러 대상 동시에 추적 |
trip 1.1.1.1 | IP 직접 추적 |
trip --help | 전체 옵션 목록 |
trip --version | 버전 |
프로토콜 및 프로브 옵션
| 옵션 | 설명 |
|---|
-i, --interface eth0 | 특정 소스 인터페이스 사용 |
--icmp | ICMP 프로브 (기본값) |
--udp | UDP 프로브 |
--tcp | TCP 프로브 (방화벽을 통과하기 좋음) |
-p, --target-port 443 | 대상 포트 (UDP/TCP) |
--first-ttl N | 주어진 TTL부터 시작 |
--max-ttl N | 최대 홉 수 |
-4 / -6 | IPv4 / IPv6 강제 |
타이밍 및 속도
| 옵션 | 설명 |
|---|
--min-round-duration 100ms | 라운드당 최소 시간 |
--max-round-duration 1s | 라운드당 최대 시간 |
--initial-sequence N | 시작 시퀀스 번호 |
--read-timeout 1s | 프로브당 읽기 타임아웃 |
--grace-duration 100ms | 늦은 응답 대기 |
DNS 및 GeoIP
| 옵션 | 설명 |
|---|
-r, --dns-resolve-method system | 해석기: system, resolv, google, cloudflare |
-z, --dns-lookup-as-info | 홉별 AS (자율 시스템) 번호 표시 |
--dns-resolve-all | 호스트의 모든 IP 해석 |
--geoip-mmdb-file GeoLite2-City.mmdb | 홉별 도시/국가 GeoIP 추가 |
대화형 키
| 키 | 동작 |
|---|
↑ / ↓ | 홉 선택 |
Tab | 대상 간 전환 |
z | 홉 차트 전환 |
h | 도움말 전환 |
q | 종료 |
Esc | 패널 닫기 |
보고서 (비대화형)
trippy는 스크립트 및 티켓용 원샷 보고서를 내보낼 수 있습니다.
| 명령어 | 설명 |
|---|
trip example.com -m report | 테이블 보고서 출력 후 종료 |
trip example.com -m json | JSON 출력 |
trip example.com -m csv | CSV 출력 |
trip example.com -m stream | 연속 텍스트 스트림 |
trip example.com -m flows | 서로 다른 라우팅 흐름 표시 (ECMP) |
일반적인 워크플로우
# 지연 시간이 어디에 있나? AS 정보와 함께 추적하고 30홉 상한선 설정
sudo trip example.com -z --max-ttl 30
# 방화벽을 통해 진단 (ICMP 드롭)
sudo trip example.com --tcp -p 443
# 두 업스트림 사이에 나란히 비교
sudo trip 1.1.1.1 8.8.8.8
# 지원 티켓에 첨부할 보고서 캡처
sudo trip example.com -m json > trace-report.json
Trippy vs 기존 도구
| 도구 | ping+traceroute 결합 | 다중 대상 | TUI | 프로토콜 |
|---|
| trippy | 예 | 예 | 풍부함 | ICMP/UDP/TCP |
| mtr | 예 | 아니오 | 기본 | ICMP/UDP |
| traceroute | 아니오 | 아니오 | 아니오 | ICMP/UDP/TCP |
| ping | 아니오 | 아니오 | 아니오 | ICMP |
리소스