একটি 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-র কনফিগারেশনে নির্বাচিত ইন্টারপ্রিটার যাচাই করুন।

সম্পর্কিত নিবন্ধ