URLSession WebSocketek irányítása SOCKS5-ön keresztül iOS 17+ rendszeren
Állítsa be a URLSessionWebSocketTaskot munkamenet-szintű SOCKSv5 proxyn keresztül iOS 17 vagy újabb rendszeren, és válassza szét az útvonalválasztást a WSS-visszafejtéstől.
Egy iOS-alkalmazás szokásos HTTPS-kérései megjelenhetnek egy hibakereső proxyban, miközben a WebSocket-forgalma hiányzik. Először azonosítsa a WebSocket-szállítási módot: a URLSessionWebSocketTask használhat munkamenet-szintű proxykonfigurációt, míg a saját socketeket megnyitó könyvtárnak saját támogatott integrációra van szüksége. Nyers Network.framework-kapcsolathoz iOS 17+ rendszeren állítsa be a NWConnection saját proxykörnyezetét.
iOS 17 vagy újabb rendszeren hozza létre a munkamenetet explicit SOCKSv5 proxyval:
import Foundation
import Network
@available(iOS 17.0, *)
func makeDebugSession() -> URLSession {
let configuration = URLSessionConfiguration.default
let endpoint = NWEndpoint.hostPort(
host: "192.0.2.10", port: 8889)
configuration.proxyConfigurations = [
ProxyConfiguration(socksv5Proxy: endpoint)
]
return URLSession(configuration: configuration)
}Cserélje le a dokumentációs címet és portot a meglévő hibakereső proxy elérhető SOCKS-figyelőjére. Engedélyezze ezt a figyelőt a proxyalkalmazásban. HTTP-figyelője más porton is lehet.
Hozza létre a webSocketTaskot a visszakapott munkamenetből. Egy másik URLSessionen keresztül létrehozott feladat nem örökli ennek a munkamenetnek a felülírását. Az üres proxyConfigurations tömb a rendszer alapértelmezéseit használja; ez nem a közvetlen útvonal explicit kiválasztása.
Az elérhetőség és az olvasható üzenetek külön mérföldkövek
Egy fizikai telefonnak olyan címre van szüksége, amely eléri a hibakereső számítógépet. Azon a telefonon a 127.0.0.1 magát a telefont jelöli. Ellenőrizze a figyelő interfészét és a proxy engedélyezett klienshozzáférését, amikor a kapcsolat soha nem ér oda.
A SOCKS-útvonal szállítja a kapcsolatot. A wss-tartalom olvasása emellett a hibakereső eszköz TLS-vizsgálati beállítását és megfelelő bizalmat igényel az eszközön. A tanúsítvány-rögzítés vagy egy külön TLS-megvalósítás megakadályozhatja ezt a vizsgálatot akkor is, ha a forgalom eléri a figyelőt.
A kapcsolat létrejötte után keresse a WebSocket-cserét és az üzeneteket. Ha csak egy lekérdezési kérést lát egy Socket.IO-alkalmazástól, az nem bizonyítja, hogy a későbbi WebSocket-szállítása ugyanazt az útvonalat használta. Tartsa ezt az explicit hibakeresési konfigurációt az alkalmazás tervezett fejlesztési környezetén belül.