iOS 17+ ൽ SOCKS5 വഴി URLSession WebSocket റൂട്ട് ചെയ്യുക
iOS 17 അല്ലെങ്കിൽ അതിനുശേഷമുള്ള പതിപ്പിൽ സെഷൻ-തല SOCKSv5 പ്രോക്സി വഴി URLSessionWebSocketTask കോൺഫിഗർ ചെയ്ത് റൂട്ടിംഗ് WSS ഡീക്രിപ്ഷനിൽ നിന്ന് വേർതിരിക്കുക.
iOS ആപ്പിന്റെ സാധാരണ HTTPS അഭ്യർത്ഥനകൾ ഡീബഗ്ഗിംഗ് പ്രോക്സിയിൽ കാണാമെങ്കിലും അതിന്റെ WebSocket ട്രാഫിക് കാണാതിരിക്കാം. ആദ്യം WebSocket ഗതാഗതം തിരിച്ചറിയുക: URLSessionWebSocketTask സെഷൻ-തല പ്രോക്സി കോൺഫിഗറേഷൻ ഉപയോഗിക്കാം, എന്നാൽ സ്വന്തം സോക്കറ്റുകൾ തുറക്കുന്ന ലൈബ്രറിക്ക് അതിന്റേതായ പിന്തുണയുള്ള ഇന്റഗ്രേഷൻ ആവശ്യമാണ്. iOS 17+ ൽ അസംസ്കൃത Network.framework കണക്ഷനായി 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 ഗതാഗതം അതേ റൂട്ട് ഉപയോഗിച്ചു എന്നതിന് തെളിവല്ല. ഈ വ്യക്തമായ ഡീബഗ്ഗിംഗ് കോൺഫിഗറേഷൻ ആപ്പിന്റെ ഉദ്ദേശിച്ച വികസന പരിസ്ഥിതിക്കുള്ളിൽ നിലനിർത്തുക.