Proxychains Python-ის გამართვის პროცესის ირგვლივ შეიძლება ორი განსხვავებული კავშირი დაიჭიროს: სკრიპტის გამავალი სერვისის კავშირი და მისი ლოკალური კავშირი PyCharm-თან დაბრუნებისას. დებაგერს სჭირდება, რომ მეორე ლოკალური დარჩეს.

სადაც IDE და ჰოსტი ინტერპრეტატორის გარსს მხარს უჭერენ, მიუთითეთ ის პროექტის რეალურ ინტერპრეტატორზე:

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

შეცვალეთ შესრულებადი ფაილების ორივე გზა და კონფიგურაციის გზა. "$@"-ის გადაცემა ინარჩუნებს IDE-ის ცალკეულ დებაგერის არგუმენტებს. exec ხელს უშლის გაშვებულ პროცესს IDE-სა და მის შვილს შორის ზედმეტი გარსის shell დატოვებაში.

იმ გამოყოფილ 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-ის კონფიგურაციაში.

დაკავშირებული სტატიები