Chute Dashboard

Chute Dashboard는 무료 macOS 앱으로, 실행 중인 Chute — Wi-Fi나 USB 케이블로 연결한 Chute iOS, 또는 같은 Mac의 Chute Mac — 에 접속해 그 인스턴스가 무엇을 하고 있는지 보여 줍니다: 모든 연결과 그것을 결정한 규칙·정책, HTTPS 복호화 대상 호스트의 복호화된 요청과 응답, DNS 응답, UDP 세션. 보면서 트래픽을 바꿀 수도 있습니다: MitM 호스트 목록과 모든 재작성·Mock 규칙 계열을 실시간으로 편집할 수 있습니다.

이것은 웹 콘솔이 아닙니다. 콘솔은 커널 자체가 제공하며 브라우저로 열지만, Dashboard는 별도의 앱으로 커널의 바이너리 제어 채널을 통해 대화합니다. 그래서 기기에 필요한 것은 external-http-controller가 아니라 external-controller-access입니다. 둘은 겹치는 부분도 있고, 서로에게 없는 것도 있습니다 — Dashboard가 닿지 못하는 것을 보십시오.

Dashboard의 인터페이스는 이 설명서와 같은 언어로 현지화되어 있습니다(아랍어 제외; 아랍어 시스템에서는 영어로 표시됩니다).

Dashboard 연결 허용하기

기기가 허락하기 전까지는 아무것도 수신 대기하지 않습니다.

Chute iOS — 설정 편집기에서 외부 컨트롤러 → 외부 컨트롤러 접근을 엽니다:

  1. Chute 대시보드/Chute CLI 연결 허용을 켭니다.
  2. 포트비밀번호를 설정합니다. 비밀번호는 비워 둘 수 없고, 직접 정한 것이어야 합니다: 네트워크에서 접근할 수 있는 리스너는 빈 비밀번호나 기본 비밀번호로는 시작을 거부합니다.
  3. 꼭 필요하지 않다면 Wi-Fi 접근 허용은 꺼 두십시오. 꺼짐이 기본값이며, 리스너가 휴대전화 자체에만 머문다는 뜻입니다 — USB 케이블로는 닿지만 Wi-Fi의 다른 기기는 닿지 못합니다. 켜면 그 네트워크에서 비밀번호를 아는 누구나 이번 실행이 본 모든 것을 읽을 수 있습니다.
  4. 저장한 뒤 터널을 시작(또는 재시작)합니다. 제어판에 외부 접근 포트: <포트>가 표시됩니다 — 이 줄이 리스너가 올라왔다는 확인입니다.

Chute Mac — 같은 세 값이 [General]에 있습니다:

[General]
external-controller-access = password@127.0.0.1:6170

127.0.0.1은 지금 쓰는 Mac으로 한정하며, 같은 Mac에서 도는 Dashboard에는 바로 이것이 필요합니다. LAN 주소나 0.0.0.0으로 바꾸면 다른 기기에도 열립니다. 설정 창의 General 섹션에 같은 키를 위한 필드가 있습니다.

연결하기

Dashboard는 Chute 새 대시보드 창으로 열립니다. 연결마다 창이 하나씩 생기므로 여러 기기를 동시에 열 수 있습니다. 들어가는 방법은 두 가지입니다:

필드 언제
원격 호스트, 포트, 비밀번호 기기의 Wi-Fi 주소(iPhone: 설정 → Wi-Fi → ⓘ), 또는 이 Mac의 Chute Mac이면 127.0.0.1. 휴대전화에서 Wi-Fi 접근 허용이 켜져 있어야 합니다.
USB 포트, 비밀번호 iPhone이 케이블로 이 Mac에 연결되어 있고 이 Mac을 신뢰한 상태. 설정한 것과 같은 포트를 입력합니다 — 케이블 채널은 Dashboard가 스스로 찾습니다. Wi-Fi 접근 허용이 꺼져 있어도 동작하고, 휴대전화가 Wi-Fi에 있을 필요조차 없으므로 셀룰러 트래픽도 보입니다.

연결했던 기기는 컴퓨터: 아래에 기억되어 다음에 바로 고를 수 있습니다.

비밀번호가 틀리면 창에 비밀번호가 일치하지 않음이 표시됩니다. 기기가 사라지면 — 터널이 멈췄거나, 케이블이 뽑혔거나, 휴대전화가 네트워크를 바꿨거나 — Dashboard 창은 연결이 종료되었습니다를 알리고 다시 연결을 제안합니다. 자동 재연결은 없습니다.

