Panatilihin ang Koneksyon ng Debugger ng PyCharm sa Labas ng Proxy Chain
Balutin ang napiling Python interpreter para sa Proxychains habang pinapanatili ang mga argumento at direktang ruta ng loopback patungo sa debugger.
Ang Proxychains sa paligid ng isang proseso ng pag-debug ng Python ay maaaring makahuli ng dalawang magkaibang koneksyon: ang palabas na koneksyon ng serbisyo ng script at ang lokal na koneksyon nito pabalik sa PyCharm. Kailangan ng debugger na manatiling lokal ang pangalawa.
Kung sinusuportahan ng IDE at host ang isang wrapper ng interpreter, ituro ito sa aktwal na interpreter ng proyekto:
#!/bin/sh
exec /usr/bin/proxychains4 -f /home/alex/proxychains-debug.conf "/home/alex/project/.venv/bin/python" "$@"Palitan ang dalawang landas ng executable at ang landas ng configuration. Ang pagpapasa ng "$@" ay nagpapanatili ng indibidwal na argumento ng debugger mula sa IDE. Pinipigilan ng exec ang inilunsad na proseso na mag-iwan ng hindi kailangang wrapper shell sa pagitan ng IDE at ng anak nito.
Sa nakalaang configuration ng Proxychains na iyon, panatilihin ang nilalayong chain at idagdag ang kaugnay na direktang pagbubukod ng loopback:
localnet 127.0.0.0/255.0.0.0
localnet ::1/128Ang mga patakarang ito ay lumalampas sa chain para sa mga numerikong destinasyon ng loopback. Ang ibinigay na upstream configuration ay nagdodokumento ng mga paghihigpit sa pagtutugma ng hostname sa proxy_dns, kaya kapag sinusuri ang landas na iyon ay piliin ang aktwal na numerikong address ng loopback ng debugger. Huwag ilagay ang subnet ng remote DNS mapping sa loob ng parehong ibinukod na saklaw.
Panatilihin ang pagkakakilanlan ng interpreter
Ang paggamit ng /usr/bin/python3 sa wrapper ay maaaring tahimik na pumili ng ibang kapaligiran mula sa .venv ng proyekto. Ang mga nawawalang pakete ay mukhang kabiguan na may kaugnayan sa proxy, kahit na ibang interpreter ang nagsimula.
Umaasa ang Proxychains sa sinusuportahang interception ng dynamic na library. Ang pagtanggi ng IDE sa isang wrapper bilang interpreter, isang protektadong proseso ng macOS o isang statically linked na network client ay hiwalay na kondisyon ng pagiging tugma. Limitahan ang kaayusan sa nilalayong proseso ng Python at i-verify ang napiling interpreter sa configuration ng IDE.