تاسو ته یو سکرین ته اړتیا ده چې کله تونل فعال وي بل ډول چلند وکړي، او هېڅ داسې کال نشته چې تاسو ته یې ووایي. دا د خپرولو محدودیت دی: په macOS کې هېڅ عامه چوکاټ نه راپور ورکوي چې ایا کوم خپل سری VPN وصل دی، او په iOS کې حالت د هغې اپلیکیشن دی چې کنفیګریشن یې نصب کړی. لاندې ګوتې چیکونه له دې حد څخه هغه څه ته رسوي چې تاسو یې خپرولی شئ، او هر یو یې کولای شي لټون ژر پای ته ورسوي.

چیک 1: ایا دې پوښتنې ته په بشپړ ډول ځواب ورکول کیدای شي؟

سندباکس پوښتنه له هر API مخکې حل کوي. د دریم اړخ پروسه نه شي کولای د بل عرضه کوونکي توسیع لیست کړي، او نه شي کولای د هغې توسیع کنفیګریشن ولولي، نو د پوښتلو لپاره هېڅ ملاتړ شوی شی نشته.

هر مخنیوی په هماغه دیوال ورټکي. د انټرفیس لیستونه، scutil --nc list او د سیسټم کنفیګریشن مستقیم لوستل یا هغه اجازې غواړي چې سندباکس یې ساتي یا په هغه چلند تکیه کوي چې Apple هېڅکله ژمنه نه ده کړې. که پلان ته له دې څخه یو ته اړتیا وي، ستونزه پلان پخپله ده. په ناڅرګنده تفصیل جوړ شوی ځانګړتیا د تحویلې نیټې سره د ملاتړ ټکټ دی.

چیک 2: ایا ستاسو اپلیکیشن پخپله تونل اداره کوي؟

که یې کوي، ستاسو د خپل کنفیګریشن لپاره ملاتړ شوی ځواب لرئ. غوره توبونه بار کړئ، تېروتنه سمبال کړئ، بیا حالت ولولئ او د پوښتنې کولو پرځای بدلونونو ته ګډون وکړئ:

vpnManager.loadFromPreferences { error in
    // handle a load failure before reading status
}

NotificationCenter.default.addObserver(
    forName: .NEVPNStatusDidChange,
    object: nil,
    queue: nil
) { note in
    let status = (note.object as? NEVPNConnection)?.status
}

د دې په اړه دقیق اوسئ چې دا څه بیرته راګرځوي: د هغه تونل حالت چې تاسو نصب کړی. بل کلاینت چلوي کاروونکی به ناڅاپه ښکاره شي، او دا ستاسو په کوډ کې بګ نه دی. پر ځواب د جوړولو دمخه پرېکړه وکړئ چې ستاسو ځانګړتیا له دې دوو پوښتنو کومه واقعاً پوښتي.

چیک 3: یو هورسټیک واقعاً تاسو ته څه وایي؟

په پراخه توګه کاپي شوې طریقه د سیسټم پروکسي قاموس ته د هغه د سکوپ شوو ننوتلو په اړه پوښتنه کوي او کیلي لولي، چې په تصادفي ډول د انټرفیس نومونه دي:

let settings = CFNetworkCopySystemProxySettings()?.takeRetainedValue() as NSDictionary?
let scoped = settings?["__SCOPED__"] as? [String: Any]
let names = scoped?.keys ?? []

هغه کیلي چې tap, tun, ppp, ipsec یا utun سره پیل کیږي، د دې معنی لري چې د تونل سکوپ شوی انټرفیس شته. د بشپړ نوم سره سمون سمدلاسه ناکام کیږي، ځکه iOS 12 د utun1 او utun2 سره راغی او ځینې پروفایلونه د ipsec4، ppp0 یا utun0 په توګه ښکاره کیږي. پرځای یې مختګونه پرتله کړئ.

