Python डीबग प्रक्रियेभोवतीचे Proxychains दोन वेगळी कनेक्शन पकडू शकते: स्क्रिप्टचे बाहेर जाणारे सेवा कनेक्शन आणि 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 च्या कॉन्फिगरेशनमध्ये निवडलेला इंटरप्रिटर तपासा.

संबंधित लेख