iOS 17+ üzerinde NWConnection SOCKS5 proxy yapılandırma
NWConnection oluşturmadan önce iOS 17 SOCKSv5 ProxyConfiguration'ı NWParameters.PrivacyContext'e ekleyin.
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.