C.W.K.
Stream
Lesson 08 of 08 · published

네트워크 도구 — ping, dig, traceroute

~10 min · ping, dig, traceroute, netcat

Level 0창 구경꾼
0 XP0/95 lessons0/14 achievements
0/100 XP to next level100 XP to go0% complete

shell 에서 연결 진단

'안 떠' 라고 할 때 어디서 끊겼는지 알려주는 작은 도구 넷: ping, dig, traceroute, nc (netcat). 각자 다른 layer 답함.

ping — 호스트 도달 가능?

ping -c 4 example.com

ICMP Echo 패킷. -c 4 4 회 후 종료. 응답 받으면 IP 레이어 OK. 'unknown host' = DNS 깨짐. 'timeout' = 방화벽이 ICMP 차단 / 호스트 다운.

dig — DNS 가 뭐로 풀리나?

dig example.com
dig example.com A           # IPv4 만
dig example.com AAAA        # IPv6 만
dig example.com MX          # 메일 서버
dig +short example.com      # 답만
dig @8.8.8.8 example.com    # Google DNS 한테 직접 묻기

dig +short 가 스크립트 친구. 전파 디버깅엔 여러 resolver (@8.8.8.8, @1.1.1.1) 에 묻고 답 비교.

traceroute — 패킷 어디서 죽었나?

traceroute example.com
traceroute -P icmp example.com  # ICMP probe (UDP 안 통할 때 통하기도)

각 줄이 경로의 라우터. 어느 시점부터 매 hop 별표 (* * *) 면 보통 경로 파손 아니라 방화벽이 probe 조용히 drop. mtr (brew install mtr) 은 계속 갱신되는 traceroute — 불안정 link 찾을 때 좋음.

nc — raw TCP/UDP probe

nc -zv example.com 443    # 443 열려 있나?
nc -zv localhost 5432     # 로컬 Postgres listen 중?

-z = scan, 데이터 없음. -v = verbose. '저 포트로 TCP connection 가능?' 가장 빠른 질문 — 클라이언트 안 띄움.

triage 순서

  1. ping host — IP?
  2. dig +short host — DNS?
  3. nc -zv host port — 포트?
  4. curl -v https://... — TLS / HTTP?

이 넷을 순서대로 걸으면 실패하는 레이어가 fix 위치를 알려줘.

Code

URL 하나 triage·bash
host=example.com
ping -c 1 $host
dig +short $host
nc -zv $host 443
curl -sS -o /dev/null -w '%{http_code}\n' https://$host

External links

Exercise

이상한 URL (또는 example.com) 골라 위 네 단계 triage 실행. 이어서 mtr -r -c 30 example.com 으로 30 초간 모든 hop 의 스냅샷.

Progress

Progress is local-only — sign in to sync across devices.
이 페이지에서 버그를 발견하셨거나 피드백이 있으세요?문제 신고

댓글 0

🔔 답글 알림 (로그인 필요)
로그인댓글을 남기려면 로그인해 주세요.

아직 댓글이 없어요. 첫 댓글을 남겨보세요.