Sida loo baarto xaaladda VPN iyada oo aan ping la isticmaalin Android, iOS iyo Windows
ping wuxuu caddeeyaa oo keliya in hal host uu jawaabay, ma aha in tunnel-ku shaqeynayo. Weydii API-yada xaaladda ee Android, iOS iyo Windows, ka dibna xaqiiji dariiqa ay app-kaagu runtii u baahan yahay.
Ping u dirista 192.0.2.10 waxay kuu sheegaysaa oo keliya in hal cinwaan uu ka jawaabay ICMP echo, iyo wax intaas ka badan. Shabakad aan tunnel lahayn waxay weli guulaysan kartaa, sababtoo ah cinwaanku wuxuu ku noqon karaa subnet-ka maxalliga ah; tunnel caafimaad qaba awgiis waxay dhici kartaa inay guuldarraysto, sababtoo ah server-ku wuu tuuraa ICMP inta uu HTTPS bixinayo. Baaritaanka script-kaagu u baahan yahay waa weydiinta xaaladda platform-ka oo lagu daray imtixaanka dariiqa ee u socda halka app-ku isticmaalo. U tixgeli laba goobood oo kala duwan, weligaa ha u tixgelin hal boolean.
Waxa jawaabta echo run ahaantii caddeyso
ICMP waa borotokool gaarsiin oo aan lahayn fikrad interfaces ama tunnels. Marka jawaab timaado, kernel-ku wuxuu sheegaa in host uu jawaabay; ma sheego dariiqa qaaday codsiga ama kii keenay jawaabta. Shaandhayntu calaamadda waxay ka dhigtaa mid xitaa qaylo badan, sababtoo ah firewall-ka xanniba codsiyada echo waxba kama sheego port-yada ka dambeeya. Iyo profile tunnel kala qaybsan ayaa si ula kac ah uga reebi kara cinwaanka la tijaabiyay inta dhammaan meelaha kale ay shaqeynayaan.
Waxa aad runtii rabto inaad ogaato ayaa ah haddii adeeg gaar ah laga isticmaali karo wadada app-ku maro. Dooro host-ka iyo port-ka ay app-ku wacdo, ka dibna dalab jawaab heerka app-ka.
Gaarsiinta iyo xaaladda tunnel-ku waa xaqiiqooyin kala duwan, midna wuu run noqon karaa inta midka kalena uu been yahay. In la kala saaro waxay kuu sheegaysaa cidda qaladka leh. In lagu daro hal baaritaan waxay soo saartaa ticket aan cidina u geyn karin.
Weydii Android-ka gaadiidka, ee ha weydiin ping
Android-ku si toos ah ayuu uga jawaabaa su'aasha xaaladda iyada oo loo marayo ConnectivityManager. Awoodaha shabakadda firfircoon waxay qaadaan calanka gaadiidka VPN, kaas oo la dejiyo marka taraafikada loo maro interface VPN. Wicitaanku waa maxalli, jaban, oo kaga madax banaan haddii host fog uu jawaabo iyo haddii kale.
Noocan Java wuxuu soo celiyaa false halkii uu tuuri lahaa ka-reebitaan marka aan shabakad firfircoon jirin. Maadaama uu akhriyo shabakadda firfircoon, wuxuu muujinayaa profile-ka isticmaaluhu ku doortay Settings-ka.
ConnectivityManager cm = (ConnectivityManager) getSystemService(CONNECTIVITY_SERVICE);
NetworkCapabilities caps = cm.getNetworkCapabilities(cm.getActiveNetwork());
boolean tunnel = caps != null && caps.hasTransport(NetworkCapabilities.TRANSPORT_VPN);
Ogeysiisyada isbeddelka, diiwaangeli NetworkCallback halkii aad timer ku baarayn lahayd. Ha ku khaldin VpnService.prepare, kaas oo kaliya sheega haddii isticmaaluhu oggolaansho siiyay VPN, ma aha haddii baakaduhu socdaan. Dib-u-noqodku wuxuu yimaadaa VpnService.onRevoke, laakiin profile-ka Settings-ka lagu ilaabo ma soo saaro wax baahin ah.
iOS: magacyada interface-ka waa qiyaas, ma aha heshiis
Qaybo badan oo iOS ah waxay baaraan dejinta proxy-ga, waxay helaan qaamuuska __SCOPED__ oo waxay raadiyaan furayaasha interface-ka sida tap, tun, utun2, ppp ama ipsec. Habkani waa caado magac-bixin, ma aha dammaanad la diiwaan geliyay, sidaas darteed casriyeyn OS oo interface magac beddelo ayaa jebin karta. Waxay sidoo kale u janjeertaa inay true sheegto galmooyin duugoobay oo ka sii cuslaada tunnel-ka.
Marka app-kaagu leeyahay qaabeynta, NEVPNManager wuxuu siinayaa xaalad dhab ah. Wuxuu qeexayaa tunnel-ka uu bilaabay app-kaagu; VPN app kasta awgiis, app-yada kale waxay gabi ahaanba ka baxsan karaan tunnel-kaas.
Dib u ror dookhyada ka hor inta aadan akhrin xaaladda, sababtoo ah qiimuhu wuu isbeddelaa marka tunnel-ku kaco oo dhaco:
let manager = NEVPNManager.shared()
manager.loadFromPreferences { error in
let up = manager.connection.status == .connected
print(up)
}
Calaanka xaaladda platform-ku weli ma caddeeyo in taraafikadu gaadho peer-ka. Farqigaas waxaa daboola imtixaanka dariiqa, taasina waa sababta hal boolean aan ku filnayn taageerada.
Profile-yada Windows waxay muujiyaan goob xaalad dhab ah
Windows wuxuu profile-yada VPN la socdaa si ka duwan adapters-ka, Get-VpnConnection-na wuxuu muujiyaa ConnectionStatus profile kasta oo uu yaqaan. Halkan waxay ka soo muuqdaan profile-yada lagu sameeyay Windows client ama xirmo diyaarin. Cmdlet-kani ma aha baare tunnel guud.
Akhri goobta profile magac leh, oo ku dar -AllUserConnection marka profile-ku iska leh dhammaan isticmaalayaasha:
Get-VpnConnection -Name "Fabrikam" | Select-Object Name, ConnectionStatus, ServerAddress
Macaamiisha dhinac saddexaad inta badan waxay ahaan karaan kuwo aan la arkin cmdlet-kan xitaa marka tunnel-koodu shaqeynayo, sidaas darteed natiijo madhan waxay ka dhigan tahay aan la garanayn, ma aha go'ay. Liisaska adapter-kuna si la mid ah way marin-habowdaan: adapter-ka iibiyaha wuxuu sii jiri karaa isagoo aan shaqeyn, qaar adapter-kana waxay jiraan oo kaliya inta kalfadhi socdo. Profile Windows leeyahay, rasdial wuxuu sheegaa koodka bixista oo aad ka laanto karto. Waxaas oo dhan waxay qeexayaan rumaysad maxalli ah, ma aha gaarsiinta peer-ka.
Xaalad iyo dariiq: baaritaanka laba qaybood
Profile ku xiran waxba kama sheego halka baakaduhu tagaan. Tunnel kala qaybsan wuxuu hayn karaa tunnel-ka oo shaqeynaya isagoo ka reebaya halka aad danaynayso. Profile-yada always-on waxay ku xirnaan karaan server dhintay, kill switch-na si ula kac ah ayuu u xannibaa taraafikada marka tunnel-ku dhaco.
Tijaabi labada lakab: xaqiiji in gaadiidka VPN ama profile uu firfircoon yahay, ka dibna xaqiiji in halka la baarayay la xalliyo oo jawaab ka bixiso dariiqaas. Linux, weydii kernel-ka interface-ka uu isticmaali lahaa:
ip route get 192.0.2.10
resolvectl query intranet.example.test
Marka macmiilku ka baxsan yahay kontoroolkaaga, diiwaangeli labada natiijo oo u ogolow qaabka inuu tilmaamo lakabka. Ku xiran iyo imtixaan dariiq fashilmay waxay soo jeedinaysaa tunnel kala qaybsan, DNS ama siyaasad. Go'ay iyo imtixaan dariiq shaqeynaya waxay ka dhigan tahay in dariiq kale uu taraafikada qaado.
Imtixaan aad u ordi karto si isku xigta
Marka hore diiwaangeli xaaladda platform-ka, ka hor inta aadan beddelin wax xaalad shabakadeed. Xalli magaca host-ka oo xusuusnow qoyska cinwaanka, sababtoo ah diiwaanka AAAA wuxuu qaadan karaa dariiq ka duwan diiwaanka A. Fur port-ka adeegga oo dalab jawaab app-ka halkii aad ku ekaan lahayd gacan-qabsasho. Hayso indho-indhayn kasta goobteeda diiwaanka.
Mishiin Linux leh dig iyo curl, saddex amar ayaa daboolaya xallinta, dariiqa iyo adeegga laftiisa. Ku ordi iyada oo tunnel-ku kacsan yahay iyo mar kale isagoo dhacay:
dig +short intranet.example.test
ip route get 198.51.100.20
curl -sS -o /dev/null -w "%{http_code}" --max-time 8 https://intranet.example.test/health
Afar goobood oo kala duwan ayaa ka adag hal boolean, sababtoo ah xaalad, DNS, dariiq iyo siyaasad si madax banaan ayay u fashilmaan oo waxay gaadhaan kooxo kala duwan. Ping terminal-ka wali waa baaritaan gacan fiican. Waa qeexitaan liita oo isku-xirka ah otomaatigga, halkaas oo API platform-ka iyo imtixaanka dariiqa ay ka jawaabaan su'aasha dhabta ah.