iOS 17 және одан кейінгі нұсқаларда Network.framework құпиялық контексті арқылы SOCKSv5 проксиін қолдана алады. Қосылымды жасамас бұрын сол контексті параметрлерге қосыңыз:

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

Функция іске қосылмаған TLS қосылымын қайтарады. Қолданбаның күйін өңдеуді орнатыңыз, оны керек кезекте іске қосыңыз, содан кейін қосымша хаттамасын әдеттегі жіберу және қабылдау жолымен алмасыңыз.

proxy.example:1080 — SOCKS тыңдаушысы. Рұқсат етілген жалпыға ортақ қызмет қосылымдары үшін SOCKS5 прокси тізімі хост пен порт үміткерлерін ұсынады. service.example:443 межелі орын болып қалады. Құпиялық контексті өзінің прокси конфигурацияларын сол контекспен байланысқан қосылымдарға қолданады; басқа параметрлермен байланыссыз қосылым жасау бұл параметрді мұра етпейді.

Бұл — Network.framework қосылым интерфейсі. URLSession проксиін қайта анықтау немесе WKWebView деректер қоймасының параметрі сол бөлек тұтынушыларды конфигурациялайды. NWConnection негізіндегі WebSocket үшін қолданба тиісті WebSocket хаттама опцияларын да беруі керек.

Қатысты мақалалар