Konfigurácia proxy SOCKS5 pre NWConnection na iOS 17+
Pred vytvorením NWConnection pripojte iOS 17 SOCKSv5 ProxyConfiguration k NWParameters.PrivacyContext.
V iOS 17 a novšom môže Network.framework použiť proxy SOCKSv5 prostredníctvom kontextu súkromia. Pred vytvorením pripojenia pripojte tento kontext k parametrom:
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)
}
Funkcia vracia nespustené TLS pripojenie. Nainštalujte obsluhu stavu aplikácie, spustite ju v zamýšľanom fronte a potom vymieňajte protokol aplikácie bežnou cestou odosielania a prijímania.
proxy.example:1080 je listener SOCKS. Pre povolené pripojenia k verejným službám zoznam proxy SOCKS5 poskytuje kandidátov hostiteľa a portu. service.example:443 zostáva cieľom. Kontext súkromia uplatňuje svoje konfigurácie proxy na pripojenia spojené s týmto kontextom; vytvorenie nesúvisiaceho pripojenia s inými parametrami toto nastavenie nededia.
Toto je rozhranie pripojení Network.framework. Prepis proxy v URLSession alebo nastavenie úložiska údajov WKWebView konfigurujú týchto samostatných spotrebiteľov. Pre WebSocket postavený na NWConnection musí aplikácia tiež poskytnúť príslušné možnosti protokolu WebSocket.