เก็บการเชื่อมต่อดีบักเกอร์ของ PyCharm ไว้นอกห่วงโซ่พร็อกซี
ห่อหุ้มอินเทอร์พรีเตอร์ Python ที่เลือกไว้สำหรับ Proxychains โดยคงอาร์กิวเมนต์และเส้นทาง loopback ตรงไปยังดีบักเกอร์
Proxychains รอบกระบวนการดีบัก Python อาจดักจับการเชื่อมต่อที่แตกต่างกันสองแบบ คือการเชื่อมต่อบริการขาออกของสคริปต์ และการเชื่อมต่อภายในที่กลับไปยัง PyCharm ดีบักเกอร์ต้องการให้อย่างหลังคงอยู่ภายใน
เมื่อ IDE และโฮสต์รองรับตัวห่ออินเทอร์พรีเตอร์ ให้ชี้ไปที่อินเทอร์พรีเตอร์จริงของโปรเจกต์:
#!/bin/sh
exec /usr/bin/proxychains4 -f /home/alex/proxychains-debug.conf "/home/alex/project/.venv/bin/python" "$@"แทนที่เส้นทางไฟล์ปฏิบัติการทั้งสอง และเส้นทางการกำหนดค่า การส่งต่อ "$@" จะคงอาร์กิวเมนต์ดีบักเกอร์แต่ละรายการของ IDE ไว้ exec ป้องกันไม่ให้กระบวนการที่เริ่มทำงานทิ้งเชลล์ห่อหุ้มที่ไม่จำเป็นไว้ระหว่าง IDE กับโพรเซสลูก
ในการกำหนดค่า Proxychains เฉพาะนั้น ให้คงห่วงโซ่ที่ต้องการและเพิ่มข้อยกเว้น loopback ตรงที่เกี่ยวข้อง:
localnet 127.0.0.0/255.0.0.0
localnet ::1/128กฎเหล่านี้ข้ามห่วงโซ่สำหรับปลายทาง loopback แบบตัวเลข การกำหนดค่าต้นทางที่ให้มาบันทึกข้อจำกัดในการจับคู่ชื่อโฮสต์กับ proxy_dns ดังนั้นเมื่อวินิจฉัยเส้นทางนั้นให้เลือกที่อยู่ loopback แบบตัวเลขจริงของดีบักเกอร์ อย่าวางซับเน็ตของการแมป DNS ระยะไกลไว้ในช่วงที่ยกเว้นเดียวกัน
รักษาอัตลักษณ์ของอินเทอร์พรีเตอร์
การใช้ /usr/bin/python3 ในตัวห่ออาจเลือกสภาพแวดล้อมอื่นจาก .venv ของโปรเจกต์อย่างเงียบ ๆ แพ็กเกจที่หายไปจึงดูเหมือนความล้มเหลวเกี่ยวกับพร็อกซี แม้ว่าอินเทอร์พรีเตอร์ตัวอื่นจะเริ่มทำงานแล้ว
Proxychains อาศัยการดักจับไลบรารีไดนามิกที่รองรับ การที่ IDE ปฏิเสธตัวห่อในฐานะอินเทอร์พรีเตอร์ โพรเซส macOS ที่ได้รับการป้องกัน หรือไคลเอนต์เครือข่ายที่ลิงก์แบบสแตติกเป็นเงื่อนไขความเข้ากันได้แยกต่างหาก จำกัดการจัดวางไว้ที่โพรเซส Python ที่ต้องการ และตรวจสอบอินเทอร์พรีเตอร์ที่เลือกในการกำหนดค่าของ IDE