← 전체 글로 돌아가기

서버 운영

서버 재부팅 후 포트가 제대로 열렸는지 확인하기

서버를 재부팅했을 때 실제로 필요한 포트들이 다시 열렸는지 확인하는 것이 중요하다.

서버 재부팅은 의외로 위험할 수 있다

프로덕션 서버를 재부팅할 때마다 불안한 이유는 간단하다. 부팅 후 모든 서비스가 자동으로 시작되지 않을 수 있기 때문이다. 설정은 맞게 했는데 누군가 systemctl disable을 실행했거나, 스타트업 스크립트가 실패할 수도 있다.

그래서 재부팅 직후의 체크리스트가 필요하다.

열려 있어야 할 포트들 확인하기

먼저 현재 열려 있는 포트를 보자:

sudo ss -tlnp
# 또는 netstat 사용
sudo netstat -tlnp

이 명령어는 TCP 포트 리스닝 상태를 보여준다. 예를 들어:

  • 80 (HTTP)
  • 443 (HTTPS)
  • 3001 (Dokploy)
  • 8053 (Pi-hole 웹 UI)
  • 5432 (PostgreSQL)

각 포트마다 어떤 프로세스가 리스닝하는지 보여준다.

자동 시작 확인하기

systemd 서비스가 제대로 enable되어 있는지 확인:

sudo systemctl is-enabled nginx
sudo systemctl is-enabled redis-server
sudo systemctl is-enabled postgresql

enabled가 나와야 한다. 만약 disabled면:

sudo systemctl enable <service>

로그 확인

서비스가 정상 시작했는지 로그를 보자:

sudo systemctl status nginx
sudo journalctl -u nginx -n 50

에러가 있으면 이 단계에서 보인다.

내 경험

한 번은 재부팅 후 Nginx만 안 떴다가 한 시간을 낭비한 적이 있다. 포트 80은 열려있지 않은데 실제로는 다른 서비스가 시작하지 못했던 거였다. 그 이후로는 항상 재부팅 직후 ss -tlnp부터 보는 습관이 생겼다.