서버 운영
서버 재부팅 후 포트가 제대로 열렸는지 확인하기
서버를 재부팅했을 때 실제로 필요한 포트들이 다시 열렸는지 확인하는 것이 중요하다.
서버 재부팅은 의외로 위험할 수 있다
프로덕션 서버를 재부팅할 때마다 불안한 이유는 간단하다. 부팅 후 모든 서비스가 자동으로 시작되지 않을 수 있기 때문이다. 설정은 맞게 했는데 누군가 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부터 보는 습관이 생겼다.