기본 콘텐츠로 건너뛰기

윈도우11 KB5066835 업데이트 문제 삭제 후 개발환경 복구후기 포트 바인딩 불가

윈도우11 KB5066835 업데이트 문제 삭제 후 개발환경 복구후기 포트 바인딩 불가에서 벗어나기

윈도우11 업데이트 직후부터 로컬에서 돌리던 웹앱이 뜻밖에 조용해졌다. 

브라우저는 응답을 기다리다 멈칫했고, Visual Studio 디버깅은 첫 단계에서 움직이지 않았으며, Docker로 띄운 백엔드 컨테이너는 정상적으로 떠 있는데도 외부에서 두드리면 아무 반응이 없었다. 


로그를 아무리 훑어봐도 애플리케이션 레벨의 예외는 없었고 결국 단서는 “포트가 열려 있는데 연결이 성립하지 않는다”는 기묘한 힌트였다. 문제를 좁혀보니 윈도우11의 KB5066835가 설치된 시점과 증상이 시작된 시점이 딱 겹쳤고, 해당 패치를 제거한 직후부터 localhost가 다시 숨을 쉬기 시작했다.

그럼 차근차근 복기해 보며 포트 바인딩 불가가 어떤 모습으로 나타났고, 무엇을 먼저 확인해야 시간을 덜 낭비하는지 기록한 복구 후기다

증상의 실제 체감: 서비스는 떠 있는데, 포트만 벽처럼 막힐 때

애플리케이션 프로세스는 정상 가동이고 CPU·메모리 사용량도 평소와 다르지 않았다. 

netstat로 확인하면 대상 포트는 LISTEN 상태인데 브라우저나 API 클라이언트에서 접근하면 곧바로 타임아웃이 나거나 HTTP/2 세션이 시작도 못 하고 떨어졌다. 

도커 컨테이너 앞단에 프록시를 두었을 때는 프록시가 502를 토해내며 백엔드로 핸드오프 자체를 못 하는 형태였다. 이런 패턴은 애플리케이션 내부 버그라기보다 커널 계층에서 소켓 수립이 가로막히는 때에 자주 보이는 얼굴이라 운영체제 쪽을 우선 의심했다

패치 제거로 반전된 흐름: 재부팅 한 번에 돌아온 localhost

패치 제거는 우선 순위를 단순하게 가져갔다. 


문제가 격발된 최신 패치를 먼저 지우고, 증상이 남으면 바로 이전 품질 업데이트까지 함께 되돌리는 흐름이다. 아래 명령으로 한 번에 처리했고, 재부팅 직후부터 127.0.0.1 응답이 정상으로 돌아왔다

wusa /uninstall /kb:5066835
wusa /uninstall /kb:5065789

삭제 이후에는 잠깐의 숨 고르기가 필요했다. IIS 앱풀과 Docker 데몬이 다시 초기화되며 포트를 재소유하는 데 수십 초 정도 걸렸고, 그 시간을 건너뛰고 바로 점검하면 또 실패로 오해하기 쉽다. 결국 중요한 건 “패치 제거 → 재부팅 → 서비스가 포트를 다시 잡도록 1~2분 대기 → 실제 호출”의 순서를 지키는 것이다

포트 바인딩 불가를 진단할 때 시간을 아껴주는 관찰 포인트

첫째, netstat이나 Get-NetTCPConnection에서 LISTEN이 보이더라도 안심하지 않는다. LISTEN 상태는 포트를 ‘소유’하고 있음을 의미할 뿐, 커널이 해당 요청을 정상적으로 ‘통과’시키고 있다는 보장은 아니다. 둘째, 127.0.0.1과 ::1을 각각 호출해 본다.

 특정 스택에서만 실패하는지 확인하면 우회 실마리가 생긴다. 셋째, 동일 바이너리를 다른 포트로 즉시 띄워본다. 

애플리케이션 문제가 아니라면 포트만 바꾼 인스턴스에서도 동일하게 막히는 경향이 강하다. 이 세 가지 체크를 통해 애플리케이션 레벨에서 헤매는 시간을 크게 줄일 수 있었다

IIS · Docker · WSL별 복구 후 점검 스냅샷

운영 체감상 각 환경은 비슷한 원인으로 막히지만 회복되는 체감 포인트는 조금씩 달랐다. 아래 표의 항목을 순서대로 확인하면 재가동 직후의 불안정을 빠르게 정리할 수 있었다

환경 정상화 확인 포인트 필요 시 추가 점검
IIS appcmd로 사이트 상태 확인 후 localhost 즉시 응답 앱풀 재시작, 포트 재바인딩, URL 예약 상태 재확인
Docker 컨테이너 기동 직후 포트 노출이 Established로 전환 compose 강제 재생성, 프록시 컨테이너부터 순차 재기동
WSL wsl --shutdown 이후 백엔드 프로세스 재기동 즉시 호출 성공 네임 리졸브보다 127.0.0.1 직통 호출로 먼저 검증

