Linux 서버를 운영하다 보면 네트워크 장애는 언제든 발생할 수 있습니다. 인터넷 연결이 되지 않거나, 특정 서버만 접속이 안 되거나, 속도가 느려지는 등 다양한 형태로 나타납니다. 하지만 장애가 발생할 때마다 무작정 명령어를 실행하기보다 일정한 순서로 점검하면 원인을 훨씬 빠르게 찾을 수 있습니다.
이번 글에서는 실제 시스템 관리자와 DevOps 엔지니어가 사용하는 Linux 네트워크 장애 종합 트러블슈팅 체크리스트를 소개합니다.
네트워크 장애 분석의 기본 원칙
네트워크 장애는 아래와 같은 순서로 확인하는 것이 가장 효율적입니다.
물리 계층 확인
↓
인터페이스 확인
↓
IP 주소 확인
↓
Gateway 확인
↓
Routing 확인
↓
DNS 확인
↓
Firewall 확인
↓
서비스 확인
↓
패킷 분석
↓
로그 분석
이 순서를 지키면 대부분의 네트워크 장애를 빠르게 해결할 수 있습니다.
1. 인터페이스 상태 확인
가장 먼저 NIC가 정상적으로 동작하는지 확인합니다.
ip link
또는
ip addr
확인 항목
- 인터페이스 UP 여부
- IP 주소 존재 여부
- MTU
- MAC 주소
DOWN 상태라면
ip link set eth0 up
으로 활성화합니다.
2. IP 주소 확인
현재 서버의 IP 설정을 확인합니다.
ip addr show
확인 사항
- 올바른 IP
- Subnet Mask
- Secondary IP 존재 여부
DHCP 환경이라면 임대 상태도 확인합니다.
3. Gateway 확인
Default Gateway를 확인합니다.
ip route
또는
ip route | grep default
Gateway까지 Ping 테스트합니다.
ping Gateway_IP
Gateway까지 통신되지 않으면 스위치, VLAN, Router를 의심해야 합니다.
4. Routing Table 확인
라우팅 정보를 확인합니다.
ip route
Policy Routing 환경이라면
ip rule
도 함께 확인합니다.
Static Route 충돌도 점검합니다.
5. DNS 확인
외부 IP 테스트
ping 8.8.8.8
도메인 테스트
ping google.com
IP는 되지만 도메인이 안 되면 DNS 문제입니다.
DNS 서버 확인
cat /etc/resolv.conf
6. Firewall 확인
iptables
iptables -L -n
firewalld
firewall-cmd --list-all
nftables
nft list ruleset
Firewall 정책으로 서비스가 차단되지 않았는지 확인합니다.
7. 서비스 포트 확인
현재 Listening 상태를 확인합니다.
ss -tulnp
또는
netstat -tulnp
SSH
HTTP
HTTPS
Database
포트가 정상적으로 열려 있는지 확인합니다.
8. 네트워크 품질 확인
Ping
ping 대상IP
MTR
mtr 대상IP
Traceroute
traceroute 대상IP
다음 항목을 확인합니다.
- Packet Loss
- Latency
- Jitter
- Hop
9. NIC 상태 확인
NIC 통계를 확인합니다.
ip -s link
Driver 정보
ethtool eth0
통계
ethtool -S eth0
다음 오류를 확인합니다.
- RX Errors
- TX Errors
- CRC Errors
- Dropped Packets
10. 패킷 캡처
실제 패킷 흐름을 분석합니다.
tcpdump -i eth0
HTTP만 확인
tcpdump -i eth0 port 80
DNS
tcpdump -i eth0 port 53
ARP
tcpdump -i eth0 arp
필요한 프로토콜만 선택적으로 분석합니다.
11. 시스템 부하 확인
CPU
top
메모리
free -h
전체 상태
vmstat 1
네트워크 장애처럼 보이지만 실제로는 CPU 과부하인 경우도 많습니다.
12. 로그 확인
커널 로그
journalctl -k
NetworkManager
journalctl -u NetworkManager
최근 로그
dmesg
Driver Reset
Link Down
NIC Error
등을 확인합니다.
실무 네트워크 장애 점검 순서
현업에서는 대부분 아래 순서대로 확인합니다.
- 인터페이스 확인
- IP 확인
- Gateway 확인
- Routing 확인
- DNS 확인
- Firewall 확인
- 서비스 포트 확인
- Ping
- MTR
- Traceroute
- NIC 상태 확인
- tcpdump
- CPU/Memory 확인
- 로그 분석
- 스위치 및 케이블 확인
이 순서만 숙지해도 대부분의 Linux 네트워크 장애를 체계적으로 해결할 수 있습니다.
자주 사용하는 네트워크 명령어
| 목적 | 명령어 |
|---|---|
| 인터페이스 | ip addr |
| 라우팅 | ip route |
| Gateway | ip route | grep default |
| DNS | cat /etc/resolv.conf |
| Ping | ping |
| 경로 확인 | traceroute |
| 품질 분석 | mtr |
| 패킷 분석 | tcpdump |
| 포트 확인 | ss -tulnp |
| NIC 정보 | ethtool |
| 로그 | journalctl |
자주 묻는 질문
네트워크 장애가 발생하면 가장 먼저 무엇을 확인해야 하나요?
가장 먼저 NIC 상태와 IP 주소를 확인해야 합니다. 인터페이스가 DOWN 상태이거나 IP가 없으면 이후 점검은 의미가 없습니다.
Ping은 정상인데 서비스 접속이 안 됩니다.
Firewall, 서비스 포트, 애플리케이션 실행 상태를 확인해야 합니다. ss -tulnp로 포트가 열려 있는지 확인하는 것이 좋습니다.
tcpdump는 언제 사용하는 것이 좋나요?
라우팅과 설정에는 문제가 없어 보이지만 실제 패킷이 오가는지 확인해야 할 때 가장 효과적인 도구입니다. 요청은 들어오는데 응답이 나가지 않는 상황을 분석하는 데 특히 유용합니다.
마무리
Linux 네트워크 장애는 증상은 다양하지만 점검 순서는 거의 동일합니다. 인터페이스 → IP → Gateway → Routing → DNS → Firewall → 서비스 → 패킷 → 로그 순서로 확인하면 대부분의 문제를 빠르게 해결할 수 있습니다. ip, ping, mtr, tcpdump, ethtool, journalctl과 같은 핵심 명령어를 익혀두면 실무에서 발생하는 다양한 네트워크 장애에 효과적으로 대응할 수 있습니다.