리눅스 네트워크 트러블슈팅: 필수 도구와 해결 방법
네트워크 문제는 서버 운영 중 가장 자주 발생하는 이슈 중 하나입니다. 리눅스는 네트워크 문제를 진단하고 해결하기 위한 다양한 도구들을 제공합니다.
기본적인 네트워크 진단 도구
ping: 기본적인 연결성 테스트
# 기본 ping 테스트
ping google.com
# 특정 횟수만큼 ping 테스트
ping -c 4 8.8.8.8
netstat: 네트워크 연결 상태 확인
# 모든 연결 표시
netstat -an
# TCP 연결만 표시
netstat -t
# 리스닝 포트 확인
netstat -tlnp
traceroute: 패킷 경로 추적
# 목적지까지의 경로 추적
traceroute google.com
# TCP 기반 traceroute
tcptraceroute 8.8.8.8 443
고급 네트워크 진단 도구
ss: 소켓 통계
# 모든 TCP 소켓 표시
ss -ta
# 리스닝 포트만 표시
ss -tln
# 프로세스 정보 포함
ss -tlnp
tcpdump: 패킷 캡처 및 분석
# 특정 인터페이스의 트래픽 캡처
tcpdump -i eth0
# HTTP 트래픽만 캡처
tcpdump -i eth0 port 80
# 특정 호스트와의 트래픽 캡처
tcpdump host 192.168.1.100
일반적인 네트워크 문제와 해결 방법
1. DNS 문제
# DNS 확인
dig google.com
# DNS 서버 테스트
nslookup google.com
# resolv.conf 확인
cat /etc/resolv.conf
2. 포트 연결성 문제
# 포트 스캔
nmap -p 80,443 server.example.com
# TCP 연결 테스트
nc -zv server.example.com 80
# 방화벽 규칙 확인
iptables -L
3. 네트워크 인터페이스 문제
# 인터페이스 상태 확인
ip link show
# IP 주소 확인
ip addr show
# 라우팅 테이블 확인
ip route show
성능 관련 문제 해결
네트워크 대역폭 테스트
# iperf3 서버 시작
iperf3 -s
# iperf3 클라이언트 테스트
iperf3 -c server.example.com
네트워크 부하 모니터링
# 실시간 네트워크 모니터링
iftop -i eth0
# 프로세스별 네트워크 사용량
nethogs eth0
문제 해결 체크리스트
- 기본 연결성 확인
- ping 테스트
- DNS 확인
- 라우팅 테이블 확인
- 포트/서비스 확인
- netstat/ss로 포트 상태 확인
- 방화벽 규칙 확인
- 서비스 상태 확인
- 성능 이슈 확인
- 대역폭 테스트
- 패킷 손실 확인
- 지연시간 측정
네트워크 문제 해결의 핵심은 체계적인 접근 방식입니다. 위의 도구들을 활용하여 단계적으로 문제를 진단하고, 원인을 파악하여 해결하는 것이 중요합니다.
댓글남기기