سره له دې، نوم هېڅ مالک نه پیژني. د سیسټم ځانګړتیاوې او د نورو عرضه کوونکو توسیعونه هم utun انټرفیسونه جوړوي، او یو کولای شي پرته له دې چې ستاسو له ټرافیک څخه څه ووړي شتون ولري. دا د دې نښې په توګه ولولئ چې نږدې د تونل بڼې څه شته، له دې زیات نه. دلته غلط مثبت ارزانه دی که یوازې یوه ځانګړتیا ګېټ کوئ، او ګران دی که د ننوتلو سکرین ګېټ کوئ.

چیک 4: ایا پرځای یې منزل ازمویلای شئ؟

که اپلیکیشن یوازې دا پوهیدل غواړي چې داخلي خدمت ته رسیدل کیدای شي که نه، هغه خدمت وازموئ. د وخت محدودیت سره یو لنډ پروب د هغې پوښتنې ځواب ورکوي چې ځانګړتیا واقعاً پرې تکیه کوي، او کله چې کاروونکی کلاینت بدل کړي یا تونل بڼه بدله کړي هم کار کوي.

رسیدنه ستاسو د لارې په اړه یوه کتنه ده. د انټرفیس نوم ستاسو لارې ته نږدې یو څه په اړه یو اټکل دی، نو ځکه هورسټیک په بګ راپورونو کې بحثونه جوړوي او پروب شواهد. که کاروونکی ټینګار وکړي چې VPN فعال دی خو پروب ناکام شي، اوس تاسو د ډیبګ کولو لپاره یوه مشخصه لاره لرئ: د نومونو حل، لاره یا د خدمت اجازه.

چیک 5: ایا پلیټفارم هغه څه پلي کولای شي چې تاسو ورته اړتیا لرئ؟

کله چې اړتیا دا تضمین وي چې له تونل څخه هېڅ نه تښتي، پروفایل د هغې ځای دی، نه کشف کوونکی. includeAllNetworks فعالول په iOS 14 یا وروسته کې د بشپړ تونل کنفیګریشن کې ستاسو اپلیکیشن ته د اټکل کولو غوښتنې پرځای د پلیټفارم چلند بدلوي. دا بیرغ د NEVPNProtocol حواله کې مستند شوی.

دا بل ډول ځواب دی: د کتنې پرځای پلي کول. دا هم یوازې هغو پروفایلونو ته پلي کیږي چې تاسو یې کنټرول کوئ، نو بل چا تونل ته ګوتې وهونکي مصرف کوونکي اپلیکیشن ته مرسته نه کوي.

چیک 6: ناکامي خوندي او د کتنې وړ کړئ

یوازې هغه وړتیا بنده کړئ چې تونل ته اړتیا لري او د اپلیکیشن پاتې برخه د کارولو وړ پریږدئ. هغه کشف کوونکی چې هرکله ډاډه نه وي ټول انټرفیس پټوي، د هر هغه چا لپاره چې تونل یې هغه نوم کاروي چې تاسو هېڅکله تمه نه درلوده، د بندښت لامل کیږي. پرځای یې محافظه کار چلند ته راستانه شئ: سیمه ایز ځانګړتیاوې کار کوي او یوازې هغه لرې کال غیر فعالیږي چې واقعاً تونل ته اړتیا لري. دا انتخاب د محصول پرېکړه ده، او د هورسټیک ترڅنګ د لیکلو وړ ده.

هغه څه ثبت کړئ چې ولیدل: انټرفیس نومونه، د پلیټفارم نسخه او د یو پروب پایله. دا بل راپور له بحث څخه چیک ته بدلوي. بیا چېرته چې ملاتړ شوې اعلامیه لرئ هغه ته لومړیتوب ورکړئ، ځکه اداره شوی کنفیګریشن کولای شي نیت په څرګنده توګه ووړي او د نومونو د کتلو ډېره لامل لرې کړي.

که 1 څخه تر 5 پورې چیکونو تاسو له ملاتړ شوي ځواب پرته پرېښودل، پروب خپور کړئ او پایله په صادقانه توګه لیبل کړئ. مستند شوی غوره هڅه سیګنال په راتلونکي خپرونه کې ماتیدونکي خصوصي API څخه غوره محصولي پرېکړه ده.

اړوندې مقالې