iOS 17 és újabb rendszereken a Network.framework adatvédelmi kontextuson keresztül alkalmazhat SOCKSv5 proxyt. A kapcsolat létrehozása előtt csatolja ezt a kontextust a paraméterekhez:

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)
}

A függvény egy el nem indított TLS-kapcsolatot ad vissza. Telepítse az alkalmazás állapotkezelését, indítsa el a kívánt sorban, majd cserélje ki az alkalmazásprotokollt a szokásos küldési és fogadási útvonalon.

A proxy.example:1080 a SOCKS-figyelő. Az engedélyezett nyilvános szolgáltatási kapcsolatokhoz a SOCKS5 proxy lista hoszt- és portjelölteket kínál. A service.example:443 marad a cél. Az adatvédelmi kontextus a proxybeállításait az adott kontextushoz kapcsolódó kapcsolatokra alkalmazza; egy más paraméterekkel létrehozott, nem kapcsolódó kapcsolat nem örökli ezt a beállítást.

Ez a Network.framework kapcsolati interfésze. A URLSession proxyfelülírása vagy a WKWebView adattár-beállítása konfigurálja ezeket a különálló fogyasztókat. Az NWConnectionre épülő WebSocket esetében az alkalmazásnak a megfelelő WebSocket protokollbeállításokat is biztosítania kell.

Kapcsolódó cikkek