Linux Connection Timed Out 오류의 원인과 해결 방법

Linux 서버를 운영하다 보면 SSH 접속, 웹 서버, 데이터베이스 연결, API 호출 중 Connection timed out, ETIMEDOUT 오류를 자주 접하게 됩니다. 이 오류는 목적지 서버까지의 네트워크 경로는 존재하지만, 일정 시간 동안 응답을 받지 못해 연결이 실패했을 때 발생합니다.

No route to host와 혼동하기 쉽지만, Connection Timed Out은 라우팅은 정상적으로 이루어졌으나 응답이 없는 상태라는 점이 가장 큰 차이입니다.

이번 글에서는 Connection Timed Out 오류의 원인과 확인 방법, 해결 방법을 실무 중심으로 자세히 알아보겠습니다.

Connection Timed Out이란?

애플리케이션이 서버에 TCP 연결을 요청하면 다음과 같은 과정을 거칩니다.

Client

↓

TCP SYN

↓

Server

↓

SYN-ACK

↓

ACK

↓

Connection Established

하지만 서버가 SYN-ACK를 보내지 않거나 중간 네트워크에서 패킷이 손실되면 일정 시간이 지난 후 다음과 같은 오류가 발생합니다.

Connection timed out

ETIMEDOUT

즉, 연결 요청은 전송되었지만 응답을 받지 못한 상태입니다.

Connection Timed Out이 발생하는 주요 원인

대표적인 원인은 다음과 같습니다.

  • 서버 다운
  • 서비스 미실행
  • 방화벽 차단
  • Security Group 차단
  • Network ACL 차단
  • 네트워크 장애
  • 패킷 손실
  • 과부하로 인한 응답 지연
  • VPN 문제
  • Load Balancer 문제

실무에서는 방화벽 정책이나 서버 과부하가 가장 흔한 원인입니다.

1. Ping으로 서버 확인하기

먼저 서버가 응답하는지 확인합니다.

ping 192.168.10.100

Ping이 실패하더라도 ICMP 차단일 수 있으므로 이것만으로 판단하지 않습니다.

2. 포트 연결 확인하기

특정 포트가 열려 있는지 확인합니다.

nc -zv 192.168.10.100 80

또는

telnet 192.168.10.100 80

연결이 되지 않는다면 서비스 또는 방화벽 문제일 가능성이 있습니다.

3. Routing 확인하기

라우팅 정보를 확인합니다.

ip route

기본 게이트웨이도 확인합니다.

ip route | grep default

라우팅이 잘못되면 정상적인 연결이 어렵습니다.

4. Traceroute 실행하기

패킷이 어디에서 멈추는지 확인합니다.

traceroute 192.168.10.100

또는

tracepath 192.168.10.100

중간 네트워크 장비에서 문제가 발생하는지 분석할 수 있습니다.

5. 서버에서 Listen 확인하기

목적지 서버에서 서비스가 실행 중인지 확인합니다.

ss -tlnp

또는

lsof -iTCP -sTCP:LISTEN

서비스가 Listen 상태가 아니라면 연결은 시간 초과됩니다.

6. 방화벽 확인하기

iptables

iptables -L -n

firewalld

firewall-cmd --list-all

필요한 포트가 허용되어 있는지 확인합니다.

7. 서버 부하 확인하기

CPU와 Load Average를 확인합니다.

top

또는

uptime

Load Average가 매우 높으면 응답이 지연될 수 있습니다.

8. 패킷 캡처하기

SYN 패킷이 도착하는지 확인합니다.

tcpdump -i eth0 tcp port 80

다음 사항을 확인합니다.

  • SYN만 보임
  • SYN-ACK 없음
  • Retransmission 발생

이를 통해 어느 구간에서 문제가 발생하는지 확인할 수 있습니다.

9. 클라우드 환경 확인하기

AWS에서는 다음 항목을 확인합니다.

  • Security Group
  • Network ACL
  • Route Table
  • Target Group Health Check

Azure와 GCP도 동일하게 네트워크 정책을 확인합니다.

10. 로그 확인하기

커널 로그

journalctl -k

서비스 로그

journalctl -u nginx

또는

journalctl -u tomcat

서비스 오류나 네트워크 관련 메시지를 함께 확인합니다.

Connection Timed Out 점검 순서

실무에서는 다음 순서대로 확인하는 것이 좋습니다.

  1. Ping 확인
  2. 포트 연결 확인
  3. Routing 확인
  4. Traceroute 실행
  5. Listen 상태 확인
  6. 방화벽 확인
  7. 서버 부하 확인
  8. tcpdump 분석
  9. 클라우드 네트워크 정책 확인
  10. 로그 확인

Connection Timed Out 사용 시 주의사항

다음 사항을 고려해야 합니다.

  • Ping 결과만으로 판단하지 않는다.
  • 서비스가 실제 Listen 중인지 확인한다.
  • 방화벽과 Security Group을 함께 확인한다.
  • 서버 과부하도 원인이 될 수 있다.
  • tcpdump를 이용해 SYN/SYN-ACK 흐름을 확인한다.
  • 클라우드 환경에서는 Route Table도 함께 점검한다.

단순히 “접속이 안 된다”는 증상만으로 원인을 단정하지 말고 네트워크, 서비스, 보안 정책을 모두 확인하는 것이 중요합니다.

Connection Timed Out과 No Route to Host의 차이

항목Connection Timed OutNo Route to Host
오류 코드ETIMEDOUTEHOSTUNREACH
라우팅정상실패
TCP 연결SYN 전송 후 응답 없음SYN 전송 전 실패
주요 원인방화벽, 서버 다운, 과부하라우팅 오류, 게이트웨이 문제

Connection Timed Out은 경로는 존재하지만 응답이 없는 상태, No Route to Host는 경로 자체를 찾지 못한 상태입니다.

자주 묻는 질문

Ping은 되는데 Connection Timed Out이 발생합니다.

서버는 살아 있지만 해당 서비스가 실행되지 않았거나 방화벽이 특정 포트를 차단하고 있을 가능성이 높습니다.

SSH에서 Connection Timed Out이 발생하는 이유는 무엇인가요?

SSH 서비스가 실행되지 않았거나, 22번 포트가 방화벽이나 Security Group에서 차단되었거나, 서버 부하가 매우 높은 경우 발생할 수 있습니다.

클라우드 환경에서 자주 발생하나요?

네. AWS, Azure, GCP에서는 Security Group, Network ACL, Load Balancer 설정 오류로 인해 Connection Timed Out이 자주 발생합니다.

마무리

Connection Timed Out(ETIMEDOUT)은 목적지까지의 네트워크 경로는 정상적으로 존재하지만 응답을 받지 못해 발생하는 대표적인 Linux 네트워크 오류입니다. ping, nc, traceroute, ss, tcpdump 등을 활용하면 원인을 빠르게 파악할 수 있으며, 방화벽과 서비스 상태, 서버 부하, 클라우드 네트워크 정책을 함께 점검하면 대부분의 문제를 해결할 수 있습니다.

댓글 남기기