여기서는 멈추세요
- 명령 출력의 서버·서비스·경로가 예상 대상과 다르면 변경 단계로 넘어가지 않습니다.
- 현재 접속 세션, 백업 또는 콘솔 복구 경로를 확보하지 못했다면 상태 변경 명령을 실행하지 않습니다.
PORT CHECK
SAFE OPERATING BOUNDARY
변경 전 설정과 출력값을 기록하고, 예상과 다른 결과가 나오면 추가 변경을 멈춘 뒤 승인된 운영 복구 절차로 되돌립니다.
BEFORE YOU START
CHECK THE BRANCH
프로세스가 LISTEN이어도 loopback 주소에만 바인딩되면 다른 호스트에서는 접근할 수 없습니다.
0.0.0.0과 [::]의 리스닝 범위를 구분하고 실제 클라이언트가 사용하는 주소 체계와 맞는지 확인합니다.
호스트 namespace의 ss 결과만 보지 말고 Docker 포트 매핑과 systemd socket unit이 포트를 소유하는지도 확인합니다.
바인딩 주소를 확인한 뒤 호스트 방화벽, 클라우드 보안 규칙, 로드밸런서와 NAT를 서버 바깥 경계부터 순서대로 확인합니다.
FOLLOW THE FLOW
숫자 주소와 PID를 함께 표시합니다.
sudo ss -lntupLocal Address:Port와 users 영역에서 PID·프로세스 이름을 확인합니다.
문제 포트 번호를 정확히 기록합니다.
예시 8080을 실제 포트로 바꿉니다.
sudo lsof -nP -iTCP:8080 -sTCP:LISTENsudo ss -ntp | grep ':8080 'LISTEN 프로세스와 연결을 혼동하지 않습니다.
PID를 다음 단계에 사용합니다.
프로세스가 어느 사용자와 명령으로 시작됐는지 확인합니다.
ps -fp PID_NUMBERsudo readlink -f /proc/PID_NUMBER/exe예상 애플리케이션인지, 이전 배포의 잔여 프로세스인지 구분합니다.
systemd 관리 여부를 확인합니다.
unit을 알고 있다면 SERVICE_NAME을 바꿔 확인합니다.
systemctl status SERVICE_NAME --no-pager -ljournalctl -u SERVICE_NAME -n 100 --no-pagersudo ss -lntp 'sport = :8080'127.0.0.1은 외부 인터페이스에서 접근할 수 없습니다.sudo ufw status verboseUFW를 사용하지 않는 환경에서는 공급자 방화벽과 nftables 정책을 확인합니다.ip route get CLIENT_IPCLIENT_IP를 실제 접속 출발지 주소로 바꿉니다.LISTEN 주소가 외부 인터페이스를 포함하고 로컬 연결이 되는데 외부만 실패하면 호스트 밖 보안 그룹·로드밸런서·NAT 범위를 확인합니다.
서버 설정을 반복 변경하기 전에 어느 네트워크 경계에서 패킷이 끊기는지 담당자와 대조합니다.
서비스 중단 영향과 올바른 unit 이름을 확인합니다.
sudo systemctl stop SERVICE_NAMEsudo ss -lntup | grep ':8080 ' || echo '포트가 비어 있습니다'예상 프로세스만 종료되고 포트가 해제됐는지 확인합니다.
새 서비스를 기동한 뒤 헬스체크까지 수행합니다.
PRIMARY REFERENCES
배포판과 버전에 따라 옵션·로그 위치가 다를 수 있습니다. 실행 전 서버의 --help와 로컬 매뉴얼을 함께 확인하세요.