재발 방지까지 포함해야 진짜 복구: 자동 재설치 차단의 필요

여기서 멈추면 같은 문제가 며칠 뒤 슬그머니 돌아온다. 

업데이트가 백그라운드에서 동일 KB를 재배포하기 때문이다.

 블로킹을 과하게 걸 필요는 없지만 최소한 문제 KB가 자동으로 재설치되지 않도록 업데이트 지연 또는 정책 기반 차단을 걸어두면 장기적으로 훨씬 평온하다. 

마이크로소프트 공식 수정이 배포되면 일시적으로 해제하고 검증된 핫픽스만 수동 적용하는 방식이 가장 안전했다

개발 흐름을 지키는 소소한 팁: 느린 복구 구간을 오해하지 않기

패치 제거와 재부팅 직후 성급하게 부하를 걸면 아직 데몬이 소켓을 완전히 잡지 못한 상태에서 재차 실패가 난다. 그때마다 설정을 뒤흔들면 오히려 회복 시간을 늘린다. 

포트를 다시 연 직후에는 짧은 웜업 구간이 자연스럽다. 모니터링을 켜두고 Established 전환을 확인한 다음 실제 트래픽을 흘리는 식으로 리듬을 잡으면 체감상 훨씬 매끄럽다

정리하며: 포스트모템 관점에서 남겨둔 체크리스트

애플리케이션 로그가 말이 없고, 프로세스는 멀쩡하고, 포트는 열린 것 같은데 요청이 들어오지 않는다면 커널 쪽의 간섭을 의심해 보는 것이 시간을 아낀다. 이번 케이스는 업데이트 제거가 즉효였고, 재설치 차단으로 안정성을 되찾았다. 무엇보다도 복구 과정에서 “서비스 재기동 → 포트 재확보 → 웜업 대기”의 순서를 지키는 습관이 다음 장애에서도 강력한 방어선이 될 것이다

FAQ. 포트가 LISTEN인데도 cURL이 멈추는 이유는 무엇일까?

LISTEN은 포트를 소유 중이라는 신호일 뿐이다. 커널이 연결 수립을 정상적으로 통과시키지 않으면 클라이언트에서는 SYN 이후 왕복이 매끄럽게 이어지지 않아 타임아웃으로 끝난다. 애플리케이션 로그가 비어 있는 이유도 그 지점 이전에서 끊기기 때문이다

FAQ. 패치 제거 뒤에도 간헐적으로 느린 이유는?

서비스가 포트를 재바인딩하고 내부 캐시와 JIT, 컨테이너 네트워크를 따로 올리는 구간이 있어 초기 호출이 굼뜰 수 있다. 이 구간은 정상적인 웜업이며, 반복 지연이 아니라면 성능 이슈로 볼 필요가 없다

FAQ. 방화벽 예외나 hosts 수정으로 해결이 안 되는 까닭은?

방화벽과 hosts는 사용자 공간의 경로 문제를 다룬다. 커널 계층에서 응답 자체가 누락되면 이 두 설정을 바꿔도 증상은 그대로다. 문제의 층위를 구분해 접근해야 한다

FAQ. Docker만 쓰는데 IIS 점검이 필요한가?

직접 IIS를 사용하지 않더라도 동일한 커널 네트워크 스택 위에서 돌아간다. 포트 점유 충돌이나 URL 예약, 소켓 재확보 과정은 공통으로 확인해 두는 편이 안전하다

FAQ. 재설치 차단은 언제 풀어야 할까?

문제가 해결된 수정 패치가 공개되면 창구를 잠시 열어 검증된 KB만 수동으로 적용한다. 이후에는 다시 자동 배포를 켜도 무방하지만 동일 증상이 재현되면 즉시 차단을 재적용한다

관련 명령어 모음

rem 문제 패치 제거
wusa /uninstall /kb:5066835
wusa /uninstall /kb:5065789

rem 설치 내역 검증
Get-HotFix | findstr 5066835
Get-HotFix | findstr 5065789

rem WSL 초기화
wsl --shutdown

댓글

이 블로그의 인기 게시물

