Konfigurace proxy SOCKS5 pro NWConnection na iOS 17+
Před vytvořením NWConnection připojte iOS 17 SOCKSv5 ProxyConfiguration k NWParameters.PrivacyContext.
V iOS 17 a novějším může Network.framework použít proxy SOCKSv5 prostřednictvím kontextu soukromí. Před vytvořením připojení připojte tento kontext k parametrům:
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)
}
Funkce vrací nezahájené TLS připojení. Nainstalujte obsluhu stavu aplikace, spusťte ji ve zamýšlené frontě a poté vyměňujte aplikační protokol běžnou cestou odesílání a příjmu.
proxy.example:1080 je listener SOCKS. Pro povolená připojení k veřejným službám seznam proxy SOCKS5 poskytuje kandidáty hostitele a portu. service.example:443 zůstává cílem. Kontext soukromí uplatňuje své konfigurace proxy na připojení přidružená k tomuto kontextu; vytvoření nesouvisejícího připojení s jinými parametry toto nastavení nedědí.
Toto je rozhraní připojení Network.framework. Přepsání proxy v URLSession nebo nastavení úložiště dat WKWebView konfigurují tyto samostatné spotřebitele. Pro WebSocket postavený na NWConnection musí aplikace také poskytnout příslušné možnosti protokolu WebSocket.