도구 막대는 다섯 보기 — 활성, 최근, DNS, UDP, MitM — 사이를 전환하고, 필터필터 막대를 보이거나 숨깁니다. 왼쪽 아래 패널은 실시간 업로드·다운로드 속도이며, 누르면 그래프가 펼쳐집니다.

활성최근 보기에서는 도구 막대에 실행 중인 커널에 작용하는 스위치 두 개가 더 있으며, 앱의 스위치와 똑같이 동작합니다:

  • 트래픽 기록트래픽 기록 사용 안 함: 요청과 응답 본문 캡처(replica 설정)를 켭니다. 없으면 행은 경로 정보와 함께 나타나지만 데이터 탭은 비어 있습니다.
  • MitM 사용(규칙 N개)MitM 사용 안 함(규칙 N개): MitM 호스트 목록의 N개 호스트에 대해 HTTPS 복호화를 켭니다. 기기에 신뢰된 CA와 호스트가 하나 이상 있기 전까지 이 스위치는 실질적으로 아무것도 하지 않습니다 — HTTPS 복호화 페이지를 보십시오.

두 스위치 모두 설정 파일을 수정하지 않습니다. 재시작하면 파일에 적힌 대로 돌아갑니다.

사이드바는 연결을 클라이언트별로 묶습니다: 모든 클라이언트, 그다음 기기 자체의 클라이언트인 로컬과 이 Chute를 프록시로 쓰는 다른 기기인 원격. 하나를 고르면 모든 목록이 거기로 좁혀집니다. 기기가 Chute Mac이면 로컬 클라이언트는 이름과 아이콘이 있는 응용 프로그램이며, 컨텍스트 메뉴에 Finder에서 보기가 있습니다.

활성과 최근

활성은 지금 열려 있는 것이고, 최근은 기기의 기록으로 최신순이며 이번 실행의 기록에서 다시 읽어 옵니다. 둘은 같은 열을 씁니다:

ID 커널의 연결 번호 — 콘솔과 앱이 보여 주는 것과 같은 번호
날짜, 지속 시간 언제 시작했고, 얼마나 지속되고 있는지 또는 지속되었는지
클라이언트 프로세스(Chute Mac) 또는 로컬 주소
메서드, 서버, 상태 캡처된 요청에서 파싱한 요청 줄과 응답
정책 규칙이 고른 정책
업로드, 다운로드 양방향 바이트 수
플래그 Chute가 이 연결에 한 일 — 아래 범례 참조

플래그 열은 작성한 규칙이 적용되고 있는지 가장 빨리 알 수 있는 방법입니다:

플래그 의미
M 복호화됨(MitM 가로챔)
H 헤더가 수정됨
B 본문이 수정됨
R 재작성 규칙이 적용됨
K 서버가 아니라 Map Local mock이 응답함

최근은 최대 5,000행을 보관합니다. 목록 맨 아래의 이전 항목 불러오기가 기기에서 다음 페이지를 가져오고, 목록은 몇 초마다 스스로 새로 고쳐집니다. 활성 목록이 제어 패킷 하나에 담기지 않을 만큼 길면 표 아래에 커널이 잘랐다는 안내가 나옵니다 — 그 행들은 기기에 있으며, 닫히면 최근에 나타납니다.

행을 오른쪽 클릭하면 curl 명령 복사, 선택 항목을 HAR로 내보내기… / CSV로 내보내기…, 모두 HAR로 내보내기… / CSV로 내보내기…가 있습니다. 활성 행에는 기기에서 그 연결을 닫는 연결 종료도 있습니다.

알림: 한 행은 연결이지 요청이 아닙니다. 여러 요청을 실어 나른 keep-alive 연결도 여전히 한 행이며, 캡처된 데이터에는 그 메시지들이 잇따라 담겨 있습니다. 표시되는 헤더는 그중 한 요청의 것입니다. 따라서 브라우저가 페이지 하나를 열어도 페이지의 리소스 수보다 적은 행이 생깁니다.

필터 막대

필터 막대는 보이는 것을 좁힙니다. 기기가 무엇을 기록하는지는 바꾸지 않습니다 — 그건 기기의 [Replica]로 합니다.

컨트롤 선택지
호스트/URL 필터… 호스트와 URL에 대한 텍스트 일치
메서드 GET, POST, PUT, DELETE, PATCH, HEAD, OPTIONS, CONNECT
상태 1xx – 5xx
트래픽 활성, 완료됨, 중단
유형 JSON, HTML, XML, 이미지, 텍스트, 바이너리 — 응답의 콘텐츠 유형 기준
지속 시간 < 100ms, 100ms–1s, 1s–5s, > 5s
크기 < 1 KB, 1–100 KB, 100 KB–1 MB, > 1 MB
MitM만 복호화된 연결만
수정됨 규칙이 바꾼 연결 — H, B, R, K 중 하나라도