삼성 제품 시리얼번호로 제조일자 확인하는 방법

  삼성 제품 시리얼번호로 제조일자 확인하는 방법 (자세한 설명) 시리얼번호는 단순한 제품 식별번호 이상의 정보를 담고 있습니다. 제조 국가, 공장, 생산 라인, 그리고 제조 연월일 까지도 알 수 있는데요. 특히 삼성 제품 의 경우, 시리얼번호만으로도 제조일자를 확인할 수 있는 규칙이 존재합니다. 이번 글에서는 삼성 복합기 를 중심으로 시리얼번호 해석법을 자세히 설명하겠습니다. Tip: 삼성 외 다른 제조사의 제품들도 비슷한 방식으로 시리얼번호를 구성하는 경우가 많으니 참고하세요! 📌 삼성 복합기 시리얼번호 구성 삼성 복합기의 시리얼번호는 총 15자리 로 구성되어 있으며, 각 자리에 특정한 의미가 담겨 있습니다. ✅ 시리얼번호 자리별 의미 자리 내용 예시 (SCX-8128 기준) 1~4 모델 코드 Z8D4 5 제품군 코드 B (프린터) 6~7 생산 공장 및 라인 정보 (공장에 따라 다름) 8 생산년도 코드 C 9 생산월 코드 8 10~14 일련번호 (제품별 상이) 15 위조방지용 체크 디지트 (알고리즘 적용) 📆 생산년도 확인 방법 시리얼번호의 8번째 자리 가 바로 생산년도 를 의미합니다. 다만, 한 자리로 광범위한 연도를 표현해야 하기 때문에 알파벳 코드 를 사용하며, 이 코드는 20년 주기 로 순환됩니다. 🎯 생산년도 코드표 (삼성 기준) 코드 연도 (1차 순환) 연도 (2차 순환) A 1991 2011 B 1992 2012 C 1993 2013 D 1994 2014 E 1995 2015 F 1996 2016 G 1997 2017 H 1998 2018 J 1999 2019 K 2000 2020 L 2001 2021 M 2002 2022 N 2003 2023 P 2004 2024 Q 2005 20...

📱 아이폰 16 DFU 공장 초기화 및 벽돌 복구 가이드

 아이폰 16 사용 중에 갑자기 부팅이 안되거나 , 무한 재부팅(bootloop) , 또는 **벽돌 현상(Bricked)**이 발생할 수 있습니다. 또한, 루팅(Jailbreak) 시도 후 시스템 오류가 생기는 경우도 있습니다. 이러한 상황에서 DFU(디바이스 펌웨어 업데이트) 모드를 통해 공장 초기화를 진행하면 대부분의 문제를 해결할 수 있습니다. 아이폰16을 DFU 모드로 초기화 하는 방법과 루팅 또는 벽돌 상태에서 복구하는 방법, 그리고 초기화 후 발생할 수 있는 문제 해결법을 포함하고 있습니다. ⚡ 아이폰 벽돌(Bricked) 및 부팅 불가 원인 iOS 업데이트 실패 펌웨어 업데이트 도중 오류 발생 시 벽돌 현상이 발생할 수 있습니다. 루팅(Jailbreak) 시도 실패 탈옥 과정에서 시스템 파일이 손상되면 아이폰이 부팅되지 않거나 무한 부팅 루프에 빠질 수 있습니다. 불완전한 초기화 또는 복원 iOS 복원 과정에서 오류가 발생하면 부팅이 되지 않는 문제가 생길 수 있습니다. 하드웨어 결함 물리적 손상(충격, 침수 등)으로 인해 부팅이 되지 않는 경우도 있습니다. 🔄 아이폰 16 DFU 공장 초기화 방법 (벽돌 및 루팅 복구용) DFU 모드 는 아이폰을 펌웨어 레벨까지 초기화할 수 있는 가장 강력한 복원 모드입니다.  벽돌 , 루팅 실패 , 부팅 불가 문제 해결에 적합합니다. ✅ 초기화 전 준비사항 최신 iTunes 또는 Finder 설치 Mac (macOS Catalina 이상) : Finder 사용 Mac (macOS Mojave 이하) 또는 Windows PC : iTunes 사용 정품 USB 케이블 사용 비정품 케이블 사용 시 DFU 인식 오류가 발생할 수 있습니다. 데이터 백업 (가능할 경우) 벽돌 상태가 아니라면, iTunes 또는 iCloud로 데이터를 백업하세요. 🚀 DFU 모드 진입 방법 (아이폰 16) 아이폰 16을 컴퓨터에 연결 정품 라이트닝 케이블을 사용하세요. 아이폰을 DFU 모드로 진입 볼륨 업 버튼...

NX 3D CAD 중량 구하는 방법

NX 3D CAD 중량 구하는 방법 ​NX로 중량 무게를 측정하는 방법을 알아보겠습니다~! 1.객체 오브젝트를 하나 만듭니다 2.EDIT - FEATURE - SOLID DENSITY 1.객체 오브젝트를 선택한다 2.무게값(단위)를 정한다 3.OK 다른방법으로는 ANALYSIS - MEASURE BODIES  클릭 1.객체선택 후 2.원하는 측정값을 선택하면 무게나 질량등이 측정된다