NWConnection SOCKS5 tarpinio serverio konfigūravimas iOS 17+
Prieš kurdami NWConnection, prijunkite iOS 17 SOCKSv5 ProxyConfiguration prie NWParameters.PrivacyContext.
„iOS 17“ ir naujesnėse versijose Network.framework gali taikyti SOCKSv5 tarpinį serverį per privatumo kontekstą. Prijunkite tą kontekstą prie parametrų prieš kuriant ryšį:
import Network
@available(iOS 17.0, *)
func makeConnection() -> NWConnection {
let parameters = NWParameters.tls
let context = NWParameters.PrivacyContext(description: "Service route")
let endpoint = NWEndpoint.hostPort(
host: "proxy.example", port: 1080)
context.proxyConfigurations = [
ProxyConfiguration(socksv5Proxy: endpoint)
]
parameters.setPrivacyContext(context)
return NWConnection(
host: "service.example", port: 443, using: parameters)
}
Funkcija grąžina nepaleistą TLS ryšį. Įdiekite programos būsenos apdorojimą, paleiskite jį numatytoje eilėje, tada apsikeiskite programos protokolu įprastu siuntimo ir priėmimo keliu.
proxy.example:1080 yra SOCKS klausytojas. Leidžiamiems viešųjų paslaugų ryšiams SOCKS5 tarpinių serverių sąrašas pateikia hosto ir prievado kandidatus. service.example:443 išlieka paskirties vieta. Privatumo kontekstas taiko savo tarpinio serverio konfigūracijas ryšiams, susietiems su tuo kontekstu; nesukūrus nesusieto ryšio su kitais parametrais ši sąranka nepaveldima.
Tai Network.framework ryšio sąsaja. URLSession tarpinio serverio nepaisymas arba WKWebView duomenų saugyklos nustatymas konfigūruoja tuos atskirus vartotojus. „WebSocket“, sukurtam ant NWConnection, programa taip pat turi pateikti tinkamas „WebSocket“ protokolo parinktis.