프로그래밍공부(Programming Study)/네트워크(Network)

네트워크 트러블슈팅 필수 명령어 총집합 - 2탄 (feat. 실무 사례)

Chann._.y 2025. 3. 25.
728x90
네트워크 트러블슈팅 필수 명령어 총집합 - 2탄 (feat. 실무 사례)

Kubernetes 환경에서 네트워크 문제가 발생했을 때, 어떤 도구를 써야 할지 막막할 때가 많습니다.
이 글에서는 OSI 7계층 관점으로 주요 네트워크 트러블슈팅 명령어를 정리하고,
각 도구별로 실무에서 바로 써먹을 수 있는 옵션과 예시를 공유합니다.


🧱 OSI 7계층 한눈에 보기

계층 이름 주요 개념
L7 Application HTTP, DNS, SSH 등
L6 Presentation 인코딩, 암호화 (거의 신경 안 씀)
L5 Session 세션, 상태 유지
L4 Transport TCP, UDP
L3 Network IP, 라우팅
L2 Data Link MAC 주소, ARP
L1 Physical 케이블, 전기신호 등

🛠️ 네트워크 트러블슈팅 명령어 & 체크 계층

명령어 체크 계층 주요 용도
ping L3 ICMP로 연결성 확인
traceroute L3 경로 중단 위치 파악
nc (netcat) L4 포트 열림 여부 확인
curl L7 HTTP 응답 확인
wget L7 간단한 HTTP 요청
nslookup L7 DNS 확인 (간단)
dig L7 DNS 상세 쿼리
telnet L4 TCP 포트 테스트
tcpdump L2~L4 패킷 캡처
ip L2/L3 네트워크 상태, 라우팅 정보
ss / netstat L4 포트 상태 및 소켓 연결 확인
arp L2 ARP 테이블 조회

🧪 실무에서 자주 쓰는 명령어 예시

1. IP 연결 확인 - ping (L3)

ping -c 4 8.8.8.8        # 4번만 시도
ping -i 0.2 10.0.0.1     # 0.2초 간격으로

2. 포트 열려 있는지 확인 - nc (L4)

nc -zv naver.com 443
  • -z: 데이터 송수신 없이 연결만 시도
  • -v: 결과 상세 출력
  • 성공: succeeded!, 실패: Connection refused, timed out

3. HTTP 요청 테스트 - curl (L7)

curl -v https://naver.com
curl -I https://naver.com   # HEAD만 요청

4. 도메인 → IP 해석 - nslookup, dig (L7)

nslookup naver.com
dig naver.com +short

5. 라우팅 경로 확인 - traceroute (L3)

traceroute naver.com

6. 패킷 캡처 - tcpdump (L2~L4)

tcpdump -i eth0 port 443

7. 현재 포트 상태 보기 - ss / netstat (L4)

ss -tuln
netstat -anp | grep 8080

📌 문제 해결 실전 시나리오

"내가 있는 Pod에서 특정 도메인에 접근이 안 된다!"

  1. DNS 확인
  2. nslookup naver.com
  3. 네트워크 확인
  4. ping naver.com
  5. 포트 열려 있는지 확인
  6. nc -zv naver.com 443
  7. HTTP 정상 응답 여부 확인
  8. curl -v https://naver.com
  9. 그래도 안 되면?
  10. traceroute naver.com

🧰 Kubernetes 환경에서는 netshoot 이미지 활용!

kubectl debug -it pod/<pod-name> \
  -n <namespace> \
  --image=nicolaka/netshoot \
  --target=<container-name> \
  -- bash

netshoot는 위에서 소개한 모든 툴(curl, dig, tcpdump 등)이 다 들어있는 네트워크 디버깅용 만능툴입니다.


마무리

트러블슈팅 도구들을 무작정 외우는 것보다, OSI 계층 관점으로 "이건 어디까지 확인하는 도구인가?"를 기준으로 정리하면 훨씬 기억에 오래 남습니다.

728x90

댓글