Δημιουργήστε τοπικό SOCKS proxy με SSH
Χρησιμοποιήστε δυναμική προώθηση OpenSSH στο 127.0.0.1, κρατήστε τη διεργασία ενεργή και ξεχωρίστε τον λειτουργικό ακροατή από τον προσβάσιμο προορισμό.
Με εξουσιοδοτημένη SSH πρόσβαση σε διακομιστή, το OpenSSH μπορεί να δημιουργήσει SOCKS ακροατή στον υπολογιστή σας. Η σύνδεση SSH μεταφέρει την προωθούμενη κίνηση και ο απομακρυσμένος διακομιστής συνδέεται με τον προορισμό.
Ακροατής μόνο στο loopback
ssh -N -T -o ControlPath=none -o ForkAfterAuthentication=no -o ExitOnForwardFailure=yes -D 127.0.0.1:1080 [email protected]
Αντικαταστήστε τον λογαριασμό και το όνομα host. Ο SSH διακομιστής πρέπει να επιτρέπει προώθηση· ο διαχειριστής μπορεί να περιορίσει προώθηση και προορισμούς ανεξάρτητα από τη σύνδεση στον λογαριασμό.
Το -D δημιουργεί δυναμική προώθηση και η ρητή loopback διεύθυνση περιορίζει τον ακροατή σε αυτό το μηχάνημα. Το -N παραλείπει απομακρυσμένη εντολή, το -T ψευδοτερματικό. Το ControlPath=none αποφεύγει υπάρχοντα master κοινής χρήσης, ενώ το ForkAfterAuthentication=no κρατά αυτή την εκτέλεση στο προσκήνιο.
Κρατήστε τη διεργασία ενεργή όσο χρησιμοποιείτε τον proxy. Αν η θύρα 1080 είναι κατειλημμένη, επιλέξτε άλλη ελεύθερη υψηλή θύρα και ενημερώστε τον πελάτη. Το ExitOnForwardFailure=yes τερματίζει το SSH αν δεν μπορεί να δημιουργήσει ακροατή.
Χρήση του τελικού σημείου SOCKS
curl --proxy socks5h://127.0.0.1:1080 --noproxy '' --connect-timeout 5 --max-time 15 https://example.com/
Αυτό το αίτημα αναθέτει τον χειρισμό ονόματος προορισμού μέσω SOCKS5. Άλλες εφαρμογές χρειάζονται δική τους ρύθμιση SOCKS· ένα πεδίο HTTP proxy δεν μπορεί να μιλήσει SOCKS σε αυτόν τον ακροατή.
Για έλεγχο της διεργασίας που κατέχει τη θύρα:
ss -ltnp 'sport = :1080'
Η επιδιωκόμενη διεργασία SSH πρέπει να κατέχει loopback ακροατή. Ένα αίτημα μέσω αυτού ελέγχει αν και ο απομακρυσμένος διακομιστής φτάνει στον στόχο. Χρησιμοποιήστε ελεγχόμενο προορισμό όταν πρέπει να εξετάσετε την παρατηρούμενη έξοδο.
Διάρκεια συνεδρίας
Το Ctrl-C κλείνει τη διεργασία SSH, τον ακροατή και τις προωθημένες συνδέσεις. Η διακοπή SSH επίσης καθιστά τον proxy μη διαθέσιμο.
Το ExitOnForwardFailure ελέγχει την αρχική δημιουργία. Δεν τερματίζει το SSH σε κάθε μεταγενέστερη αποτυχία σύνδεσης προορισμού, οπότε εξετάστε χωριστά τη συνεδρία, την τοπική θύρα και το αίτημα προορισμού.