v0.1.0 · MIT 라이선스
모든 요청을 확인하세요바로 내 컴퓨터에서
Reqeek는 로컬에서 HTTP/HTTPS 프록시를 실행하고 지나가는 모든 요청을 기록합니다 — 메서드, 상태 코드, 소요 시간, 첫 바이트 시간, 전체 body까지. 커널 확장도, 라우터 설정 변경도 없고 트래픽은 이 컴퓨터를 벗어나지 않습니다.
macOS와 Windows에서 사용할 수 있습니다
호스트 그룹을 클릭하면 요청이 펼쳐지고, 위의 유형 탭을 전환하면 목록이 필터링됩니다.
남길 만한 것은 모두
평문 HTTP부터 복호화된 HTTPS까지, 요청 헤더부터 응답 body까지 — Reqeek는 요청의 전체 모습을 펼쳐 보여줍니다.
HTTP 캡처
평문 HTTP 요청을 전달하고 메서드, URL, 상태 코드, 소요 시간, 첫 바이트 시간(TTFB), 양방향 전송 바이트를 기록합니다.
HTTPS 복호화
CONNECT 요청마다 사이트 인증서를 즉석에서 발급해 요청 헤더, 응답 헤더, 전체 body를 읽을 수 있습니다. 핸드셰이크에 실패한 호스트는 투명 터널로 대체됩니다.
WebSocket
평문 ws와 복호화된 wss를 모두 처리합니다. 업그레이드가 성공하면 바이트를 그대로 전달하고 양방향 트래픽을 집계합니다.
요청 상세
Headers, Payload, Preview, Response, Timing 다섯 개 패널. JSON과 XML은 접을 수 있는 트리로 표시하고 이미지와 HTML은 그 자리에서 미리 봅니다.
출처 앱 추적
클라이언트 소스 포트로 각 요청을 보낸 로컬 앱을 찾아냅니다. 사이드바가 앱별 요청 수를 집계하고, 앱을 클릭하면 그 트래픽만 볼 수 있습니다.
필터와 검색
리소스 유형이나 키워드로 필터링하고, 검색 반전, 오류만, 터널 숨기기를 지원합니다. 목록은 호스트별로 그룹화되고 모든 열을 정렬할 수 있습니다.
시스템 프록시 관리
기록을 시작할 때 시스템 프록시를 설정하고 중지하거나 종료할 때 원래대로 되돌립니다. 변경 전에 기존 설정을 먼저 디스크에 스냅샷으로 남기므로, 포트 바인딩이 실패해도 네트워크 설정은 건드리지 않습니다.
인증서 관리
루트 CA 생성, 설치와 신뢰, 신뢰 상태 확인, 제거까지 모두 앱 안에서 처리합니다. Keychain Access나 certmgr를 뒤질 필요가 없습니다.
동작 방식
커널 확장도, 네트워크 드라이버도, 외부로 나가는 트래픽도 없습니다. Reqeek는 가장 단순한 방법을 씁니다. 로컬에서 실행되는 프록시입니다.
- 1
루트 인증서가 신뢰되는지 먼저 확인
기록 시작을 누르면 Reqeek는 루트 CA가 신뢰되는지 먼저 확인합니다. 신뢰되지 않으면 캡처를 거부하고 UI는 인증서 설정 화면에 머뭅니다. 아무것도 잡지 못하는 창을 멍하니 보는 것보다 미리 알려주는 편이 낫습니다.
- 2
프록시를 띄운 뒤 시스템 프록시를 넘겨받기
프록시는 127.0.0.1에서 시작합니다. 포트 바인딩이 성공한 뒤에만 시스템 프록시 설정을 바꾸므로, 포트 충돌로 네트워크가 끊길 일은 없습니다.
- 3
전달하고 기록하기
평문 HTTP는 그대로 전달하고 기록합니다. HTTPS는 CONNECT를 통해 들어오며 기본적으로 443 포트만 복호화합니다. Apple 푸시와 OCSP 호스트는 기본으로 제외되어 터널로 기록됩니다 — 호스트, 바이트, 소요 시간만 남습니다.
- 4
중지할 때 원래대로 복원
중지하면 프록시를 내리기 전에 시스템 프록시를 먼저 복원합니다. 앱이 예기치 않게 종료되면 다음 실행 시 앞서 저장한 스냅샷으로 시스템 프록시를 복원합니다.
물어볼 만한 기본값 몇 가지
여기 적힌 숫자는 모두 소스에서 확인한 값이며 추측이 아닙니다.
- 수신 주소
- 127.0.0.1
- 로컬 연결만 허용 — 같은 네트워크의 다른 기기에서는 접근할 수 없습니다
- 프록시 포트
- 8989
- 설정에서 1024–65535 사이 아무 값으로나 바꿀 수 있습니다
- 기본 복호화 대상
- 443 포트
- 그 외 포트는 모두 터널로 전달됩니다
- 제외 호스트
- push.apple.com 등
- push.services.apple.com과 모든 OCSP 호스트를 포함하며 절대 복호화하지 않습니다
- 항목당 body 보관 한도
- 5 MiB
- 그 이상은 바이트 수만 기록합니다
- 상세 정보 메모리 예산
- 64 MiB
- 레코드 단위로 LRU 방식으로 밀어내며, 캡처한 내용은 디스크에 쓰지 않습니다
- 루트 CA 유효기간
- 10년
- 리프 인증서는 199일이며 512개 호스트까지 캐시합니다
플랫폼 지원
macOS와 Windows는 완전히 지원합니다. Linux는 아직 캡처할 수 없습니다.
| 기능 | macOS | Windows | Linux |
|---|---|---|---|
| 시스템 프록시 자동 설정 | 사용 가능 | 사용 가능 | 사용 불가 |
| 루트 인증서 설치와 신뢰 | 사용 가능 | 사용 가능 | 사용 불가 |
| 기록 시작 | 사용 가능 | 사용 가능 | 사용 불가 |
| 출처 앱으로 필터링 | 사용 가능 | 사용 가능 | 사용 불가 |
Linux에는 패키징 설정만 있고 시스템 프록시와 인증서 신뢰 드라이버가 없습니다. 신뢰 상태는 항상 지원되지 않음으로 보고되며, 캡처를 시작하려면 신뢰된 인증서가 필요하므로 시작이 거부됩니다. CI에서도 Linux 설치 파일을 빌드하지 않습니다.
Windows의 시스템 프록시와 인증서 신뢰 드라이버는 공개 문서를 따라 구현했으며, 실제 하드웨어에서 완전히 검증되지는 않았습니다. 문제가 있으면 알려주세요.
키보드 단축키
시작하고, 지우고, 검색하는 일에 키보드를 떠날 필요가 없습니다.
- 기록 시작 / 중지Cmd/Ctrl+R
- 기록 지우기Cmd/Ctrl+K
- 요청 검색Cmd/Ctrl+F
- 설정 열기Cmd/Ctrl+,
- 요청 목록에서 위아래로 이동↑+↓
보안과 개인정보
캡처 도구는 모든 트래픽을 볼 수 있으니, 그 자체로 신뢰할 만해야 합니다.
로컬 연결만
프록시는 127.0.0.1에 바인딩되며 LAN이나 인터넷에서 오는 연결은 받지 않습니다.
개인 키는 여기에 남습니다
루트 CA 인증서와 키는 앱 데이터 디렉터리에 있고 디렉터리는 0700, 키 파일은 0600입니다. 이 키를 가진 사람은 어떤 HTTPS 사이트든 위조할 수 있으니 ca.key를 절대 공유하지 마세요.
아무것도 디스크에 쓰지 않습니다
요청 상세는 메모리에만 있고 64 MiB 예산에 따라 LRU로 밀려납니다. 앱을 종료하면 아무것도 남지 않습니다.
앱 자체는 외부로 통신하지 않습니다
Reqeek는 어떤 데이터도 어디로도 보내지 않습니다. 계정도, 분석도, 텔레메트리도 없습니다.
한 번에 하나의 인스턴스
단일 인스턴스 잠금이 두 복사본이 서로의 시스템 프록시 설정을 복원하는 일을 막습니다.
Reqeek 다운로드
현재 버전 v0.1.0. 사용 중인 기기에 맞는 설치 파일을 고르세요.
다운로드 링크는 GitHub Releases를 가리킵니다. 연결이 느리다면 중국 본토용 릴레이를 사용할 수 있습니다.
모든 릴리스 보기처음 실행할 때 운영체제가 하는 말
- macOS
- macOS 빌드는 ad-hoc 서명이며 Apple 공증을 받지 않았습니다. 첫 실행은 Gatekeeper가 차단합니다. 시스템 설정 → 개인정보 보호 및 보안에서 '확인 없이 열기'를 선택하거나, Finder에서 앱을 오른쪽 클릭해 '열기'를 선택하세요.
- Windows
- Windows 빌드는 코드 서명 인증서가 없어 SmartScreen이 'Windows에서 PC를 보호했습니다'라고 경고할 수 있습니다. '추가 정보'를 누른 뒤 '실행'을 클릭하세요.
자주 묻는 질문
왜 루트 인증서를 신뢰해야 하나요?
HTTPS 복호화는 정의상 중간자입니다. Reqeek는 사용자의 컴퓨터에서 루트 CA를 생성하고, 그 CA로 방문하는 각 호스트에 임시 인증서를 발급합니다. 브라우저는 시스템이 그 루트 CA를 신뢰할 때만 이 인증서를 받아들입니다. 신뢰하지 않으면 HTTPS 트래픽은 터널로만 기록할 수 있습니다 — 호스트, 바이트, 소요 시간뿐이고 내용은 없습니다.
일부 앱은 복호화되지 않습니다. 고장 난 건가요?
아닙니다. 인증서 피닝(certificate pinning)을 사용하는 앱은 의도적으로 복호화를 거부합니다. 그 앱의 보안 모델이 제대로 동작하는 것입니다. 핸드셰이크가 실패하면 Reqeek는 해당 호스트를 제외 목록에 추가하고 재시도를 멈추며, 대신 터널로 기록합니다.
macOS가 개발자를 확인할 수 없다거나 앱이 손상되었다고 합니다.
현재 빌드는 ad-hoc 서명이며 Apple 공증을 받지 않았습니다. 처음 실행할 때 시스템 설정 → 개인정보 보호 및 보안에서 차단 안내를 찾아 '확인 없이 열기'를 선택하세요. 또는 Finder에서 앱을 오른쪽 클릭해 '열기'를 선택하고 대화상자에서 한 번 더 확인하면 됩니다.
Linux에서는 왜 캡처할 수 없나요?
Linux에는 electron-builder 패키징 설정만 있고 시스템 프록시나 인증서 신뢰를 위한 드라이버가 없습니다. 신뢰 상태는 항상 지원되지 않음으로 보고되며, 캡처를 시작하려면 신뢰된 인증서가 필요하므로 시작 자체가 거부됩니다. CI에서도 Linux 설치 파일을 빌드하거나 업로드하지 않습니다.
포트 8989가 이미 사용 중입니다. 어떻게 하나요?
설정에서 포트를 바꾸면 됩니다. 1024부터 65535까지 아무 값이나 가능합니다. Reqeek는 시스템 프록시 설정을 건드리기 전에 새 포트가 바인딩되는지 먼저 확인하므로, 충돌 때문에 네트워크가 망가지는 일은 없습니다.
앱을 종료하면 시스템 프록시가 남나요?
캡처를 중지하거나 정상적으로 종료하면 자동으로 복원됩니다. 프로세스가 강제 종료된 경우에는 다음 실행 시 앞서 저장한 스냅샷으로 시스템 프록시를 복원합니다. 시스템 설정 → 네트워크 → 프록시에서 직접 끌 수도 있습니다.