Конфигурисање SOCKS5 проксија кроз NWConnection на iOS 17+
Повежите iOS 17 SOCKSv5 ProxyConfiguration са NWParameters.PrivacyContext пре креирања NWConnection.
На 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 конфигуришу те одвојене кориснике. За WebSocket изграђен на NWConnection, апликација такође мора да достави одговарајуће опције WebSocket протокола.