NWConnectionin SOCKS5-välityspalvelimen määritys iOS 17+:ssa
Liitä iOS 17 SOCKSv5 ProxyConfiguration NWParameters.PrivacyContextiin ennen NWConnectionin luomista.
iOS 17:ssä ja uudemmissa Network.framework voi käyttää SOCKSv5-välityspalvelinta tietosuojakontekstin kautta. Liitä tämä konteksti parametreihin ennen yhteyden luomista:
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)
}
Funktio palauttaa käynnistämättömän TLS-yhteyden. Asenna sovelluksen tilankäsittely, käynnistä se aiotussa jonossa ja vaihda sitten sovellusprotokolla sen tavallisella lähetys- ja vastaanottoreitillä.
proxy.example:1080 on SOCKS-kuuntelija. Sallituille julkisten palvelujen yhteyksille SOCKS5-välityspalvelinluettelo tarjoaa isäntä- ja porttiehdokkaita. service.example:443 pysyy kohteena. Tietosuojakonteksti soveltaa välityspalvelinasetuksiaan kyseiseen kontekstiin liittyviin yhteyksiin; riippumattoman yhteyden luominen muilla parametreilla ei peri tätä asetusta.
Tämä on Network.frameworkin yhteysrajapinta. URLSessionin välityspalvelimen ohitus tai WKWebView'n tietovarastoasetus määrittää nämä erilliset kuluttajat. NWConnectionin päälle rakennetulle WebSocketille sovelluksen on myös toimitettava asianmukaiset WebSocket-protokolla-asetukset.