TIL

네트워크 에러 Top 5 정리

하얀잔디 2026. 5. 8. 13:21

 

 

 

 

에러 메시지 핵심 요인 비유
Refused 포트/프로세스 문제 "문 닫혔음"
Timeout 네트워크/방화벽 문제 "씹혔음"
Reset by Peer 비정상 종료/세션 만료 "강제 종료"
Broken Pipe 소켓 상태 불일치 "뒷북치기"
DNS Failure 이름 풀이 문제 "주소 못 찾음"

 

 

 

1. Connection Refused (ECONNREFUSED)

 

가장 흔한 에러 중 하나로, 서버(목적지) IP까지 도달은 했으나 해당 포트(Port)가 열려있지 않을 때 발생합니다.

  • 상태: 서버 하드웨어는 살아있지만, 요청을 받을 프로세스가 없거나 거절함.
  • 주요 원인:
    • 대상 서버의 프로세스(Nginx, DB 등)가 죽어 있음.
    • 포트 번호를 잘못 입력함 (예: 8080인데 80으로 요청).
    • 방화벽(iptables, Security Group 등)에서 해당 포트를 REJECT 설정해둔 경우.
  • 확인할 것: netstat -ntlp , ss -lntp 로 서버 포트가 리스닝 중인지 확인.

 

 


2. Connection Timeout (ETIMEDOUT / ConnectTimeout)

 

요청을 보냈는데 정해진 시간 동안 아무런 응답(ACK)이 돌아오지 않을 때 발생합니다.

  • 상태: 목적지 서버가 요청을 받았는지조차 알 수 없는 '묵묵부답' 상태.
  • 주요 원인:
    • 서버 IP가 잘못되었거나 존재하지 않음.
    • 네트워크 경로상의 방화벽이 패킷을 DROP 처리함 (조용히 무시).
    • 서버나 중간 라우터의 부하가 너무 심해 패킷이 유실됨.
  • 확인할 것: ping이나 traceroute로 경로 확인, 방화벽 Inbound 규칙 체크.

 


3. Connection Reset by Peer (ECONNRESET)

"얘기 잘 하다가 갑자기 전화를 확 끊어버림"

 

이미 연결(Established)된 상태에서 상대방이 강제로 TCP 연결을 끊었을 때 발생합니다. RST(Reset) 패킷을 받았다는 뜻입니다.

  • 상태: 통신 중에 비정상적인 종료가 발생함.
  • 주요 원인:
    • 서버 애플리케이션이 갑자기 Crash(Panic) 나서 종료됨.
    • 상대방 서버의 타임아웃 설정으로 연결이 끊겼는데, 이쪽에서 데이터를 보냄.
    • 중간에 있는 로드밸런서(L4/L7)나 방화벽의 세션 유지 시간이 만료됨.
  • 확인할 것: 서버 측 애플리케이션 로그, Keep-alive 설정 확인.

 


 

4. Broken Pipe (EPIPE)

"이미 끊긴 전화기에 대고 혼자 말하는 중"

Connection Reset과 비슷하지만, 이쪽(Client/Sender) 관점의 에러입니다. 상대방이 연결을 이미 끊었는데, 이를 모르고 계속 데이터를 쓰려고(Write) 할 때 발생합니다.

  • 상태: 송신측에서 쓰기 작업을 시도하다가 실패함.
  • 주요 원인:
    • 대용량 데이터를 전송하던 중 서버가 먼저 연결을 닫음.
    • 네트워크 순선(Sequence)이 꼬여서 소켓이 닫힌 상태.
  • 확인할 것: 전송 데이터 크기 확인, 서버 측 'Read Timeout' 설정 확인.

 


 

5. DNS Resolution Failure (NXDOMAIN / EAI_AGAIN)

"그런 주소는 없는데요?"

도메인 주소(FQDN)를 IP 주소로 바꾸지 못했을 때 발생합니다.

  • 상태: 통신을 시작하기도 전, 주소 찾기 단계에서 실패.
  • 주요 원인:
    • 도메인 오타.
    • DNS 서버(Resolv.conf) 설정 오류.
    • 새로 등록한 도메인이 아직 전파(Propagation)되지 않음.
    • 내부망(K8s 등)에서 Service Name을 찾지 못함.
  • 확인할 것: nslookup, dig 명령어로 도메인 조회 여부 확인.