Κρατήστε τη σύνδεση του debugger του PyCharm έξω από την αλυσίδα του proxy
Τυλίξτε τον επιλεγμένο διερμηνέα Python για το Proxychains διατηρώντας τα ορίσματα και μια άμεση διαδρομή loopback προς τον debugger.
Το Proxychains γύρω από μια διεργασία αποσφαλμάτωσης Python μπορεί να πιάσει δύο διαφορετικές συνδέσεις: την εξερχόμενη σύνδεση της σελίδας προς την υπηρεσία και την τοπική σύνδεσή της πίσω στο PyCharm. Ο debugger χρειάζεται η δεύτερη να μείνει τοπική.
Όπου το IDE και ο κεντρικός υπολογιστής υποστηρίζουν περιτύλιγμα διερμηνέα, κατευθύνετέ το στον πραγματικό διερμηνέα του έργου:
#!/bin/sh
exec /usr/bin/proxychains4 -f /home/alex/proxychains-debug.conf "/home/alex/project/.venv/bin/python" "$@"Αντικαταστήστε και τις δύο διαδρομές εκτελέσιμων και τη διαδρομή ρυθμίσεων. Η προώθηση του "$@" διατηρεί τα επιμέρους ορίσματα του debugger από το IDE. Το exec εμποδίζει τη διεργασία που εκκινήθηκε να αφήσει ένα περιττό κέλυφος περιτυλίγματος ανάμεσα στο IDE και το παιδί του.
Σε εκείνη την ειδική ρύθμιση του Proxychains, κρατήστε την επιθυμητή αλυσίδα και προσθέστε την κατάλληλη άμεση εξαίρεση loopback:
localnet 127.0.0.0/255.0.0.0
localnet ::1/128Αυτοί οι κανόνες παρακάμπτουν την αλυσίδα για αριθμητικούς προορισμούς loopback. Η παρεχόμενη ρύθμιση ανάντη τεκμηριώνει περιορισμούς στην αντιστοίχιση ονομάτων κεντρικών υπολογιστών με το proxy_dns, οπότε κατά τη διάγνωση αυτής της διαδρομής προτιμήστε την πραγματική αριθμητική διεύθυνση loopback του debugger. Μην τοποθετείτε το υποδίκτυο της απομακρυσμένης αντιστοίχισης DNS μέσα στο ίδιο εξαιρούμενο εύρος.
Διατηρήστε την ταυτότητα του διερμηνέα
Η χρήση του /usr/bin/python3 στο περιτύλιγμα μπορεί να επιλέξει ήσυχα άλλο περιβάλλον από το .venv του έργου. Τα πακέτα που λείπουν τότε μοιάζουν με αποτυχία σχετική με το proxy, παρόλο που ξεκίνησε άλλος διερμηνέας.
Το Proxychains βασίζεται σε υποστηριζόμενη παρεμβολή δυναμικών βιβλιοθηκών. Ένα IDE που απορρίπτει ένα περιτύλιγμα ως διερμηνέα, μια προστατευμένη διεργασία macOS ή ένας στατικά συνδεδεμένος δικτυακός πελάτης είναι ξεχωριστή συνθήκη συμβατότητας. Περιορίστε τη διάταξη στη επιθυμητή διεργασία Python και επαληθεύστε τον επιλεγμένο διερμηνέα στη ρύθμιση του IDE.