iOS 17 un jaunākās versijās Network.framework var piemērot SOCKSv5 starpniekserveri caur privātuma kontekstu. Pievienojiet šo kontekstu parametriem pirms savienojuma izveides:

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

Funkcija atgriež neuzsāktu TLS savienojumu. Instalējiet lietotnes stāvokļa apstrādi, palaidiet to paredzētajā rindā, pēc tam apmainiet lietotnes protokolu tās parastajā sūtīšanas un saņemšanas ceļā.

proxy.example:1080 ir SOCKS klausītājs. Atļautajiem publisko pakalpojumu savienojumiem SOCKS5 starpniekserveru saraksts nodrošina resursdatora un porta kandidātus. service.example:443 paliek galamērķis. Privātuma konteksts piemēro savas starpniekservera konfigurācijas savienojumiem, kas saistīti ar šo kontekstu; nesaistīta savienojuma izveide ar citiem parametriem šo iestatījumu nemanto.

Šī ir Network.framework savienojumu saskarne. URLSession starpniekservera aizstāšana vai WKWebView datu krātuves iestatījums konfigurē šos atsevišķos patērētājus. WebSocket, kas veidots uz NWConnection, lietotnei jānodrošina arī atbilstošās WebSocket protokola opcijas.

Saistītie raksti