iOS 17+ жүйесінде NWConnection SOCKS5 проксиін конфигурациялау
NWConnection жасамас бұрын iOS 17 SOCKSv5 ProxyConfiguration-ды NWParameters.PrivacyContext-ке қосыңыз.
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 хаттама опцияларын да беруі керек.