Βάλτε τη διαπραγμάτευση SOCKS του Netty πριν από το πρωτόκολλο της εφαρμογής σας
Τοποθετήστε έναν χειριστή διακομιστή μεσολάβησης SOCKS του Netty πριν από την κίνηση της εφαρμογής και διατηρήστε έναν άλυτο προορισμό όταν το DNS στην πλευρά του μεσολαβητή είναι επιθυμητό.
Για ένα υπάρχον bootstrap/pipeline του Netty όπου ο διακομιστής SOCKS πρέπει να επιλύσει τον προορισμό:
bootstrap.resolver(NoopAddressResolverGroup.INSTANCE);
pipeline.addFirst(
new Socks5ProxyHandler(new InetSocketAddress("127.0.0.1", 1080))
);
bootstrap.connect(
InetSocketAddress.createUnresolved("example.com", 443)
);Το τελικό σημείο του μεσολαβητή είναι η τοπική θύρα 1080· ο άλυτος στόχος σύνδεσης είναι example.com:443. Μη χρησιμοποιείτε τη διεύθυνση του μεσολαβητή για τους δύο ρόλους και μην επιλύετε το όνομα πριν το λάβει ο χειριστής. Για δημόσιους στόχους σε επιτρεπόμενη δημόσια διαδρομή μεσολαβητή, η λίστα μεσολαβητών SOCKS5 παρέχει υποψηφίους για το τελικό σημείο μεσολαβητή του χειριστή.
Τοποθετήστε τον Socks5ProxyHandler πριν από χειριστές που ανταλλάσσουν κίνηση προορισμού. Περιμένετε το future της σύνδεσης μεσολαβητή, όχι απλώς ένα κανάλι που φτάνει στον ακροατή. Μια απορριφθείσα μέθοδος ή προορισμός ανήκει σε αυτό το στάδιο ρύθμισης.
Για HTTPS, το επόμενο επίπεδο TLS χρησιμοποιεί το όνομα κεντρικού υπολογιστή του προορισμού, την απαιτούμενη επαλήθευση και εμπιστοσύνη—όχι την ταυτότητα του τελικού σημείου SOCKS. Μόνο τότε αρχίζει η ανταλλαγή HTTP/εφαρμογής.
Το απόσπασμα δεν παρέχει βρόχους συμβάντων, τύπους καναλιών, χειριστές TLS/HTTP ή κανονική διαχείριση σφαλμάτων. Επιλέξτε τον κατασκευαστή SOCKS που ταιριάζει στις ανάγκες ελέγχου ταυτότητας· ένας χειριστής HTTP Basic είναι άλλο πρωτόκολλο.
Χρησιμοποιήστε τον no-op resolver μόνο όπου αυτός ο επόμενος χειριστής κατέχει την επίλυση ονομάτων κεντρικού υπολογιστή. Άλλες συνδέσεις μπορεί να χρειάζονται τοπική αναζήτηση. Κρατήστε χωριστά την έξοδο του resolver, το future του μεσολαβητή, το TLS και το αποτέλεσμα της εφαρμογής κατά τη διάγνωση μιας αποτυχίας.