Apple TV 디버깅하기
세 플랫폼 중 Apple TV가 가장 까다롭지만, 이유는 Chute와 상관이 없습니다: tvOS에는 브라우저도, 공유 시트도, 파일 브라우저도 없고, 기기에서 인증서를 설치할 방법도 없으며, 손에 든 것은 키보드가 아니라 리모컨입니다. Chute tvOS는 그 각각에 대해 인터페이스를 다른 곳으로 옮기는 것으로 답합니다 — 휴대전화나 Mac의 브라우저, QR 코드, Dashboard 창.
그래서 이 안내서는 다른 둘과 모양이 다릅니다. 거의 모든 일이 텔레비전 바깥에서 일어납니다.
1. 설정을 TV에 넣기
리모컨으로 설정을 편집하는 일은 아무도 두 번은 하고 싶어 하지 않으니, 다른 곳에서 써서 보내십시오. Apple TV의 구성 추가 방법...에는 세 갈래가 있습니다:
- Wi-Fi 또는 Chute iOS로 파일 업로드 — TV가 로컬 HTTP 리스너를 열고 URL과 QR 코드를 보여 줍니다. 아무 브라우저로 그 URL을 열어 파일을 올리거나, Chute iOS로 코드를 스캔하십시오.
chute://tvURL 스킴은 휴대전화 앱에서 같은 가져오기 화면을 바로 엽니다. - URL에서 다운로드 — TV가 스스로 설정을 가져옵니다. 파일이 TV가 닿을 수 있는 곳에 있다면 셋 중 입력이 가장 적습니다.
- 빈 구성 — 빈 것을 기기에서 편집합니다.
업로드 경로에서는 TV와 다른 기기가 같은 Wi-Fi에 있어야 하고, 리스너는 그 화면이 열려 있는 동안에만 존재합니다 — 화면을 벗어나거나 기기를 잠그면 전송이 취소됩니다.
2. 실제로 쓰게 될 리스너 두 개 켜기
둘 다 기본값은 꺼짐이고, 적어도 하나가 없으면 Apple TV는 디버깅할 방법이 없습니다. 둘 다 무료입니다 — 이 플랫폼에서 라이선스가 걸리는 것은 로컬 프록시 서버 행들과 트래픽 레코더이지 이것들이 아닙니다.
HTTP API + Web UI — 즉 웹 콘솔이고, 본문과 HAR 내보내기와 진단이 거기 있습니다:
[General]
external-http-controller = 0.0.0.0:9090
external-http-secret = your-own-token
external-http-ui = true
127.0.0.1이 아니라 0.0.0.0에 바인딩하십시오: 루프백에 묶인 콘솔은 다른 기기에서 열 수 없고, TV에는 그것을 로컬에서 열 브라우저도 없습니다. 루프백이 아닌 바인딩에는 명시적인 external-http-secret이 필요하며, 없으면 컨트롤러가 시작을 거부합니다.
외부 컨트롤러 접근 — Chute Dashboard가 말하는 바이너리 채널입니다. 설정 편집기에서 외부 컨트롤러를 여십시오:
- 외부 컨트롤러 접근을 켭니다.
- 포트(여기서는 기본값이
6171)와 직접 정한 비밀번호를 설정합니다. 비워 둘 수 없습니다. - Wi-Fi 접근 허용을 켭니다. Apple TV에서 이것은 휴대전화처럼 선택 사항이 아닙니다 — 대신 쓸 케이블 경로가 없으므로, 꺼 두면 TV 바깥의 어떤 것도 연결할 수 없습니다.
이렇게 보여야 합니다, 제어판에서: HTTP API 포트와 Web UI가 켬으로 표시되고, 외부 접근 포트에 설정한 포트가 나옵니다. 없다면 터널이 옛 설정으로 돌고 있는 것입니다 — 재시작하십시오.
3. 다른 기기에서 콘솔 열기
제어판에는 Web UI 스위치 아래에 Web UI 주소 행이 있습니다. 선택하면:
- 리스너에 다른 기기가 접근할 수 있으면 TV가 QR 코드를 보여 줍니다. 같은 네트워크의 휴대전화로 스캔하거나 주소를 아무 브라우저에나 입력하십시오. 로그인 토큰은 화면에 표시되는 대신 코드 안으로 지나가므로, 텔레비전에서 16진수 32자를 옮겨 적을 사람은 아무도 필요 없습니다.
- 컨트롤러가 루프백에 묶여 있으면 TV는 코드 대신 설명을 보여 줍니다 — 2단계를 보십시오.
거기서부터 콘솔은 모든 플랫폼에서 같습니다: 연결(한 건씩 펼쳐 살펴볼 수 있고 본문도 있음), 규칙(이번 실행에서 작동한 재작성 목록), 진단(ping / DNS / 이그레스 / URL 테스트 프로브), 로그.
4. Chute Dashboard 연결하기
Mac에서 Chute Dashboard를 열고 원격 구역을 쓰십시오: 호스트는 Apple TV의 주소이며 — 제어판의 LOCAL IP 행이 그것입니다 — 포트와 비밀번호는 2단계의 것입니다. USB 구역은 iPhone용이고, Apple TV에는 네트워크로 닿습니다.
Dashboard가 휴대전화에 해 주는 것은 여기서도 그대로입니다 — 활성과 최근 목록, DNS와 UDP 보기, MitM 도구 패널, 오른쪽 클릭의 HAR과 curl 내보내기.
5. HTTPS 복호화
이 플랫폼에서는 두 가지가 다르고, 둘 다 사람들을 놀라게 합니다.
CA를 앱에서 설치할 수 없습니다. tvOS에는 Safari도 프로파일 설치기도 없으므로, 인증서는 tvOS가 인증서를 받아들이는 유일한 방법으로 도착해야 합니다: MDM 또는 Apple Configurator. 호스트 목록을 편집하는 화면에서 앱이 그렇게 말합니다. CA는 평소처럼 설정에서 생성하거나 가져와 내보낸 뒤, 그 두 경로 중 하나로 기기에 전달하십시오.
제어판에 MitM 스위치가 없습니다. iOS와 macOS에는 있지만 tvOS에는 없습니다. 복호화는 다음 중 하나로 켭니다:
- 설정 —
[MITM]의enable = true. 남는 답은 이것입니다. - 콘솔, 또는 Chute Dashboard 도구 막대의 스위치.
PUT /api/features/mitm에{"enabled": true}.
뒤의 셋은 실행 중인 커널에만 작용하고 다음 재시작에서 잊힙니다. hostname 목록은 설정 파일에서 읽지만, 콘솔에서도 Dashboard에서도 실시간으로 편집할 수 있습니다.
[MITM]
enable = true
hostname = api.example.com, *.example.net
6. 기록, 그리고 결과를 기기 밖으로 꺼내기
제어판의 데이터 덤프가 트래픽 레코더 — replica 설정 — 이며, tvOS에서 라이선스가 걸린 스위치 둘 중 하나입니다. 없어도 연결은 규칙·정책·타이밍과 함께 나타납니다. 페이로드만 없을 뿐입니다.
그리고 이 플랫폼만의 부분이 나옵니다: Apple TV에는 파일을 놓을 곳이 없습니다. 공유 시트도 파일 앱도 없으므로 모든 내보내기가 HTTP로 나갑니다:
- HAR — 콘솔 연결 페이지의 HAR 내보내기. 다운로드는 브라우저를 실행하는 기계에 떨어집니다.
- 런타임 진단 번들 — 콘솔 진단 페이지의 진단 번들 다운로드.
- 오프라인 진단 번들 — 터널이 실행 중이 아닐 때, 설정 → 오프라인 진단 번들. TV가 아카이브를 만들고 QR 코드를 보여 줍니다. 링크는 그 화면이 열려 있는 동안에만 유효합니다.
7. TV 자신이 알려 줄 수 있는 것
다른 기기가 전혀 필요 없는 질문도 있습니다. 설정 → 진단 아래:
- 세션 — 이번 실행의 연결들. 하나를 고르면 상세 패널이 열려 BASIC(날짜, 상태, 종료 이유, 지속 시간), POLICY(일치한 규칙과 그것이 고른 정책), NODES(로컬, 서버, 원격, 호스트), TRAFFIC, TIMING(프록시 준비, DNS 해석, 규칙, 원격 준비, 총 활성 시간), 그리고 작동한 재작성을 보여 줍니다. 요청과 응답 본문은 없습니다 — 그것에는 콘솔이나 Dashboard가 필요합니다.
- 세션 → 로그 화면 — 위에 심각도 필터(전체 / Notify+ / Warning+ / Fatal)가 있어, 리모컨만으로 한 실행을 경고까지 좁힐 수 있습니다.
- 네트워크 진단, 프록시 진단, 라우트 테이블 — 기기가 보는 도달성, 리스너, 경로.
제어판에는 DNS 캐시 삭제도 있는데, 터널을 재시작하지 않고 [Host] 매핑을 다시 시험하는 가장 빠른 방법입니다.
이 페이지는 영어판의 번역본입니다. 내용이 다를 경우 영어판이 우선합니다.