NWConnection SOCKS5 puhverserveri seadistamine iOS 17+
Enne NWConnectioni loomist lisage iOS 17 SOCKSv5 ProxyConfiguration NWParameters.PrivacyContextile.
iOS 17 ja uuemates versioonides saab Network.framework rakendada SOCKSv5 puhverserverit privaatsuskonteksti kaudu. Lisage see kontekst parameetritele enne ühenduse loomist:
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)
}
Funktsioon tagastab käivitamata TLS-ühenduse. Installige rakenduse olekukäsitlus, käivitage see soovitud järjekorras ja seejärel vahetage rakenduse protokolli selle tavalisel saatmis- ja vastuvõtuteel.
proxy.example:1080 on SOCKS-i kuulaja. Lubatud avalike teenuste ühenduste jaoks pakub SOCKS5 puhverserverite loend hosti- ja pordikandidaate. service.example:443 jääb sihtkohaks. Privaatsuskontekst rakendab oma puhverserveri seadistusi selle kontekstiga seotud ühendustele; muu parameetriga mitteseotud ühenduse loomine ei päri seda seadistust.
See on Network.frameworki ühendusliides. URLSessioni puhverserveri alistamine või WKWebView andmehoidla säte seadistab need eraldi tarbijad. NWConnectionile ehitatud WebSocketi puhul peab rakendus esitama ka sobivad WebSocketi protokolli valikud.