ഒരു 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-യുടെ കോൺഫിഗറേഷനിൽ തിരഞ്ഞെടുത്ത ഇന്റർപ്രിറ്റർ പരിശോധിക്കുക.

അനുബന്ധ ലേഖനങ്ങൾ