Configurer le proxy SOCKS5 de NWConnection sur iOS 17+
Attachez un ProxyConfiguration SOCKSv5 iOS 17 à NWParameters.PrivacyContext avant de créer une NWConnection.
Sous iOS 17 et versions ultérieures, Network.framework peut appliquer un proxy SOCKSv5 via un contexte de confidentialité. Attachez ce contexte aux paramètres avant de créer la connexion :
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)
}
La fonction renvoie une connexion TLS non démarrée. Installez la gestion d’état de l’application, démarrez-la sur la file prévue, puis échangez le protocole applicatif via son chemin habituel d’envoi et de réception.
proxy.example:1080 est l’écouteur SOCKS. Pour les connexions autorisées aux services publics, la liste de proxys SOCKS5 fournit des candidats d’hôte et de port. service.example:443 reste la destination. Le contexte de confidentialité applique ses configurations de proxy aux connexions associées à ce contexte ; créer une connexion sans rapport avec d’autres paramètres n’hérite pas de cette configuration.
Il s’agit de l’interface de connexion de Network.framework. Une substitution de proxy URLSession ou un réglage de stockage de données WKWebView configurent ces consommateurs distincts. Pour un WebSocket construit sur NWConnection, l’application doit également fournir les options de protocole WebSocket appropriées.