การดีบักบน Mac

บน Mac นั้น Chute กับทราฟฟิกที่คุณอยากดูอยู่บนเครื่องเดียวกัน สิ่งที่คู่มือ iPhoneต้องใช้หลายขั้นตอน — สาย ลิสเนอร์ รหัสผ่าน — จึงไม่จำเป็น สิ่งที่มาแทนคือคำถามอีกข้อ: ทราฟฟิกไปถึง Chute จริงหรือเปล่า เพราะบน macOS แอปพลิเคชันเลือกที่จะไม่สนใจพร็อกซีได้

1. ทำให้ทราฟฟิกวิ่งผ่าน Chute

สองกลไก แยกจากกันโดยสิ้นเชิง และเมนูแสดงทั้งคู่:

  • พร็อกซีระบบ — สวิตช์บนสุดของเมนู ลงทะเบียน Chute เป็นพร็อกซี HTTP/SOCKS ของระบบ แอปพลิเคชันที่อ่านการตั้งค่าพร็อกซีของระบบ (เบราว์เซอร์ แอป GUI ส่วนใหญ่) จะวิ่งผ่าน Chute ส่วนที่ไม่อ่านก็ไม่ได้รับผลกระทบ
  • Enhanced Mode (⌘E) — ดักทราฟฟิกที่เลเยอร์เครือข่าย ความเห็นของแอปพลิเคชันเรื่องพร็อกซีจึงไม่สำคัญอีกต่อไป นี่คือสิ่งที่คุณต้องการเมื่อแอปไม่รองรับพร็อกซีเลย ดูขั้นตอนการอนุมัติและการติดตั้งสองแบบได้ที่โหมดปรับปรุง

