리눅스에서 네트워크 점검 가이드
리눅스 네트워크 점검을 링크, IP, 라우팅, DNS, ICMP/TCP, ss, mtr, tcpdump, NetworkManager 순서로 분리해 보는 운영 가이드입니다.
리눅스 네트워크 점검은 ping 한 번으로 끝나지 않습니다. 링크 상태, IP 주소, 라우팅, DNS, 로컬 포트, 원격 TCP 연결, 경로 추적, 패킷 캡처를 계층별로 보면 원인을 훨씬 빨리 좁힐 수 있습니다.
인터페이스 링크 상태
먼저 NIC가 올라와 있는지, 링크가 잡혔는지 확인합니다.
ip -br link
ip -br addr
ethtool eth0 2>/dev/null | egrep 'Speed|Duplex|Link detected' || true
가상머신에서는 인터페이스 이름이 ens160, ens192, eth0처럼 다를 수 있습니다. 먼저 ip -br link로 실제 이름을 확인하세요.
IP 주소와 라우팅
IP와 기본 게이트웨이가 맞는지 확인합니다.
ip addr show
ip route show
ip route get 8.8.8.8
ip route get은 특정 목적지로 나갈 때 어떤 인터페이스와 source IP를 사용할지 보여줍니다. 다중 NIC 서버에서 라우팅이 꼬였는지 확인할 때 특히 유용합니다.
DNS 문제 분리
IP로는 접속되는데 도메인으로 안 되면 DNS를 분리해서 봅니다.
cat /etc/resolv.conf
getent hosts devmes.com
dig devmes.com
dig @8.8.8.8 devmes.com
getent hosts는 시스템 NSS 설정을 따르므로 /etc/hosts, DNS, LDAP 같은 실제 이름 해석 흐름을 확인하기 좋습니다. dig @8.8.8.8은 지정한 DNS 서버로 직접 물어보는 테스트입니다.
ICMP와 TCP를 나눠 보기
ping은 ICMP 확인일 뿐입니다. 방화벽이 ICMP를 막아도 TCP 서비스는 정상일 수 있습니다.
ping -c 4 8.8.8.8
ping -c 4 devmes.com
nc -vz -w 3 devmes.com 443
curl -I --connect-timeout 3 https://devmes.com/
ping은 실패하지만 curl이 성공하면 네트워크가 완전히 죽은 것은 아닙니다. 반대로 ping은 되는데 TCP가 실패하면 서비스 포트, 방화벽, 프록시, 로드밸런서를 봐야 합니다.
로컬 포트와 연결 상태
서버가 서비스를 제공하는 입장이라면 listen 포트와 연결 상태를 봅니다.
sudo ss -lntup
sudo ss -ant state established
sudo ss -s
연결이 많고 응답이 느린 경우에는 SYN backlog, TIME-WAIT, 애플리케이션 worker 고갈도 같이 봐야 합니다.
sudo ss -ant state syn-recv
sudo ss -ant state time-wait | wc -l
sysctl net.ipv4.tcp_max_syn_backlog net.core.somaxconn
경로 추적
목적지까지 어느 구간에서 지연이나 손실이 생기는지 볼 때는 traceroute나 mtr을 사용합니다.
traceroute devmes.com
mtr -rwzc 20 devmes.com
중간 hop에서 ICMP 응답을 제한하는 장비가 있을 수 있으므로, 중간 hop 하나의 loss만 보고 장애라고 단정하지 않습니다. 마지막 목적지와 이후 hop의 경향을 같이 봐야 합니다.
패킷 캡처로 최종 확인
설정은 맞아 보이는데 통신이 안 되면 패킷이 실제로 들어오고 나가는지 봅니다.
sudo tcpdump -ni any host 203.0.113.10 and port 443
sudo tcpdump -ni eth0 tcp port 22 -vv
SYN은 들어오는데 SYN/ACK가 안 나가면 로컬 방화벽이나 라우팅을 봅니다. SYN/ACK는 나가는데 클라이언트가 ACK를 안 보내면 중간 경로, NAT, 클라이언트 방화벽을 의심합니다.
NetworkManager 환경
서버가 NetworkManager를 사용한다면 프로파일 상태도 확인합니다.
nmcli device status
nmcli connection show
nmcli connection show --active
수동으로 ip addr add를 넣어 임시 복구한 설정은 재부팅 후 사라질 수 있습니다. 영구 설정은 Netplan, NetworkManager, systemd-networkd 중 해당 서버가 사용하는 관리 도구에 반영해야 합니다.
점검 순서
가장 빠른 흐름은 ip -br link, ip -br addr, ip route get, getent hosts, nc/curl, ss, mtr, tcpdump 순서입니다. 이 순서대로 보면 링크, 주소, 라우팅, DNS, TCP, 서비스, 경로, 패킷 레벨을 혼동하지 않고 판단할 수 있습니다.