Indlela yokuhlola isimo se-VPN ngaphandle kwe-ping ku-Android, iOS naku-Windows
I-ping ifakazela kuphela ukuthi inombolo eyodwa yaphendula, hhayi ukuthi umhubhe uyasebenza. Buza ama-API esimo e-Android, iOS naku-Windows, bese uqinisekisa umzila okudinga ngempela uhlelo lwakho.
Ukupinga ku-192.0.2.10 kukutshela kuphela ukuthi ikheli elilodwa liphendule i-ICMP echo, futhi akukho okunye. Kunethiwekhi engenawo umhubhe kungase kuphumelele noma kunjalo, ngoba ikheli lingase libe kusubnet yasendaweni; ngomhubhe onempilo kungase kwehluleke, ngoba iseva ilahla i-ICMP ngenkathi ihlinzeka nge-HTTPS. Ukuhlola okudingwa iskripthi sakho ukubuza isimo seplathifomu kanye nokuhlolwa komzila oya endaweni esetshenziswa uhlelo. Zithathe njengezinkambu ezimbili ezihlukene, hhayi nanini njenge-boolean eyodwa.
Impendulo ye-echo ifakazela ini ngempela
I-ICMP iphrothokholi yokufinyeleleka engenalo ulwazi ngezikhombisi noma imihubhe. Lapho impendulo ifika, i-kernel ibika ukuthi ihhashi liphendule; ayibiki ukuthi imuphi umzila owathwala isicelo noma imuphi owathwala impendulo. Ukuhlunga kwenza isignali ibe nomsindo ngisho nangaphezulu, ngoba i-firewall evimbela izicelo ze-echo ayisho lutho ngamachweba angemuva kwayo. Futhi iphrofayela yomhubhe ohlukanisiwe ingase isuse ikheli elihloliwe ngamabomu ngenkathi zonke ezinye izindawo zikhona.
Ongempela ofuna ukukwazi ukuthi ingabe isevisi ethile iyasebenziseka kumzila uhlelo oluhamba kuwo. Khetha ihhashi nechweba elibizwa uhlelo, bese ufuna impendulo ezingeni lohlelo.
Ukufinyeleleka nesimo somhubhe kungamaqiniso ahlukene, futhi okukodwa kungaba iqiniso ngenkathi okunye kungelona. Ukuzahlukanisa kukutshela ukuthi ukwehluleka kungokabani. Ukuzihlanganisa ekuhloleni okukodwa kukhiqiza ithikithi okungekho muntu ongayihambisa.
Buza i-Android ngokuthutha, hhayi nge-ping
I-Android iphendula umbuzo wesimo ngqo nge-ConnectivityManager. Amakhono wenethiwekhi esebenzayo athwala ifulegi lokuthutha le-VPN, elisethwa lapho ithrafikhi iqondiswa ngesikhombisi se-VPN. Ukubiza kungokwasendaweni, kushibhile, futhi akuncikile ekutheni ikhona yini ihhashi elikude eliphendulayo.
Le nguqulo ye-Java ibuyisela i-false esikhundleni sokujikijela i-exception lapho kungekho nethiwekhi esebenzayo. Njengoba ifunda inethiwekhi esebenzayo, ibonisa iphrofayela umsebenzisi ayikhethile kuzilungiselelo.
ConnectivityManager cm = (ConnectivityManager) getSystemService(CONNECTIVITY_SERVICE);
NetworkCapabilities caps = cm.getNetworkCapabilities(cm.getActiveNetwork());
boolean tunnel = caps != null && caps.hasTransport(NetworkCapabilities.TRANSPORT_VPN);
Ngezaziso zoshintsho, bhalisa i-NetworkCallback esikhundleni sokubuza ngesikhathi. Ungakudidanisi nalokhu ne-VpnService.prepare, okubika kuphela ukuthi umsebenzisi unikeze imvume ye-VPN, hhayi ukuthi amaphakethe ayahamba. Ukuhoxiswa kufika nge-VpnService.onRevoke, kodwa ukukhohlwa iphrofayela kuzilungiselelo akukhiqizi umsakazo nhlobo.
iOS: amagama ezikhombisi awukucabanga, akuwona isivumelwano
Izicucu eziningi ze-iOS zihlola izilungiselelo ze-proxy, zithola isichazamazwi se-__SCOPED__ futhi zifuna okhiye bezikhombisi njenge-tap, tun, utun2, ppp noma ipsec. Leyo ndlela iwumkhuba wokuqamba amagama, hhayi isiqinisekiso esibhaliwe, ngakho ukubuyekezwa kwe-OS okushintsha igama lesikhombisi kungayephula. Iphinde ijwayele ukubika i-true kumarekhodi amadala asinda ngaphezu komhubhe.
Lapho uhlelo lwakho luphethe ukulungiselelwa, i-NEVPNManager inikeza isimo sangempela esikhundleni salokho. Ichaza umhubhe oqalwe uhlelo lwakho; nge-VPN yohlelo ngalunye, ezinye izinhlelo zingase zibe ngaphandle kwawo wonke lowo mhubhe.
Layisha kabusha izintandokazi ngaphambi kokufunda isimo, ngoba inani liyashintsha lapho umhubhe ukhuphuka futhi wehla:
let manager = NEVPNManager.shared()
manager.loadFromPreferences { error in
let up = manager.connection.status == .connected
print(up)
}
Ifulegi lesimo seplathifomu alifakazeli noma kunjalo ukuthi ithrafikhi ifinyelela kuhamba naye. Leyo gelegele iwukuthi ukuhlolwa komzila okumbozayo, futhi yingakho i-boolean eyodwa inganele ukusekela.
Amaphrofayela e-Windows aveza inkambu yesimo yangempela
I-Windows ilandelela amaphrofayela e-VPN ngokwahlukile kuma-adaptha, futhi i-Get-VpnConnection iveza i-ConnectionStatus kuwo wonke iphrofayela eliyaziyo. Amaphrofayela adalwe nge-Windows client noma ngephakethe lokuhlinzeka avela lapha. Le cmdlet akuyona into yokuthola imihubhe jikelele.
Funda inkambu yephrofayela elinegama, futhi wengeze i-AllUserConnection lapho iphrofayela ingeyabo bonke abasebenzisi:
Get-VpnConnection -Name "Fabrikam" | Select-Object Name, ConnectionStatus, ServerAddress
Amaklayenti enye inhlangano avame ukuhlala engabonakali kule cmdlet ngisho nomhubhe wawo usebenza, ngakho umphumela ongenalutho usho okungaziwa, hhayi ukunqanyulwa. Izinhlu zama-adaptha nazo zidukisa ngendlela efanayo: i-adaptha yomthengisi ingase iqhubeke ngenkathi ingasebenzi, futhi amanye ama-adaptha akhona kuphela phakathi nesikhathi somhlangano. Kuyiphrofayela ephethwe yi-Windows, i-rasdial ibika ikhodi yokuphuma ongagatsha kuyo. Konke lokhu kuchaza ukukholelwa kwasendaweni, hhayi ukufinyeleleka kuhamba naye.
Isimo kanye nomzila: ukuhlola okuyizingxenye ezimbili
Iphrofayela exhunyiwe ayisho lutho ngokuthi amaphakethe aya kuphi. Umhubhe ohlukanisiwe ungagcina umhubhe usebenza ngenkathi ususa indawo oyikhathazayo. Amaphrofayela e-always-on ahlala exhunyiwe ngeseva efile, futhi i-kill switch ivimbela ithrafikhi ngamabomu lapho umhubhe uwa.
Hlola zombili izingqimba: qinisekisa ukuthi ukuthutha kwe-VPN noma iphrofayela iyasebenza, bese uqinisekisa ukuthi indawo ixazululwa futhi iyaphendula ngalowo mzila. Ku-Linux, buza i-kernel ukuthi iyiphi isikhombisi eyayizosebenzisa:
ip route get 192.0.2.10
resolvectl query intranet.example.test
Lapho iklayenti lingaphandle kokulawula kwakho, rekhoda yomibili imiphumela futhi uvumele iphethini likhombise ingqimba. Kuxhunyiwe kanye nokuhlolwa komzila okwehlulekile kusikisela umhubhe ohlukanisiwe, i-DNS noma inqubomgomo. Kunqanyuliwe kanye nokuhlolwa komzila okusebenzayo kusho ukuthi omunye umzila uthwala ithrafikhi.
Ukuhlola ongakwenza ngokulandelana
Rekhoda isimo seplathifomu kuqala, ngaphambi kokushintsha noma yisiphi isimo senethiwekhi. Xazulula igama lehhashi futhi uphawule umndeni wamakheli, ngoba irekhodi le-AAAA lingathatha umzila ohlukile kunerekhodi le-A. Vula ichweba lesevisi futhi ufune impendulo yohlelo esikhundleni sokuxhawulana nje. Gcina konke ukubonwa endaweni yalo yokurekhoda.
Kumshini we-Linux one-dig ne-curl, imiyalo emithathu ihlanganisa ukuxazulula, umzila kanye nesevisi uqobo. Yisebenzise lapho umhubhe ukhuphukile futhi futhi lapho wehlile:
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
Izinkambu ezine ezihlukene ziyanqoba i-boolean eyodwa, ngoba isimo, i-DNS, umzila kanye nenqubomgomo kwehluleka ngokuzimela futhi kufike emaqenjini ahlukene. I-ping kutheminali isalokhu iwukuhlola kwesandla okuhle. Incazelo embi yokuxhumana ezenzakalelayo, lapho i-API yeplathifomu nokuhlolwa komzila kuphendula umbuzo wangempela.