เครื่องมือในเทอร์มินัลคือเรื่องที่คนมักคาดไม่ถึง: curl, git, npm และเพื่อน ๆ อ่าน HTTP_PROXY/HTTPS_PROXY จากสภาพแวดล้อม ไม่ใช่จากการตั้งค่าระบบ Copy Shell Export Command (⌘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 เครื่องมือบรรทัดคำสั่งจึงข้ามสิ่งเดียวกันกับที่พร็อกซีระบบข้าม วางลงในเชลล์ที่คุณกำลังทดสอบ มันมีผลเฉพาะกับเชลล์นั้น

คุณควรเห็น: แท็บ Traffic ในหน้าต่างหลักค่อย ๆ เต็มไปด้วยแถวขณะที่คุณใช้แอป ถ้าไม่มีแถวเลย แปลว่าทราฟฟิกไม่เคยไปถึง Chute — กลับมาที่ขั้นตอนนี้ แทนที่จะไปหาปัญหาการถอดรหัส

2. อ่านแท็บ Traffic

Traffic แสดงรายการการเชื่อมต่อที่กำลังทำงานพร้อมช่องค้นหาและตัวนับ (N active) Show columns ▾ สลับเลย์เอาต์:

  • Double-row (ค่าเริ่มต้น) — สองบรรทัดต่อการเชื่อมต่อ เหมาะกับการไล่ดู
  • Wide table — หนึ่งแถวต่อการเชื่อมต่อ กางทุกคอลัมน์: โฮสต์, Process, กฎ, นโยบาย, Proto, อัปโหลด, ดาวน์โหลด, Totals, สถานะ คลิกหัวคอลัมน์เพื่อเรียงลำดับ
  • Group by app — รวมการเชื่อมต่อไว้ใต้แอปพลิเคชันที่เปิดมัน พร้อมชื่อและไอคอน เป็นทางที่เร็วที่สุดในการตอบว่า "โปรเซสนี้กำลังคุยกับใคร"

คลิกขวาที่แถวจะได้ Show Details, Copy Host, Copy Details, Filter Logs (กระโดดไปแท็บ บันทึก โดยกรองเฉพาะการเชื่อมต่อนี้แล้ว) และ Close Connection

Show Details เปิดหน้าต่างที่มีโฮสต์, Process, โปรโตคอล, ปลายทาง, กฎ, นโยบาย, การเขียนใหม่, อัปโหลด, ดาวน์โหลด และสถานะของการเชื่อมต่อ — ทุกอย่างเกี่ยวกับเส้นทางที่มันถูกกำหนดอยู่ที่นี่

แท็บ Traffic ไม่แสดงเนื้อหาคำขอและการตอบกลับ นั่นคือหน้าที่ของปุ่ม คำขอและประวัติ ในหน้าต่างรายละเอียด ซึ่งเปิดคอนโซลเว็บที่แสดงเนื้อหาได้ สิ่งที่เปิดคือหน้าแรกของคอนโซล ไม่ใช่การเชื่อมต่อนั้น

3. ทดสอบกฎโดยไม่ต้องส่งคำขอ

แท็บ กฎ มีปุ่ม Test Rule... พิมพ์ URL หรือแค่ชื่อโดเมน กด Test แล้ว Chute จะตอบด้วยโฮสต์และพอร์ตที่มันแยกได้ ผลลัพธ์ DNS กฎที่ตรง นโยบายที่กฎนั้นเลือก และหมายเหตุ

ใช้มันเมื่อคำถามคือ "ทำไมอันนี้ไปตรง" หรือ "กฎสองข้อของฉันอันไหนชนะ" — มันดูจากชุดกฎที่กำลังทำงาน จึงบอกด้วยว่าการกำหนดค่าที่คุณเพิ่งแก้คือชุดที่โหลดอยู่จริงหรือไม่ ถ้าคำตอบดูเก่า ให้โหลดการกำหนดค่าใหม่ (⌘R) คำถามเดียวกันผ่าน API คือ POST /api/rules/match

4. เปิดการบันทึกและการถอดรหัส

ทั้งคู่อยู่ในเมนู และทั้งคู่มีผลกับเคอร์เนลที่กำลังทำงาน:

  • Traffic Capture (⌘B) — เก็บเนื้อหาคำขอและการตอบกลับ หรือก็คือการตั้งค่า replica ค่าเริ่มต้นคือปิด และไม่มีอะไรมีเนื้อหาจนกว่าจะเปิด
  • Enable MitM (⌘M) — เปิดการถอดรหัสสำหรับโฮสต์ในรายการ hostname ของ [MITM]

ทั้งคู่ไม่ถูกเขียนกลับลงไฟล์การกำหนดค่า หลัง Reload Configuration หรือรีสตาร์ต replica และ [MITM] enable ในไฟล์เป็นผู้ชนะ

CA บน macOS เป็นขั้นตอนเดียว ในหน้าต่างการกำหนดค่า เปิด MitM:

  1. Generate New Certificate (หรือ Import Certificate from PKCS#12 File)
  2. Install the Certificate to System — macOS จะขอรหัสผ่านผู้ดูแลระบบแล้วเพิ่มลง System keychain เป็น root ที่เชื่อถือ ไม่มีขั้นตอน "เชื่อถือ" แยกต่างหากแบบบน iOS
  3. Export the Certificate เขียนสำเนา .pem ซึ่งเป็นวิธีนำ CA เดียวกันไปใส่โทรศัพท์ Apple TV หรือคอนเทนเนอร์

5. จำกัดให้เหลือโปรเซสเดียว

macOS คือแพลตฟอร์มที่ Chute รู้ว่าแอปพลิเคชันใดเปิดการเชื่อมต่อ และกฎก็ใช้ข้อมูลนั้นได้:

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

ดู PROCESS-NAME, PROCESS-PATH และ PROCESS-NAME-REGEX ได้ที่กฎโปรเซส เมื่อใช้ร่วมกับ Group by app ในแท็บ Traffic คุณจะส่งแอปพลิเคชันเดียวผ่านพร็อกซี — หรือผ่านการจำลอง — ขณะที่ทุกอย่างที่เหลือบนเครื่องทำงานตามปกติ

6. สิ่งที่ทำได้เฉพาะบน Mac

  • พาธไฟล์ data= ใน Map Local ไฟล์ถูกอ่านโดยอุปกรณ์ที่รัน Chute ณ เวลาที่มีคำขอ บน Mac อุปกรณ์นั้นคือเครื่องที่คุณกำลังแก้ไขอยู่ พาธจริงจึงใช้ได้ และการแก้ไฟล์เปลี่ยนการตอบกลับครั้งถัดไปโดยไม่ต้องโหลดใหม่ บนโทรศัพท์พาธเดียวกันไม่มีความหมาย — นั่นคือเหตุผลที่คู่มือ iPhone ใช้ base64= แทน
  • ไฟล์บนดิสก์ ชิ้นส่วนบันทึก เครื่องหมายรอบการทำงาน และข้อมูลที่จับได้อยู่ใต้ ~/Chute/Share/<run id>/ ดูตำแหน่งไฟล์ (macOS) คุณแนบมันไปกับรายงานข้อบกพร่องได้ตรง ๆ โดยไม่ต้องผ่านแผงแชร์
  • ให้บริการอุปกรณ์อื่น เมื่อเปิด allow-wifi-access เครื่องอื่นในเครือข่ายจะชี้การตั้งค่าพร็อกซีมาที่ Mac เครื่องนี้ได้ ทราฟฟิกของพวกมันจะปรากฏในมุมมองเดียวกัน และอยู่ใต้ ระยะไกล ในแถบข้างไคลเอนต์ของ Dashboard — นี่คือวิธีตรวจสอบอุปกรณ์ที่ไม่ได้รัน Chute เลย ทั้งโน้ตบุ๊ก Windows และสมาร์ททีวี

7. เมื่อแท็บ Traffic ไม่พอ

  • คอนโซลเว็บ — แถบเมนู → เปิดคอนโซลเว็บ มีเนื้อหา การส่งออก HAR หน้ากฎที่บอกว่าการเขียนใหม่ใดทำงานจริง และโพรบวินิจฉัย ต้องมี external-http-controller ใน [General]
  • Chute Dashboard — แอปฟรีอีกตัวหนึ่ง สำหรับเคอร์เนลบนเครื่องเดียวกัน ให้ใส่ external-controller-access = <รหัสผ่าน>@127.0.0.1:6170 ใน [General] แล้วเชื่อมต่อแท็บ ระยะไกล ของ Dashboard ไปที่ 127.0.0.1 ด้วยพอร์ตและรหัสผ่านนั้น คุ้มค่าเพราะมีแผงเครื่องมือ MitM และการส่งออก HAR / curl จากการคลิกขวา
  • แท็บบันทึก — ยกระดับด้วย loglevel = verbose ก่อน แล้วอย่าลืมเปลี่ยนกลับ Filter Logs บนแถวการเชื่อมต่อจะจำกัดแท็บให้เหลือการเชื่อมต่อนั้นเพียงอันเดียว
S. Smart Rabbit LLC © All Rights Reserved            updated 2026-09-05 00:54:02

หน้านี้เป็นฉบับแปลจากเวอร์ชันภาษาอังกฤษ หากเนื้อหาไม่ตรงกัน ให้ยึดเวอร์ชันภาษาอังกฤษเป็นหลัก

results matching ""

    No results matching ""