PyCharm کے ڈیبگر کنکشن کو پراکسی زنجیر سے باہر رکھیں
منتخب Python انٹرپریٹر کو Proxychains کے لیے لپیٹیں اور آرگیومنٹس نیز ڈیبگر تک سیدھا loopback راستہ برقرار رکھیں۔
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 کی کنفیگریشن میں منتخب انٹرپریٹر کی تصدیق کریں۔