URLSessioni WebSocketite suunamine SOCKS5 kaudu iOS 17+ seadmes
Seadistage URLSessionWebSocketTask seansi tasemel SOCKSv5 puhverserveri kaudu iOS 17 või uuemas versioonis ning eraldage marsruutimine WSS-i dekrüpteerimisest.
iOS-i rakenduse tavalised HTTPS-päringud võivad ilmuda silumispuhverserveris, samal ajal kui selle WebSocket-liiklus puudub. Tuvastage esmalt WebSocketi transport: URLSessionWebSocketTask saab kasutada seansi tasemel puhverserveri konfiguratsiooni, samas kui oma sokette avav teek vajab oma toetatud integreerimist. Töötlemata Network.framework-ühenduse jaoks iOS 17+ seadmes seadistage NWConnectioni enda puhverserveri kontekst.
iOS 17 või uuemas versioonis looge seanss selgesõnalise SOCKSv5 puhverserveriga:
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)
}Asendage dokumentatsiooni aadress ja port olemasoleva silumispuhverserveri kättesaadava SOCKS-kuulajaga. Lubage see kuulaja puhverserveri rakenduses. Selle HTTP-kuulaja võib olla teisel pordil.
Looge webSocketTask tagastatud seansist. Teise URLSessioni kaudu loodud ülesanne ei päri selle seansi alistamist. Tühi proxyConfigurations massiiv kasutab süsteemi vaikeväärtusi; see ei ole otsese marsruudi selgesõnaline valik.
Kättesaadavus ja loetavad sõnumid on eraldi verstapostid
Füüsilisel telefonil on vaja aadressi, mis jõuab silumisarvutini. Selles telefonis tähistab 127.0.0.1 telefoni ennast. Kontrollige kuulaja liidest ja puhverserveri lubatud kliendijuurdepääsu, kui ühendus ei jõua sinna kunagi.
SOCKS-marsruut kannab ühendust. Wss-sisu lugemine nõuab lisaks silumistööriista TLS-kontrolli seadistust ja sobivat usaldust seadmes. Sertifikaadi kinnitamine või eraldi TLS-i teostus võib seda kontrolli takistada ka siis, kui liiklus jõuab kuulajani.
Otsige WebSocketi vahetust ja sõnumeid pärast ühenduse loomist. Ainult ühe küsitluspäringu nägemine Socket.IO rakendusest ei ole tõestus, et selle hilisem WebSocketi transport kasutas sama marsruuti. Hoidke see selgesõnaline silumiskonfiguratsioon rakenduse kavandatud arenduskeskkonnas.