Á iOS 17 og nýrri getur Network.framework beitt SOCKSv5 umboði í gegnum persónuverndarsamhengi. Tengdu það samhengi við færibreyturnar áður en tengingin er búin til:

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

Fallið skilar TLS-tengingu sem ekki hefur verið ræst. Settu upp stöðumeðferð forritsins, ræstu hana í tilætluðu biðröðinni og skiptu síðan forritssamskiptareglunni um venjulegu sendingar- og móttökuleiðina.

proxy.example:1080 er SOCKS-hlustarinn. Fyrir leyfðar tengingar við opinbera þjónustu veitir SOCKS5 umboðslistinn hýsil- og portframbjoð. service.example:443 er áfram áfangastaðurinn. Persónuverndarsamhengið beitir umboðsstillingum sínum á tengingar sem tengjast því samhengi; að búa til ótengda tengingu með öðrum færibreytum erfir ekki þessa uppsetningu.

Þetta er tengingarviðmót Network.framework. Yfirskrift URLSession umboðs eða stilling WKWebView gagnageymslu stillir þessa aðskildu neytendur. Fyrir WebSocket sem byggt er á NWConnection verður forritið einnig að veita viðeigandi WebSocket samskiptaregluvalmöguleika.

Tengdir greinar