Proxychains Pythonin debuggausprosessin ympärillä voi napata kaksi eri yhteyttä: skriptin lähtevän palveluyhteyden ja sen paikallisen yhteyden takaisin PyCharmiin. Debuggeri tarvitsee jälkimmäisen pysymään paikallisena.

Kun IDE ja isäntä tukevat tulkin käärettä, osoita se projektin varsinaiseen tulkkiin:

#!/bin/sh
exec /usr/bin/proxychains4 -f /home/alex/proxychains-debug.conf "/home/alex/project/.venv/bin/python" "$@"

Korvaa molemmat suoritettavien tiedostojen polut ja asetustiedoston polku. "$@":n välittäminen säilyttää IDE:n yksittäiset debuggeriargumentit. exec estää käynnistettyä prosessia jättämästä tarpeetonta kääreshelliä IDE:n ja sen lapsen väliin.

Tässä erillisessä Proxychains-asetuksessa pidä aiottu ketju ja lisää asiaankuuluva suora loopback-poikkeus:

localnet 127.0.0.0/255.0.0.0
localnet ::1/128

Nämä säännöt ohittavat ketjun numeerisille loopback-kohteille. Mukana toimitettu ylävirran asetus dokumentoi isäntänimien täsmäytyksen rajoitukset proxy_dns:n kanssa, joten diagnosoidessasi tätä reittiä suosi debuggerin todellista numeerista loopback-osoitetta. Älä sijoita etä-DNS:n kartoituksen aliverkkoa samaan poissuljettuun alueeseen.

Säilytä tulkin identiteetti

Kun kääreessä käytetään /usr/bin/python3:a, se voi hiljaa valita toisen ympäristön projektin .venv:stä. Silloin puuttuvat paketit näyttävät välityspalvelimeen liittyvältä vialta, vaikka käynnistyi toinen tulkki.

Proxychains nojaa tuettuun dynaamisten kirjastojen sieppaukseen. IDE, joka hylkää kääreen tulkkina, suojattu macOS-prosessi tai staattisesti linkitetty verkkopalvelinasiakas on erillinen yhteensopivuusehto. Rajaa järjestely aiottuun Python-prosessiin ja varmista valittu tulkki IDE:n asetuksista.

Aiheeseen liittyvät artikkelit