NWConnection SOCKS5 proxy beállítása iOS 17+ rendszeren
Csatoljon egy iOS 17 SOCKSv5 ProxyConfiguration elemet a NWParameters.PrivacyContexthez az NWConnection létrehozása előtt.
iOS 17 és újabb rendszereken a Network.framework adatvédelmi kontextuson keresztül alkalmazhat SOCKSv5 proxyt. A kapcsolat létrehozása előtt csatolja ezt a kontextust a paraméterekhez:
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)
}
A függvény egy el nem indított TLS-kapcsolatot ad vissza. Telepítse az alkalmazás állapotkezelését, indítsa el a kívánt sorban, majd cserélje ki az alkalmazásprotokollt a szokásos küldési és fogadási útvonalon.
A proxy.example:1080 a SOCKS-figyelő. Az engedélyezett nyilvános szolgáltatási kapcsolatokhoz a SOCKS5 proxy lista hoszt- és portjelölteket kínál. A service.example:443 marad a cél. Az adatvédelmi kontextus a proxybeállításait az adott kontextushoz kapcsolódó kapcsolatokra alkalmazza; egy más paraméterekkel létrehozott, nem kapcsolódó kapcsolat nem örökli ezt a beállítást.
Ez a Network.framework kapcsolati interfésze. A URLSession proxyfelülírása vagy a WKWebView adattár-beállítása konfigurálja ezeket a különálló fogyasztókat. Az NWConnectionre épülő WebSocket esetében az alkalmazásnak a megfelelő WebSocket protokollbeállításokat is biztosítania kell.