NWConnection SOCKS5-proxy configureren op iOS 17+
Koppel een iOS 17 SOCKSv5 ProxyConfiguration aan NWParameters.PrivacyContext voordat je een NWConnection maakt.
Op iOS 17 en later kan Network.framework een SOCKSv5-proxy toepassen via een privacycontext. Koppel die context aan de parameters voordat de verbinding wordt gemaakt:
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)
}
De functie retourneert een niet-gestarte TLS-verbinding. Installeer de statusafhandeling van de app, start deze op de bedoelde wachtrij en wissel vervolgens het applicatieprotocol uit via het normale verzend- en ontvangstpad.
proxy.example:1080 is de SOCKS-listener. Voor toegestane openbare serviceverbindingen levert de SOCKS5-proxylijst host- en poortkandidaten. service.example:443 blijft de bestemming. De privacycontext past de proxyconfiguraties toe op verbindingen die aan die context zijn gekoppeld; een losstaande verbinding met andere parameters neemt deze instelling niet over.
Dit is de verbindingsinterface van Network.framework. Een URLSession-proxyoverschrijving of een WKWebView-gegevensopslaginstelling configureert die afzonderlijke consumenten. Voor een WebSocket die op NWConnection is gebouwd, moet de app ook de juiste WebSocket-protocolopties leveren.