필터 지우기로 전체로 돌아갑니다.

연결 상세

행을 열면 상세 창이 나옵니다. 탭은 왼쪽부터:

일반 — 목록에 있는 것을 여유 있게 펼친 것: 요청 줄과 상태 코드, 아웃바운드 모드, 정책, 일치한 규칙, 전송량과 최대 속도, 로컬·원격 주소, 시작 시간, SSL/MitM 상태(가로챔, 헤더 수정됨, 본문 수정됨, Mock 처리됨), 그리고 적용된 규칙 — 이 연결을 바꾼 모든 재작성·Mock 규칙을 규칙 자신의 문장으로 인용한 것. 여기 나타나지 않는 규칙은 이 연결을 건드리지 않았습니다.

타이밍 — 연결을 준비하는 데 시간이 어떻게 쓰였는지, 커널이 측정한 대로:

시작 → 끝
프록시 준비 시간 클라이언트의 연결 도착 → Chute가 처리할 준비가 됨
DNS 확인 → 이름이 확인됨(규칙에 주소가 필요 없으면 0)
규칙 매칭 시간 → 규칙 표가 결정함
원격 준비 시간 → 선택된 아웃바운드가 연결되어 준비됨
활성 그 뒤 연결이 닫힐 때까지의 모든 것

느린 요청은 대개 이 줄 중 정확히 하나만 느리며, 어느 줄인지가 어디를 봐야 하는지 말해 줍니다: DNS면 DNS 섹션, 원격 준비면 정책이나 그 뒤의 서버, 활성이면 응용 프로그램 자체입니다.

요청 헤더 / 응답 헤더 — 헤더를 표로. 요청 쪽은 쿼리 매개변수쿠키를, 응답 쪽은 쿠키를 따로 보여 줍니다. 규칙이 수정한 헤더는 강조됩니다. 선택 항목 복사는 선택한 행을 복사합니다.

요청 데이터 / 응답 데이터 — 캡처된 본문을 16진수, 텍스트, JSON(검색이 있는 펼칠 수 있는 트리), 이미지(맞춤 / 실제 크기)로 봅니다. multipart 본문은 부분별로 나뉩니다. bin으로 내보내기는 원시 바이트를 저장합니다. 데이터는 연결이 실행될 때 기록이 켜져 있었고, 호스트가 [Replica] 필터를 통과한 경우에만 있습니다.

알림: 본문은 캡처된 그대로 표시됩니다. 압축된 응답 — Content-Encoding: gzip — 은 여기서 풀리지 않으므로 텍스트와 JSON 보기는 잡음이 됩니다. 16진수 보기와 bin으로 내보내기로 바이트를 꺼내 다른 곳에서 압축을 푸십시오. 기기는 2 MiB보다 큰 본문을 넘겨주기를 거부하고, 16진수 보기는 앞 1 MiB만 보여 줍니다.

DNS와 UDP

DNS는 기기 리졸버의 캐시입니다: 각 도메인과 그것이 확인된 주소, 가장 먼저 답한 서버(Chute는 설정된 모든 서버에 동시에 질의합니다 — DNS 참조), TTL, 레코드 유형. 오른쪽 클릭으로 도메인 복사, IP 복사, DNS 서버 복사를 할 수 있습니다.

UDP는 UDP 세션 — 호스트, 서버, 정책, 상태 — 을 나열합니다. UDP에는 본문이 없습니다.

MitM 도구

MitM 보기는 기기의 다섯 규칙 계열을 다섯 패널로 관리합니다: MitM 규칙, 헤더 재작성, 본문 재작성, Map Local, Map Remote. 모두에 해당하는 것:

  • 목록은 실행 중인 커널이 가진 규칙 사본이며, 출발점은 설정 파일이 선언한 내용입니다.
  • 규칙을 추가하면 기기로 보내지고, 기기는 설정 줄을 파싱하듯 파싱합니다. 파싱되지 않는 줄은 저장되지 않고 오류와 함께 거부됩니다.
  • 변경은 실행 중인 커널에만 존재합니다. 설정 파일에 되쓰이지 않으며, 다시 불러오거나 재시작하면 파일에 적힌 대로 돌아갑니다. 패널로 동작하는 규칙을 찾은 뒤 설정에 적으십시오.
  • 규칙이 적용되는지는 목록의 플래그 열(R, K)과 상세 창의 적용된 규칙에 나타납니다.

