การดีบัก Apple TV
ในสามแพลตฟอร์ม Apple TV ดีบักยากที่สุด ด้วยเหตุผลที่ไม่เกี่ยวกับ Chute เลย: tvOS ไม่มีเบราว์เซอร์ ไม่มีแผงแชร์ ไม่มีตัวเรียกดูไฟล์ ไม่มีวิธีติดตั้งใบรับรองจากตัวอุปกรณ์ และสิ่งที่อยู่ในมือคือรีโมตไม่ใช่คีย์บอร์ด Chute tvOS ตอบทุกข้อด้วยการย้ายอินเทอร์เฟซไปอยู่ที่อื่น — เบราว์เซอร์บนโทรศัพท์หรือ Mac ของคุณ รหัส QR หน้าต่าง Dashboard
รูปร่างของคู่มือนี้จึงต่างจากอีกสองฉบับ เกือบทุกอย่างเกิดขึ้นนอกโทรทัศน์
1. นำการกำหนดค่าขึ้นทีวี
ไม่มีใครอยากแก้ไขการกำหนดค่าด้วยรีโมตเป็นครั้งที่สอง เขียนที่อื่นแล้วส่งไปดีกว่า บน Apple TV เมนู เพิ่มการกำหนดค่าจาก... มีสามทาง:
- อัปโหลดไฟล์ผ่าน Wi-Fi หรือ Chute iOS — ทีวีเปิดลิสเนอร์ HTTP ในเครื่องแล้วแสดง URL และรหัส QR เปิด URL นั้นในเบราว์เซอร์ใดก็ได้เพื่ออัปโหลดไฟล์ หรือสแกนรหัสด้วย Chute iOS ส่วน
chute://tvURL Scheme เปิดหน้านำเข้าเดียวกันในแอปบนโทรศัพท์ได้โดยตรง - ดาวน์โหลดจาก URL — ทีวีไปดึงการกำหนดค่ามาเอง เป็นทางที่พิมพ์น้อยที่สุดในสามทาง ถ้าไฟล์อยู่ในที่ที่ทีวีเข้าถึงได้
- การกำหนดค่าเปล่า — ไฟล์ว่างสำหรับแก้ไขบนอุปกรณ์
สำหรับทางอัปโหลด ทีวีกับอุปกรณ์อีกเครื่องต้องอยู่บน 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
ให้ผูกกับ 0.0.0.0 ไม่ใช่ 127.0.0.1 เพราะคอนโซลที่ผูกกับ loopback เปิดจากอุปกรณ์อื่นไม่ได้ และบนทีวีก็ไม่มีเบราว์เซอร์ให้เปิดในเครื่อง การผูกที่ไม่ใช่ loopback ต้องระบุ external-http-secret อย่างชัดเจน มิฉะนั้นตัวควบคุมจะปฏิเสธการเริ่มทำงาน
การเข้าถึงตัวควบคุมภายนอก — ช่องทางไบนารีที่ Chute Dashboard พูด ในตัวแก้ไขการกำหนดค่า เปิด ตัวควบคุมภายนอก:
- เปิด การเข้าถึงตัวควบคุมภายนอก
- ตั้ง พอร์ต (ที่นี่ค่าเริ่มต้นคือ
6171) และ รหัสผ่าน ของคุณเอง ปล่อยว่างไม่ได้ - เปิด อนุญาตการเข้าถึงจาก Wi-Fi บน Apple TV ข้อนี้ไม่ใช่ตัวเลือกเหมือนบนโทรศัพท์ เพราะไม่มีเส้นทางสายให้ถอยไปใช้ ถ้าปิดไว้จะไม่มีอะไรนอกทีวีเชื่อมต่อเข้ามาได้
คุณควรเห็นบนแผงควบคุม: พอร์ต HTTP API และ Web UI แสดงว่า เปิด และ พอร์ตการเข้าถึงภายนอก แสดงพอร์ตของคุณ ถ้าไม่มี แปลว่าอุโมงค์กำลังใช้การกำหนดค่าชุดเก่า — รีสตาร์ตมัน
3. เปิดคอนโซลจากอุปกรณ์อื่น
แผงควบคุมมีแถว ที่อยู่ Web UI อยู่ใต้สวิตช์ Web UI เลือกมัน:
- ถ้าลิสเนอร์เข้าถึงได้จากอุปกรณ์อื่น ทีวีจะแสดง รหัส QR สแกนด้วยโทรศัพท์ในเครือข่ายเดียวกัน หรือพิมพ์ที่อยู่ลงเบราว์เซอร์ใดก็ได้ โทเคนสำหรับเข้าสู่ระบบเดินทางอยู่ในรหัสแทนที่จะแสดงบนจอ จึงไม่มีใครต้องลอกเลขฐานสิบหก 32 ตัวจากโทรทัศน์
- ถ้าตัวควบคุมผูกกับ loopback ทีวีจะแสดงคำอธิบายแทนรหัส — ดูขั้นตอนที่ 2
จากตรงนั้นคอนโซลเหมือนกันทุกแพลตฟอร์ม: การเชื่อมต่อ พร้อมการตรวจสอบรายรายการและเนื้อหา, กฎ พร้อมรายการการเขียนใหม่ที่ทำงานแล้ว, การวินิจฉัย พร้อมโพรบ ping / DNS / ทางออก / URL test และ บันทึก
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 ไม่มี การถอดรหัสเปิดได้ด้วยวิธีใดวิธีหนึ่งต่อไปนี้:
- การกำหนดค่า —
enable = trueใน[MITM]ซึ่งเป็นคำตอบที่คงอยู่ - คอนโซล หรือสวิตช์บนแถบเครื่องมือของ 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 ไฟล์จะไปลงที่เครื่องที่รันเบราว์เซอร์
- ชุดข้อมูลวินิจฉัยขณะทำงาน — หน้าการวินิจฉัยของคอนโซล ดาวน์โหลดชุดข้อมูลวินิจฉัย
- ชุดข้อมูลวินิจฉัยออฟไลน์ — เมื่ออุโมงค์ไม่ได้ทำงาน ไปที่ การตั้งค่า → ชุดข้อมูลวินิจฉัยออฟไลน์ ทีวีจะสร้างไฟล์เก็บถาวรแล้วแสดงรหัส QR ลิงก์ใช้ได้เฉพาะตอนที่หน้าจอนั้นเปิดอยู่
7. สิ่งที่ทีวีเองยังบอกคุณได้
บางคำถามไม่ต้องใช้อุปกรณ์อีกเครื่องเลย ใต้ การตั้งค่า → การวินิจฉัย:
- เซสชัน — การเชื่อมต่อของรอบนี้ เลือกหนึ่งรายการจะเปิดแผงรายละเอียดที่มี BASIC (วันที่ สถานะ เหตุผลที่ปิด ระยะเวลา), POLICY (กฎที่ตรงและนโยบายที่มันเลือก), NODES (ในเครื่อง เซิร์ฟเวอร์ ปลายทาง โฮสต์), TRAFFIC, TIMING (พร็อกซีพร้อม การแปลง DNS กฎ ปลายทางพร้อม เวลาทำงานรวม) และการเขียนใหม่ที่ทำงาน ไม่มีเนื้อหาคำขอและการตอบกลับ — สิ่งนั้นต้องใช้คอนโซลหรือ Dashboard
- เซสชัน → หน้าจอบันทึก — มีตัวกรองระดับความรุนแรงอยู่ด้านบน (ทั้งหมด / Notify+ / Warning+ / Fatal) รีโมตอันเดียวจึงพอที่จะจำกัดรอบการทำงานให้เหลือเฉพาะคำเตือน
- การวินิจฉัยเครือข่าย, การวินิจฉัยพร็อกซี, ตารางเส้นทาง — การเข้าถึงได้ ลิสเนอร์ และเส้นทางตามที่อุปกรณ์มองเห็น
แผงควบคุมยังมี ล้างแคช DNS ซึ่งเป็นวิธีเร็วที่สุดในการทดสอบการแมป [Host] ใหม่โดยไม่ต้องรีสตาร์ตอุโมงค์
หน้านี้เป็นฉบับแปลจากเวอร์ชันภาษาอังกฤษ หากเนื้อหาไม่ตรงกัน ให้ยึดเวอร์ชันภาษาอังกฤษเป็นหลัก