
claude-net-check는 Claude Code에서 EPROTO, ECONNRESET, bad record mac 또는 TLSV1_ALERT_DECODE_ERROR 오류가 나지만 인터넷 연결은 정상일 때, 네트워크 경로가 큰 HTTPS 전송을 방해하는지 확인하는 스크립트다.
Node.js가 필요하며, Node.js v24에서 테스트했다. 표준 라이브러리만 사용하므로 더 오래된 버전에서도 작동할 수 있지만 확인되지는 않았다. 별도 의존성이나 설치 과정은 없다.
node claude-net-check.js
스크립트는 api.anthropic.com에 문자 “a”로 채운 데이터를 1KB, 50KB, 300KB, 1MB 크기로 각각 25회 전송하고 성공 횟수를 센다. API 키나 실제 콘텐츠는 보내지 않으며, 서버는 오류 상태 코드로 응답한다. 이 검사는 업로드 중 TLS 연결이 유지되는지 확인한다. HTTPS 트래픽을 보안 제품이 다시 서명하는지 살필 수 있도록 인증서 발급자도 출력한다.
제작자가 실제 문제가 발생한 기기에서 얻은 예시에서는 1KB 전송이 25회 모두 성공했지만, 큰 전송은 실패가 반복됐다. 작은 요청은 성공하고 큰 요청은 연달아 실패하는 양상은 Claude Code 자체의 문제가 아니라 사용자와 API 사이에서 긴 TLS 전송을 손상시키는 요소가 있음을 가리킨다.
결과는 다음과 같이 해석한다.
- 모든 업로드가 성공하면 네트워크 경로는 정상이며, 다른 원인을 살펴본다.
- 작은 업로드는 성공하고 큰 업로드가 실패하면 이 스크립트가 찾으려는 크기 의존적 문제일 수 있다.
- 일부만 실패하면 다시 실행한다. 한두 번의 실패는 일반적인 인터넷 변동일 수 있다.
- 거의 모든 업로드가 실패하면 방화벽, 프록시, VPN, DNS 등으로 연결이 차단됐거나 손상됐을 수 있다.
정상일 때 종료 코드는 0이고, 그 외에는 1이다. 크기에 따라 실패하는 문제가 나타나면 한 번에 한 가지씩 바꾸고 스크립트를 다시 실행해 원인을 좁힐 수 있다.
- 휴대전화 핫스팟 등 다른 네트워크에서 실행한다. 문제가 사라지면 라우터나 ISP 쪽을 의심할 수 있고, 계속되면 PC 쪽일 수 있다.
- Wi-Fi와 이더넷 어댑터를 바꿔 시험한다. 두 환경에서 결과가 같으면 네트워크 카드와 드라이버 문제일 가능성을 낮출 수 있다.
- 백신이나 방화벽의 HTTPS 검사 또는 Web Shield 기능을 확인한다. 제품을 꺼도 네트워크 드라이버가 계속 로드돼 TLS에 영향을 줄 수 있다. 인증서 발급자 경고를 확인하고 제품을 비활성화하거나 제거해 시험할 수 있다.
- VPN이나 기업용 프록시 연결을 끊고 다시 실행한다.
옵션으로 크기별 전송 횟수와 호스트, 업로드 제한 시간을 바꿀 수 있다.
node claude-net-check.js --runs 10 # fewer uploads per size (about 14 MB total at 10) node claude-net-check.js --host api.anthropic.com node claude-net-check.js --timeout 15000 # ms per upload
기본 설정에서는 총 약 34MB를 업로드한다. 판정 로직과 트래픽 가로채기 검사는 단위 테스트를 거쳤으며, node claude-net-check.test.js 실행 결과는 모두 통과했다. 실제 실행은 Windows 11 기기 한 대에서 이뤄졌고 대용량 업로드 실패가 재현됐다. macOS와 Linux에서는 시험하지 않았다. 도구는 문제가 없는 계층을 가려내고 의심할 계층을 제시하지만, 어떤 제품이 원인인지 증명하지는 않는다. 의심 항목은 진단이 아니라 점검을 시작할 순서다. 기기의 설정을 변경하지 않는 읽기 전용 도구이며 MIT 라이선스로 제공된다.
댓글 (0)
로그인하면 이 기사에 내 생각을 남길 수 있어요