MitM 규칙 — 규칙 하나에 호스트 패턴 하나, host[:port][/path], 제외는 - 접두사: *.google.com, api.example.com:8443, api.example.com/v2/*, -*.apple.com. HTTPS 복호화 페이지의 hostname 키와 같은 문법입니다. 도구 막대 MitM 스위치의 숫자가 이 목록의 길이입니다.

헤더 재작성 — 양식: URL 정규식, 요청 또는 응답, 추가 / 대체 / 삭제, 헤더 이름, 헤더 값. 설정 줄은 Dashboard가 대신 만들어 줍니다. 문법은 헤더 재작성 페이지에 있습니다.

본문 재작성 — 파일에 쓰듯 설정 줄 하나를 입력합니다: url-regex type pattern replacement, type은 response, request, jsonpath-response, jsonpath-request 중 하나입니다. 본문 재작성을 보십시오.

Map LocalURL 정규식, 파일 경로(찾아보기…), 선택 사항인 응답 헤더(한 줄에 하나, Name: Value).

알림: 파일 경로는 Chute를 실행하는 기기가 요청 시점에 읽습니다. Dashboard가 같은 기기의 Chute Mac에 연결되어 있을 때는 Mac의 경로가 의미가 있지만, iPhone에 연결되어 있을 때는 의미가 없습니다 — 휴대전화에는 /Users/…가 없습니다. 원격 기기에는 규칙의 base64= 형식으로 내용을 인라인하여(모의 응답 참조) 기기 자체의 편집기나 웹 콘솔로 추가하거나, 파일을 URL로 제공하고 Map Remote를 쓰십시오.

Map RemoteURL 정규식, 대상, 유형: header는 요청을 그 자리에서 재작성하고(Surge의 Map Remote), 302307은 클라이언트를 리디렉션하며, reject, reject-200, reject-img, reject-dict는 서버에 접속하지 않고 응답합니다. URL 재작성을 보십시오.

내보내기

  • HAR — 목록에서 오른쪽 클릭: 선택한 행 또는 전체를 HAR 1.2 파일로. 브라우저 개발자 도구(Network → 가져오기), Charles, Proxyman에서 열 수 있습니다. 행당 항목 하나이며, 기록이 켜져 있었다면 본문이 포함됩니다.
  • CSV — 목록의 열을 스프레드시트용으로.
  • curl 명령 복사 — 헤더를 포함해 그 요청을 Mac에서 다시 보내는 curl 호출.
  • bin으로 내보내기 — 캡처된 그대로의 본문 하나.

Dashboard는 가져온 데이터로 HAR를 만듭니다. 커널도 스스로 만들 수 있습니다 — 항목마다 _kl 객체에 일치한 규칙, 정책, 적용된 재작성을 담고, 송수신 타이밍은 캡처에서 가져옵니다 — 콘솔의 Export HAR(HAR 내보내기)GET /api/connections/export?format=har로요.

Dashboard가 닿지 못하는 것

Dashboard는 커널의 바이너리 제어 채널로 말하며, 커널이 할 수 있는 것 중 일부는 HTTP 제어 API에만 있습니다. 이런 것에는 웹 콘솔이나 API를 쓰십시오:

  • 진단 번들, 상태, 거부 카운터, 이벤트;
  • 콘솔 Rules 페이지의 규칙별 적용 횟수와 그것이 주는 이 규칙이 한 번이라도 적용되었나의 답;
  • 위의 커널 자체 HAR;
  • 로그.

의지하기 전에 알아 둘 것이 두 가지 더 있습니다:

  • Chute Android는 바이너리 채널을 제공하지 않으므로 Dashboard가 연결할 수 없습니다. Android 자체의 원격 대시보드와 웹 콘솔이 같은 범위를 다룹니다.
  • iPhone과 Apple TV에서 HTTPS 복호화와 본문 캡처는 라이선스가 필요한 기능입니다. 라이선스가 없어도 Dashboard는 연결되고 모든 연결을 규칙·정책과 함께 보여 주지만, HTTPS 행은 불투명한 CONNECT 터널로 남고 데이터 탭은 비어 있으며 MitM 스위치는 효과가 없습니다. 라이선스와 활성화를 보십시오.
S. Smart Rabbit LLC © All Rights Reserved            updated 2026-09-01 12:12:43

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

results matching ""

    No results matching ""