Mac에서 디버깅하기

Mac에서는 Chute와 살펴보려는 트래픽이 같은 컴퓨터에 있으므로, iPhone 안내서가 여러 단계를 들이는 것들 — 케이블, 리스너, 암호 — 이 필요 없습니다. 대신 다른 질문이 생깁니다: 트래픽이 애초에 Chute에 닿고 있는가. macOS에서는 애플리케이션이 프록시를 그냥 무시하기로 할 수 있기 때문입니다.

1. 트래픽이 Chute를 지나가게 하기

두 가지 방법이 있고 서로 독립적입니다. 메뉴에 둘 다 있습니다:

  • 시스템 프록시 — 메뉴 맨 위의 토글. Chute를 시스템 HTTP/SOCKS 프록시로 등록합니다. 시스템 프록시 설정을 읽는 애플리케이션(브라우저, 대부분의 GUI 앱)은 Chute를 지나가고, 읽지 않는 것들은 영향을 받지 않습니다.
  • 향상 모드(⌘E) — 네트워크 계층에서 트래픽을 잡으므로 애플리케이션이 프록시를 어떻게 생각하든 상관없어집니다. 프록시를 전혀 지원하지 않는 앱에는 이것이 필요합니다. 승인 흐름과 두 구현 방식은 향상 모드를 보세요.

터미널 도구가 흔한 함정입니다: curl, git, npm 같은 것들은 시스템 설정이 아니라 환경 변수 HTTP_PROXY/HTTPS_PROXY를 읽습니다. 메뉴의 셸 export 명령 복사(⌘C)가 맞는 한 줄을 클립보드에 넣어 줍니다 —

export HTTPS_PROXY=http://127.0.0.1:8118;export HTTP_PROXY=http://127.0.0.1:8118;export NO_PROXY=127.0.0.1,localhost,.example.com

— 포트는 실제 HTTP 리스너의 것이고, NO_PROXY는 skip-proxy 목록으로 만들어지므로 명령줄 도구는 시스템 프록시가 우회하는 것과 정확히 같은 것을 우회합니다. 테스트하는 셸에 붙여 넣으세요. 그 셸에만 적용됩니다.

확인할 것: 앱을 쓰는 동안 메인 창의 트래픽 탭이 행으로 채워집니다. (메인 창은 메뉴의 대시보드 열기...(⌘,)입니다. 현재 인터페이스 이전부터 구성이 있던 Mac이라면 먼저 같은 메뉴에서 새 메인 UI 사용을 켜세요.) 한 줄도 없다면 트래픽이 Chute에 닿지 않은 것입니다 — 복호화 문제를 찾기 전에 이 단계로 돌아가세요.

2. 트래픽 탭 읽기

트래픽은 실행 중인 연결을 검색 필드와 개수(N개 활성)와 함께 나열합니다. 열 표시 ▾로 배치를 바꿉니다:

  • 2줄(기본값) — 연결당 두 줄. 훑어보기에 편합니다.
  • 넓은 표 — 연결당 한 줄로 모든 열을 펼칩니다: 호스트, 프로세스, 규칙, 정책, 프로토콜, 업로드, 다운로드, 합계, 상태. 머리글을 눌러 정렬할 수 있습니다.
  • 앱별로 그룹화 — 연결을 그것을 연 애플리케이션별로 묶어 이름과 아이콘과 함께 보여 줍니다. "이 프로세스가 누구와 이야기하고 있나"에 가장 빨리 답합니다.

행을 오른쪽 클릭하면 세부 정보 보기, 호스트 복사, 세부 정보 복사, 로그 필터링(로그 탭으로 이 연결로 좁혀진 상태로 이동), 연결 닫기가 나옵니다.

세부 정보 보기는 그 연결의 호스트, 프로세스, 프로토콜, 원격, 규칙, 정책, 재작성, 업로드, 다운로드, 상태를 담은 창을 엽니다 — 어떻게 경로가 정해졌는지에 관한 것은 전부 여기 있습니다.

트래픽 탭은 요청과 응답 본문을 보여 주지 않습니다. 그것이 상세 창의 요청 및 기록 버튼의 역할입니다: 누르면 웹 콘솔이 열리고, 본문은 거기 있습니다. 열리는 것은 콘솔 홈이지 그 연결 자체는 아닙니다.

3. 요청을 보내지 않고 규칙 시험하기

규칙 탭에 규칙 테스트... 버튼이 있습니다. URL이나 도메인만 입력하고 테스트를 누르면 Chute가 해석한 호스트와 포트, DNS 결과, 일치한 규칙, 그 규칙이 고른 정책, 그리고 참고 사항을 답합니다.

"이건 왜 직접 연결로 갔지" 또는 "내 두 규칙 중 어느 쪽이 이기지"가 질문일 때 쓰세요 — 실행 중인 규칙 세트를 참조하므로, 방금 편집한 구성이 실제로 로드된 그것인지도 함께 알려 줍니다. 답이 낡아 보이면 구성을 다시 읽으세요(⌘R). 같은 질문을 API로 하면 POST /api/rules/match입니다.

4. 기록과 복호화 켜기

둘 다 메뉴에 있고, 둘 다 실행 중인 엔진에 작용합니다:

  • 트래픽 캡처(⌘B) — 요청과 응답 본문을 보관합니다. 즉 replica 설정입니다. 기본값은 꺼짐이고, 켜기 전에는 어느 것에도 본문이 없습니다.
  • MitM 활성화(⌘M) — [MITM]의 hostname 목록에 있는 호스트의 복호화를 켭니다.

