터미널·서버 실무 · Part 5

네트워크 진단

서버가 안 붙어요 상황을 계층별로 좁혀 진단하기

작성 기준2026년 7월

이 파트에서 다루는 내용

연결 문제 진단 순서포트 확인연결 테스트이름 해석
01

연결 문제는 가까운 곳부터 확인합니다

서버가 안 붙는다는 신고는 원인이 여러 층에 걸쳐 있습니다. 서버 자체가 안 떴을 수도, 포트가 안 열렸을 수도, 방화벽이 막았을 수도, 주소 해석이 안 됐을 수도 있습니다.

무작정 여기저기 보지 말고 가까운 곳부터 한 층씩 확인하면 원인이 빠르게 좁혀집니다. 내 쪽에서 시작해 상대 쪽으로 나아갑니다.

1. 서버가 떠 있나
프로세스

Part 4의 ps 로 애플리케이션이 실제로 실행 중인지 봅니다. 안 떠 있으면 네트워크를 볼 필요가 없습니다.

2. 포트가 열렸나
리스닝

프로세스가 떠 있어도 포트를 안 잡고 있으면 접속이 안 됩니다. 서버가 해당 포트를 듣고 있는지 확인합니다.

3. 로컬에서 붙나
같은 서버 안

서버 자기 자신에서 접속이 되는지 봅니다. 되면 애플리케이션은 정상이고 문제는 바깥 경로에 있습니다.

4. 바깥에서 붙나
네트워크·방화벽

로컬은 되는데 바깥에서 안 되면 방화벽이나 네트워크 경로 문제입니다. 범위가 확 좁혀집니다.

핵심

안 붙는다는 한 문장을 층으로 나누면 진단이 쉬워집니다. 서버가 떴는지, 포트를 잡았는지, 로컬에서 붙는지, 바깥에서 붙는지를 순서대로 물으면 어느 층에서 끊겼는지 드러납니다.

02

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

프로세스가 떠 있어도 포트를 듣고 있지 않으면 접속이 안 됩니다. 어떤 프로세스가 어떤 포트를 잡고 있는지 확인하는 것이 핵심입니다.

포트 충돌도 흔합니다. 다른 프로세스가 이미 그 포트를 쓰고 있어 애플리케이션이 못 뜨는 경우입니다.

LISTEN 상태
듣고 있음

서버가 포트를 열고 접속을 기다리는 상태입니다. 목록에 내 포트가 LISTEN 으로 없으면 애플리케이션이 그 포트를 안 잡은 것입니다.

포트 충돌
기동 실패

Spring Boot 코스에서 다룬 Port already in use 가 이 경우입니다. ss 로 누가 그 포트를 쓰는지 찾아 정리하거나 포트를 바꿉니다.

0.0.0.0 과 127.0.0.1
바인딩 주소

127.0.0.1 로 열려 있으면 서버 자신만 접속 가능하고 바깥에서는 안 됩니다. 0.0.0.0 이어야 외부에서 붙습니다. 로컬은 되는데 바깥이 안 될 때 확인할 지점입니다.

ss -tlnp듣고 있는(LISTEN) 포트와 프로세스 확인
ss -tlnp | grep 8080특정 포트를 누가 잡고 있는지 확인
netstat -tlnpss 가 없는 예전 서버에서 같은 용도
lsof -i :8080특정 포트를 쓰는 프로세스 상세 확인
03

연결과 응답을 직접 테스트합니다

포트가 열렸으면 실제로 붙는지 확인합니다. 단순 연결이 되는지, 애플리케이션이 제대로 응답하는지를 나눠서 봅니다.

ping 이 안 되면
네트워크 계층

상대 서버까지 아예 닿지 않는 것입니다. 다만 보안상 ping 을 막아 둔 서버도 많아, ping 실패만으로 단정하지 않습니다.

curl 로 실제 응답
애플리케이션 계층

연결은 되는데 응답이 이상하면 애플리케이션 문제입니다. 상태 코드로 구분합니다. 응답 자체가 없으면 연결이나 방화벽, 있으면 애플리케이션을 봅니다.

timeout 과 refused 구분
증상 읽기
  • Connection refused: 포트가 닫혀 있음. 서버 미기동이나 포트 문제
  • timeout: 응답이 없음. 방화벽이 조용히 막았을 가능성
  • 이 둘의 차이가 원인을 크게 좁힙니다
ping example.com상대 서버까지 네트워크가 닿는지 확인
curl http://localhost:8080/health실제 HTTP 응답 확인. API 코스와 연계
curl -v http://localhost:8080연결 과정과 헤더까지 자세히 표시
curl -I http://localhost:8080응답 헤더와 상태 코드만 확인
nc -zv localhost 8080포트에 연결만 시도해 열림 여부 확인
04

주소가 제대로 풀리는지 확인합니다

도메인 주소로 접속할 때는 그 이름이 올바른 IP로 변환돼야 합니다. 이 변환(DNS)이 잘못되면 엉뚱한 곳으로 가거나 아예 못 찾습니다.

폐쇄망에서는 사내 DNS나 hosts 파일로 주소를 관리하는 경우가 많아, 이 부분에서 문제가 자주 생깁니다.

hosts 파일 우선
폐쇄망 흔함

/etc/hosts 에 적힌 주소는 DNS보다 먼저 적용됩니다. 예전에 넣어 둔 잘못된 매핑이 남아 엉뚱한 서버로 가는 경우가 있습니다. 접속이 이상하면 이 파일을 확인합니다.

이름은 되는데 접속이 안 되면
구분

nslookup 은 정상인데 접속이 안 되면 이름 해석은 문제가 아닙니다. 포트나 방화벽으로 넘어가 확인합니다.

사내 DNS
환경 확인

폐쇄망은 외부 DNS를 못 쓰고 사내 서버를 씁니다. 이 설정이 빠지거나 바뀌면 사내 주소를 못 찾습니다. 환경 설정을 먼저 확인합니다.

nslookup api.example.com도메인이 어떤 IP로 풀리는지 확인
dig api.example.com이름 해석 과정을 더 자세히 확인
cat /etc/hosts수동으로 지정된 주소 매핑 확인
getent hosts api.example.com시스템이 실제로 어떻게 해석하는지 확인
정리

네트워크 진단은 계층을 따라 좁히는 일입니다. 서버가 떴나, 포트를 잡았나, 로컬에서 붙나, 이름이 풀리나, 바깥에서 붙나. 각 층을 순서대로 확인하면 어느 지점에서 끊겼는지 반드시 드러납니다. 무작정 재시작하기 전에 어느 층인지부터 찾습니다.

체크

이 파트 완료 기준