Насочување на URLSession WebSocket преку SOCKS5 на iOS 17+
Конфигурирајте URLSessionWebSocketTask преку SOCKSv5 прокси на ниво на сесија на iOS 17 или поново и одвојте го насочувањето од дешифрирањето на WSS.
Обичните HTTPS барања на iOS апликација може да се појават во прокси за отстранување грешки, додека нејзиниот WebSocket сообраќај недостасува. Прво идентификувајте го WebSocket транспортот: URLSessionWebSocketTask може да користи конфигурација на прокси на ниво на сесија, додека библиотеката што отвора сопствени сокети има потреба од сопствена поддржана интеграција. За сурова Network.framework врска на iOS 17+ конфигурирајте сопствен прокси контекст на NWConnection.
На iOS 17 или поново, креирајте ја сесијата со експлицитно SOCKSv5 прокси:
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)
}Заменете ја адресата и портата од документацијата со достапниот SOCKS слушач на постојното прокси за отстранување грешки. Овозможете го тој слушач во прокси апликацијата. Неговиот HTTP слушач може да биде на друг порт.
Креирајте webSocketTask од вратената сесија. Задачата креирана преку друга URLSession не го наследува препишувањето на оваа сесија. Празна низа proxyConfigurations ги користи системските стандардни вредности; тоа не е експлицитен избор на директна рута.
Достапноста и читливите пораки се одделни пресвртници
Физичкиот телефон бара адреса што стигнува до компјутерот за отстранување грешки. На тој телефон 127.0.0.1 го означува самиот телефон. Проверете го интерфејсот на слушачот и дозволениот пристап на клиенти на проксито кога врската никогаш не стигнува до него.
SOCKS рутата ја носи врската. Читањето wss содржина дополнително бара поставка за TLS инспекција во алатката за отстранување грешки и соодветна доверба на уредот. Закачувањето сертификати или посебна TLS имплементација може да ја спречат таа инспекција дури и кога сообраќајот стигнува до слушачот.
Барајте ја WebSocket размената и пораките откако врската е воспоставена. Гледањето само едно барање за анкетирање од Socket.IO апликација не е доказ дека нејзиниот подоцнежен WebSocket транспорт ја користел истата рута. Задржете ја оваа експлицитна конфигурација за отстранување грешки во предвиденото развојно опкружување на апликацијата.