การดีบัก Apple TV
ในสี่แพลตฟอร์ม Apple TV ดีบักยากที่สุด ด้วยเหตุผลที่ไม่เกี่ยวกับ Chute เลย: tvOS ไม่มีเบราว์เซอร์ ไม่มีแผงแชร์ ไม่มีตัวเรียกดูไฟล์ ไม่มีวิธีติดตั้งใบรับรองจากตัวอุปกรณ์ และสิ่งที่อยู่ในมือคือรีโมตไม่ใช่คีย์บอร์ด Chute tvOS ตอบทุกข้อด้วยการย้ายอินเทอร์เฟซไปอยู่ที่อื่น — เบราว์เซอร์บนโทรศัพท์หรือ Mac ของคุณ QR Code หน้าต่าง Dashboard
รูปร่างของคู่มือนี้จึงต่างจากอีกสองฉบับ เกือบทุกอย่างเกิดขึ้นนอกโทรทัศน์
1. นำการกำหนดค่าขึ้นทีวี
ไม่มีใครอยากแก้ไขการกำหนดค่าด้วยรีโมตเป็นครั้งที่สอง เขียนที่อื่นแล้วส่งไปดีกว่า บน Apple TV เมนู เพิ่มการกำหนดค่าจาก... มีสามทาง:
- อัปโหลดไฟล์ผ่าน Wi-Fi หรือ Chute iOS — ทีวีเปิดตัวรับฟัง HTTP ในเครื่องแล้วแสดง URL และ QR Code เปิด URL นั้นในเบราว์เซอร์ใดก็ได้เพื่ออัปโหลดไฟล์ หรือสแกนรหัสด้วย Chute iOS ส่วน
chute://tvURL Scheme เปิดหน้านำเข้าเดียวกันในแอปบนโทรศัพท์ได้โดยตรง - ดาวน์โหลดจาก URL — ทีวีไปดึงการกำหนดค่ามาเอง เป็นทางที่พิมพ์น้อยที่สุดในสามทาง ถ้าไฟล์อยู่ในที่ที่ทีวีเข้าถึงได้
- การกำหนดค่าเปล่า — ไฟล์ว่างสำหรับแก้ไขบนอุปกรณ์
สำหรับทางอัปโหลด ทีวีกับอุปกรณ์อีกเครื่องต้องอยู่บน Wi-Fi เดียวกัน และตัวรับฟังมีอยู่เฉพาะตอนที่หน้าจอนั้นเปิดอยู่ — ออกจากหน้าจอหรือล็อกอุปกรณ์จะยกเลิกการถ่ายโอน
2. เปิดตัวรับฟังสองตัวที่คุณจะได้ใช้จริง
ทั้งคู่ปิดอยู่โดยค่าเริ่มต้น และถ้าไม่มีอย่างน้อยหนึ่งตัว Apple TV ก็ดีบักไม่ได้เลย ทั้งคู่ฟรี — บนแผงควบคุมของแพลตฟอร์มนี้ ใบอนุญาตครอบคลุมแถวของเซิร์ฟเวอร์พร็อกซีท้องถิ่นและตัวบันทึกทราฟฟิก ไม่ใช่สองอย่างนี้
HTTP Control API + คอนโซลเว็บ — หรือก็คือคอนโซลเว็บ ที่ซึ่งเนื้อหา การส่งออก HAR และการวินิจฉัยอยู่:
[General]
external-http-controller = 0.0.0.0:9090
external-http-secret = your-own-token
external-http-ui = true
ให้ผูกกับ 0.0.0.0 ไม่ใช่ 127.0.0.1 เพราะคอนโซลที่ผูกกับลูปแบ็กเปิดจากอุปกรณ์อื่นไม่ได้ และบนทีวีก็ไม่มีเบราว์เซอร์ให้เปิดในเครื่อง การผูกที่ไม่ใช่ลูปแบ็กต้องระบุ external-http-secret อย่างชัดเจน มิฉะนั้นตัวควบคุมจะปฏิเสธการเริ่มทำงาน
การเข้าถึงตัวควบคุมภายนอก — ช่องทางไบนารีที่ Chute Dashboard พูด ในตัวแก้ไขการกำหนดค่า เปิด ตัวควบคุมภายนอก:
- เปิด การเข้าถึงตัวควบคุมภายนอก
- ตั้ง พอร์ต (ที่นี่ค่าเริ่มต้นคือ
6171) และ รหัสผ่าน ของคุณเอง ปล่อยว่างไม่ได้ - เปิด อนุญาตการเข้าถึงจาก Wi-Fi บน Apple TV ข้อนี้ไม่ใช่ตัวเลือกเหมือนบนโทรศัพท์ เพราะไม่มีเส้นทางสายให้ถอยไปใช้ ถ้าปิดไว้จะไม่มีอะไรนอกทีวีเชื่อมต่อเข้ามาได้
คุณควรเห็นบนแผงควบคุม: พอร์ต HTTP API และ คอนโซลเว็บ แสดงว่า เปิด และ พอร์ตการเข้าถึงภายนอก แสดงพอร์ตของคุณ ถ้าไม่มี แปลว่าทันเนลกำลังใช้การกำหนดค่าชุดเก่า — รีสตาร์ตมัน
3. เปิดคอนโซลจากอุปกรณ์อื่น
แผงควบคุมมีแถว ที่อยู่คอนโซลเว็บ อยู่ถัดลงมาจากสวิตช์คอนโซลเว็บไม่กี่แถว เลือกมัน:
- ถ้าตัวรับฟังเข้าถึงได้จากอุปกรณ์อื่น ทีวีจะแสดง QR Code สแกนด้วยโทรศัพท์ในเครือข่ายเดียวกัน หรือพิมพ์ที่อยู่ลงเบราว์เซอร์ใดก็ได้ โทเคนสำหรับเข้าสู่ระบบเดินทางอยู่ในรหัสแทนที่จะแสดงบนจอ จึงไม่มีใครต้องลอกเลขฐานสิบหก 32 ตัวจากโทรทัศน์
- ถ้าตัวควบคุมผูกกับลูปแบ็ก ทีวีจะแสดงคำอธิบายแทนรหัส — ดูขั้นตอนที่ 2
จากตรงนั้นคอนโซลเหมือนกันทุกแพลตฟอร์ม: การเชื่อมต่อ พร้อมการตรวจสอบรายรายการและเนื้อหา, กฎ พร้อมรายการการเขียนใหม่ที่ทำงานแล้ว, การวินิจฉัย พร้อมการตรวจสอบ ping / DNS / IP ขาออก / URL test และ บันทึก
4. เชื่อมต่อ Chute Dashboard
บน Mac เปิด Chute Dashboard แล้วเลือก เชื่อมต่อกับเครื่องระยะไกล: โฮสต์ คือที่อยู่ของ Apple TV — แผงควบคุมแสดงไว้ใต้ IP ภายในเครื่อง — พร้อมพอร์ตและรหัสผ่านจากขั้นตอนที่ 2 เชื่อมต่อผ่าน USB มีไว้สำหรับ iPhone และอุปกรณ์ Android ส่วน Apple TV เข้าถึงผ่านเครือข่าย
ทุกอย่างที่ Dashboard ทำให้โทรศัพท์ มันก็ทำที่นี่ — รายการทำงานและล่าสุด มุมมอง DNS และ UDP แผงเครื่องมือ MitM การส่งออก HAR และ curl จากการคลิกขวา
5. การถอดรหัส HTTPS
บนแพลตฟอร์มนี้มีสองอย่างที่ต่างออกไป และทั้งคู่ทำให้คนประหลาดใจ
ติดตั้ง CA จากแอปไม่ได้ tvOS ไม่มี Safari และไม่มีตัวติดตั้งโปรไฟล์ ใบรับรองจึงต้องมาถึงด้วยวิธีเดียวที่ tvOS ยอมรับใบรับรอง: MDM หรือ Apple Configurator แอปเขียนไว้แบบนั้นตรงที่แก้ไขรายการโฮสต์ และแอปก็สร้าง นำเข้า หรือส่งออก CA ไม่ได้เช่นกัน: สร้าง CA ใน Chute Mac ใส่ ca-p12 และ ca-passphrase ชุดเดียวกันลงในการกำหนดค่าของทีวี แล้วส่งใบรับรอง — ส่งออกใบรับรอง ของ Chute Mac เขียนมันออกมาเป็น .pem — ไปยังอุปกรณ์ด้วยหนึ่งในสองทางนั้น
แผงควบคุมไม่มีสวิตช์ MitM iOS และ macOS มี แต่ tvOS ไม่มี การถอดรหัสเปิดได้ด้วยวิธีใดวิธีหนึ่งต่อไปนี้:
- การกำหนดค่า —
enable = trueใน[MITM]ซึ่งเป็นคำตอบที่คงอยู่ - คอนโซล หรือสวิตช์บนแถบเครื่องมือของ Chute Dashboard
PUT /api/features/mitmพร้อม{"enabled": true}
สามอย่างหลังมีผลกับเอนจินที่กำลังทำงานเท่านั้น และจะถูกลืมเมื่อรีสตาร์ตครั้งถัดไป รายการ hostname อ่านจากไฟล์การกำหนดค่า และแก้ไขสด ๆ ได้ทั้งจากคอนโซลและ Dashboard ไม่ว่าจะเปิดด้วยวิธีใด การถอดรหัสบน Apple TV ต้องมีใบอนุญาต เช่นเดียวกับบน iPhone: ถ้าไม่มี เอนจินจะไม่ถอดรหัสอะไรเลย
[MITM]
enable = true
hostname = api.example.com, *.example.net
6. การบันทึก และการนำผลออกจากอุปกรณ์
การดักจับทราฟฟิก บนแผงควบคุมคือตัวบันทึกทราฟฟิก — การตั้งค่า replica — และเป็นหนึ่งในสามแถวที่ต้องมีใบอนุญาตบนแผงควบคุมของ tvOS อีกสองแถวคือเซิร์ฟเวอร์พร็อกซีท้องถิ่น ถ้าไม่เปิด การเชื่อมต่อก็ยังปรากฏพร้อมกฎ นโยบาย และเวลา เพียงแต่ไม่มีเนื้อหา
แล้วก็ถึงส่วนที่เป็นของแพลตฟอร์มนี้โดยเฉพาะ: Apple TV ไม่มีที่ให้วางไฟล์ ไม่มีแผงแชร์และไม่มีแอปไฟล์ การส่งออกทุกอย่างจึงออกไปทาง HTTP:
- HAR — หน้าการเชื่อมต่อของคอนโซล ส่งออก HAR ไฟล์จะไปลงที่เครื่องที่รันเบราว์เซอร์
- ชุดข้อมูลวินิจฉัยขณะทำงาน — หน้าการวินิจฉัยของคอนโซล ดาวน์โหลดชุดข้อมูลวินิจฉัย
- ชุดข้อมูลวินิจฉัยออฟไลน์ — เมื่อทันเนลไม่ได้ทำงาน ไปที่ การตั้งค่า → ชุดข้อมูลวินิจฉัยออฟไลน์ ทีวีจะสร้างไฟล์เก็บถาวรแล้วแสดง QR Code ลิงก์ใช้ได้เฉพาะตอนที่หน้าจอนั้นเปิดอยู่
7. สิ่งที่ทีวีเองยังบอกคุณได้
บางคำถามไม่ต้องใช้อุปกรณ์อีกเครื่องเลย ใต้ การตั้งค่า → การวินิจฉัย:
- แดชบอร์ด — เซสชันที่กำลังทำงาน: ทันเนล, DNS และ สถิติ ของมัน เลือกการเชื่อมต่อหนึ่งรายการจะเปิดแผงรายละเอียดที่มี พื้นฐาน (วันที่ สถานะ เหตุผลการปิด ระยะเวลา), นโยบาย (กฎที่ตรงกันและนโยบายที่มันเลือก), โหนด (ในเครื่อง เซิร์ฟเวอร์ ปลายทาง โฮสต์), ทราฟฟิก, เวลา (พร็อกซีพร้อม การแปลง DNS กฎ ปลายทางพร้อม เวลาทำงานรวม) และการเขียนใหม่ที่ทำงาน ไม่มีเนื้อหาคำขอและการตอบกลับ — สิ่งนั้นต้องใช้คอนโซลหรือ Chute Dashboard
- เซสชัน — รอบการทำงานก่อน ๆ แต่ละรอบมี ทันเนล ของมัน แผงรายละเอียดแบบเดียวกัน และ บันทึก ของมัน หน้าจอบันทึกมีตัวกรองระดับความรุนแรงอยู่ด้านบน (ทั้งหมด / แจ้งเตือนขึ้นไป / คำเตือนขึ้นไป / ร้ายแรง) รีโมตอันเดียวจึงพอที่จะจำกัดรอบการทำงานให้เหลือเฉพาะคำเตือน เซสชันที่กำลังทำงานเปิดจากที่นี่ไม่ได้ — นั่นคือหน้าที่ของ แดชบอร์ด — และบันทึกของมันต้องอ่านในคอนโซล
- การวินิจฉัยเครือข่าย, การวินิจฉัยพร็อกซี, ตารางเส้นทาง — การเข้าถึงได้ ตัวรับฟัง และเส้นทางตามที่อุปกรณ์มองเห็น
แผงควบคุมยังมี ล้างแคช DNS ซึ่งเป็นวิธีเร็วที่สุดในการทดสอบการแมป [Host] ใหม่โดยไม่ต้องรีสตาร์ตทันเนล
หน้านี้เป็นฉบับแปลจากเวอร์ชันภาษาอังกฤษ หากเนื้อหาไม่ตรงกัน ให้ยึดเวอร์ชันภาษาอังกฤษเป็นหลัก