NWConnection SOCKS5-Proxy op iOS 17+ konfiguréieren
Verbannt eng iOS 17 SOCKSv5 ProxyConfiguration un NWParameters.PrivacyContext, ier Dir eng NWConnection erstellt.
Op iOS 17 a méi jonken ass Network.framework fäeg, e SOCKSv5-Proxy duerch e Privatsphärkontext anzebauen. Verbannt dëse Kontext un d’Parameteren, ier Dir d’Verbindung erstellt:
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)
}
D’Funktioun gëtt eng TLS-Verbindung zréck, déi nach net gestart ass. Installéiert d’Zoustandsbehandlung vun der App, start et an der virgesinnener Queue a wéckelt duerno den Applikatiounsprotokoll iwwer säin normale Sende- a Empfangswee aus.
proxy.example:1080 ass de SOCKS-Listener. Fir erlaabt Verbindungen zu ëffentleche Servicer bitt d’SOCKS5-Proxy-Lëscht Host- a Portkandidaten. service.example:443 bleift d’Zil. De Privatsphärkontext applizéiert seng Proxykonfiguratiounen op Verbindungen, déi mat deem Kontext verbonne sinn; eng onofhängeg Verbindung mat anere Parameteren ierft dës Astellung net.
Dëst ass d’Verbindungsinterface vun Network.framework. Eng URLSession-Proxy-Iwwerschreiwung oder eng WKWebView-Datebank-Astellung konfiguréiert déi separat Consommateuren. Fir e WebSocket, deen op NWConnection opgebaut ass, muss d’App och déi passend WebSocket-Protokolloptiounen ubidden.