Δρομολόγηση WebSocket του URLSession μέσω SOCKS5 σε iOS 17+
Ρυθμίστε το URLSessionWebSocketTask μέσω διακομιστή μεσολάβησης SOCKSv5 σε επίπεδο συνεδρίας σε iOS 17 ή νεότερο και διαχωρίστε τη δρομολόγηση από την αποκρυπτογράφηση WSS.
Τα συνηθισμένα αιτήματα HTTPS μιας εφαρμογής iOS μπορεί να εμφανίζονται σε διακομιστή μεσολάβησης εντοπισμού σφαλμάτων, ενώ η κίνηση WebSocket λείπει. Προσδιορίστε πρώτα το μεταφορικό μέσο WebSocket: το URLSessionWebSocketTask μπορεί να χρησιμοποιήσει ρύθμιση μεσολάβησης σε επίπεδο συνεδρίας, ενώ μια βιβλιοθήκη που ανοίγει δικές της υποδοχές χρειάζεται τη δική της υποστηριζόμενη ενσωμάτωση. Για μια ακατέργαστη σύνδεση Network.framework σε iOS 17+, ρυθμίστε το δικό του πλαίσιο μεσολάβησης του NWConnection.
Σε iOS 17 ή νεότερο, δημιουργήστε τη συνεδρία με ρητό μεσολαβητή SOCKSv5:
import Foundation
import Network
@available(iOS 17.0, *)
func makeDebugSession() -> URLSession {
let configuration = URLSessionConfiguration.default
let endpoint = NWEndpoint.hostPort(
host: "192.0.2.10", port: 8889)
configuration.proxyConfigurations = [
ProxyConfiguration(socksv5Proxy: endpoint)
]
return URLSession(configuration: configuration)
}Αντικαταστήστε τη διεύθυνση και τη θύρα της τεκμηρίωσης με τον προσβάσιμο ακροατή SOCKS του υπάρχοντος μεσολαβητή εντοπισμού σφαλμάτων. Ενεργοποιήστε αυτόν τον ακροατή στην εφαρμογή μεσολάβησης. Ο ακροατής HTTP του μπορεί να είναι σε άλλη θύρα.
Δημιουργήστε το webSocketTask από τη συνεδρία που επιστρέφεται. Μια εργασία που δημιουργείται μέσω άλλης URLSession δεν κληρονομεί την παράκαμψη αυτής της συνεδρίας. Ένας κενός πίνακας proxyConfigurations χρησιμοποιεί τις προεπιλογές του συστήματος· δεν είναι ρητή επιλογή άμεσης διαδρομής.
Η προσβασιμότητα και τα αναγνώσιμα μηνύματα είναι ξεχωριστά ορόσημα
Ένα φυσικό τηλέφωνο χρειάζεται μια διεύθυνση που φτάνει στον υπολογιστή εντοπισμού σφαλμάτων. Σε αυτό το τηλέφωνο, το 127.0.0.1 ονομάζει το ίδιο το τηλέφωνο. Ελέγξτε τη διεπαφή του ακροατή και την επιτρεπόμενη πρόσβαση πελατών του μεσολαβητή όταν η σύνδεση δεν φτάνει ποτέ εκεί.
Μια διαδρομή SOCKS μεταφέρει τη σύνδεση. Η ανάγνωση περιεχομένου wss απαιτεί επιπλέον τη ρύθμιση επιθεώρησης TLS του εργαλείου εντοπισμού σφαλμάτων και κατάλληλη εμπιστοσύνη στη συσκευή. Η καρφίτσωση πιστοποιητικών ή μια ξεχωριστή υλοποίηση TLS μπορεί να εμποδίσει αυτή την επιθεώρηση ακόμη και όταν η κίνηση φτάνει στον ακροατή.
Αναζητήστε την ανταλλαγή WebSocket και τα μηνύματα αφού εδραιωθεί η σύνδεση. Το να βλέπετε μόνο ένα αίτημα δημοσκόπησης από μια εφαρμογή Socket.IO δεν αποδεικνύει ότι το μεταγενέστερο μεταφορικό μέσο WebSocket χρησιμοποίησε την ίδια διαδρομή. Κρατήστε αυτή τη ρητή ρύθμιση εντοπισμού σφαλμάτων εντός του προβλεπόμενου περιβάλλοντος ανάπτυξης της εφαρμογής.