iOS 17 ve sonrasında Network.framework, bir gizlilik bağlamı aracılığıyla SOCKSv5 proxy uygulayabilir. Bağlantıyı oluşturmadan önce bu bağlamı parametrelere ekleyin:

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

İşlev, başlatılmamış bir TLS bağlantısı döndürür. Uygulamanın durum işlemesini kurun, istendiği kuyrukta başlatın ve ardından uygulama protokolünü normal gönderme ve alma yolu üzerinden değiştirin.

proxy.example:1080, SOCKS dinleyicisidir. İzin verilen genel hizmet bağlantıları için SOCKS5 proxy listesi ana bilgisayar ve bağlantı noktası adayları sağlar. service.example:443 hedef olarak kalır. Gizlilik bağlamı, proxy yapılandırmalarını bu bağlamla ilişkili bağlantılara uygular; diğer parametrelerle ilgisiz bir bağlantı oluşturmak bu kurulumu devralmaz.

Bu, Network.framework'ün bağlantı arabirimidir. Bir URLSession proxy geçersiz kılması veya WKWebView veri deposu ayarı bu ayrı tüketicileri yapılandırır. NWConnection üzerine kurulu bir WebSocket için uygulama ayrıca uygun WebSocket protokol seçeneklerini de sağlamalıdır.

İlgili makaleler