둘 다 구성 파일에 다시 쓰입니다 — replica, 그리고 [MITM] 아래의 enable — 그래서 재로드와 재시작 뒤에도 유지됩니다. 원격 구성에는 쓸 로컬 파일이 없습니다: 스위치는 여전히 실행 중인 엔진을 바꾸고, 앱은 구성 저장 실패를 알립니다. 콘솔, Dashboard, API는 같은 두 설정을 파일에 쓰지 않고 전환합니다. 그렇게 전환한 뒤에는 그사이 파일이 바뀌지 않은 한 구성 다시 불러오기(⌘R)가 설정해 둔 값을 유지합니다 — replica는 파일에 적힌 자기 값이 바뀌었을 때, [MITM] enable은 [MITM] 섹션의 키가 하나라도 바뀌었거나 콘솔이나 API에서 호스트 목록을 편집했을 때 다시 적용됩니다. 재시작은 파일에서 시작합니다.

CA는 macOS에서 한 단계입니다. 구성 창에서 MitM을 여세요:

  1. 새 인증서 생성(또는 PKCS#12 파일에서 인증서 가져오기).
  2. 시스템에 인증서 설치 — macOS가 관리자 암호를 요청한 뒤 신뢰할 수 있는 루트로 시스템 키체인에 추가합니다. iOS 같은 별도의 "신뢰" 단계는 없습니다.
  3. 인증서 내보내기는 .pem 사본을 씁니다. 같은 CA를 휴대전화나 Apple TV, 컨테이너에 넣는 방법이 이것입니다.

5. 한 프로세스로 좁히기

Apple 플랫폼 중에서는 macOS가 Chute가 어떤 애플리케이션이 연결을 열었는지 아는 플랫폼이고, 규칙도 그것을 쓸 수 있습니다(Chute Android도 패키지 이름으로 이를 압니다):

[Rule]
PROCESS-NAME,curl,DIRECT
PROCESS-NAME,MyApp,MyProxy

PROCESS-NAME, PROCESS-PATH, PROCESS-NAME-REGEX는 프로세스 규칙을 보세요. 트래픽 탭의 앱별로 그룹화와 함께 쓰면, 애플리케이션 하나만 프록시로 — 또는 모의 응답으로 — 보내고 컴퓨터의 나머지는 평소대로 둘 수 있습니다.

6. Mac에서만 되는 것

  • 모의 응답 규칙의 data= 파일 경로. 파일은 Chute를 실행하는 기기가 요청 시점에 읽습니다. Mac에서는 그 기기와 지금 편집하고 있는 컴퓨터가 같으므로 실제 경로가 통하고, 파일을 고치면 다음 응답부터 바뀝니다(다시 읽을 필요 없음). 휴대전화에서는 같은 경로가 아무 의미도 없습니다 — iPhone 안내서가 base64=를 쓰는 이유입니다.
  • 디스크 위의 파일. 로그 샤드와 연결 데이터베이스는 ~/Chute/Share/<run id>/ 아래에, 실행 마커는 그 옆의 ~/Chute/Share/에 있습니다. 파일 위치(macOS)를 보세요. 공유 시트를 거치지 않고 버그 보고에 바로 첨부할 수 있습니다. 캡처한 본문도 DUMP/ 아래에 있지만 엔진이 실행 중일 때뿐입니다: 엔진을 멈추면 지워지므로 필요한 것은 먼저 내보내세요 — 콘솔의 HAR 내보내기, 또는 Dashboard의 bin으로 내보내기.
  • 다른 기기에 제공하기. allow-wifi-access를 켜면 네트워크의 다른 컴퓨터들이 프록시 설정을 이 Mac으로 향하게 할 수 있습니다. 그 트래픽은 같은 보기에 나타나고 Dashboard의 클라이언트 사이드바에서는 원격 아래로 들어갑니다 — Chute가 전혀 실행되지 않는 기기, Windows 노트북이나 스마트 TV를 살펴보는 방법이 이것입니다.

7. 트래픽 탭으로 부족할 때

  • 웹 콘솔 — 메뉴 막대 → 웹 콘솔 열기. 본문, HAR 내보내기, 어떤 재작성이 실제로 작동했는지 알려 주는 규칙 페이지, 진단 프로브가 있습니다. [General]의 external-http-controller가 필요합니다.
  • Chute Dashboard — 별도의 무료 앱. 이 Mac에서는 구성이 전혀 필요 없습니다: 메뉴의 Chute Dashboard 열기...(⌘D)는 이 Mac에 이미 연결된 상태로 앱을 열고, 앱의 새 대시보드 창에서는 로컬 컴퓨터에 연결이 같은 일을 합니다. 이 경로는 터널이 언제나 여는 로컬 소켓으로 엔진에 닿으므로 설정할 포트도 암호도 없습니다. 다른 Mac에서 Dashboard를 돌릴 때만 원격 경로가 필요합니다 — [General]에 external-controller-access = <password>@0.0.0.0:6170을 적고, 원격 컴퓨터에 연결에서 이 Mac의 주소와 그 포트, 그 암호를 쓰세요. 어느 쪽이든 MitM 도구 패널과 오른쪽 클릭 한 번으로 나오는 HAR / curl 내보내기 때문에 설치할 값어치가 있습니다.
  • 로그 탭 — 먼저 loglevel = verbose로 수준을 올리고, 끝나면 되돌리세요. 연결 행의 로그 필터링은 탭을 그 연결 하나로 좁힙니다.
S. Smart Rabbit LLC © All Rights Reserved            updated 2026-09-30 15:11:19

이 페이지는 영어판의 번역본입니다. 내용이 다를 경우 영어판이 우선합니다.

results matching ""

    No results matching ""