Android, iOS மற்றும் Windows இல் ping இல்லாமல் VPN நிலையைச் சரிபார்ப்பது எப்படி
ping ஒரு ஹோஸ்ட் பதிலளித்தது என்பதை மட்டுமே நிரூபிக்கிறது, சுரங்கப்பாதை இயங்குகிறது என்பதை அல்ல. Android, iOS மற்றும் Windows இன் நிலை APIகளைக் கேளுங்கள், பின்னர் உங்கள் பயன்பாட்டிற்கு உண்மையில் தேவையான பாதையைச் சரிபார்க்கவும்.
192.0.2.10 க்கு ping செய்வது ஒரு முகவரி ICMP எதிரொலிக்குப் பதிலளித்தது என்பதை மட்டுமே சொல்கிறது, அதற்கு மேல் எதுவுமில்லை. சுரங்கப்பாதை இல்லாத நெட்வொர்க்கில் அது இன்னும் வெற்றி பெறலாம், ஏனெனில் முகவரி உள்ளூர் துணைப் பிணையத்தில் இருக்கலாம்; ஆரோக்கியமான சுரங்கப்பாதையுடன் அது தோல்வியடையலாம், ஏனெனில் சேவையகம் HTTPS வழங்கும்போது ICMP ஐ விடுகிறது. உங்கள் ஸ்கிரிப்டுக்குத் தேவையான சரிபார்ப்பு, தளத்தின் நிலை வினவல் மற்றும் பயன்பாடு பயன்படுத்தும் இலக்குக்கான பாதைச் சோதனை ஆகும். இவற்றை இரண்டு தனித்தனி புலங்களாகக் கருதுங்கள், ஒருபோதும் ஒரே பூலியனாக அல்ல.
எதிரொலிப் பதில் உண்மையில் எதை நிரூபிக்கிறது
ICMP என்பது இடைமுகங்கள் அல்லது சுரங்கப்பாதைகள் பற்றிய கருத்து இல்லாத அணுகல் நெறிமுறை. பதில் வரும்போது, கர்னல் ஒரு ஹோஸ்ட் பதிலளித்ததாகத் தெரிவிக்கிறது; கோரிக்கையை எடுத்துச் சென்ற பாதையையோ பதிலைக் கொண்டு வந்த பாதையையோ அது தெரிவிக்கவில்லை. வடிகட்டுதல் சமிக்ஞையை மேலும் சத்தமாக்குகிறது, ஏனெனில் எதிரொலிக் கோரிக்கைகளைத் தடுக்கும் ஃபயர்வால் அதன் பின்னால் உள்ள துறைகள் பற்றி எதுவும் சொல்வதில்லை. மேலும் பிரிக்கப்பட்ட சுரங்கப்பாதை விவரக்குறிப்பு, மற்ற அனைத்து இலக்குகளும் இயங்கும்போது சோதிக்கப்பட்ட முகவரியை வேண்டுமென்றே விலக்கலாம்.
நீங்கள் உண்மையில் அறிய விரும்புவது, பயன்பாடு செல்லும் பாதையில் ஒரு குறிப்பிட்ட சேவை பயன்படுத்தக்கூடியதா என்பதுதான். பயன்பாடு அழைக்கும் ஹோஸ்ட் மற்றும் துறையைத் தேர்ந்தெடுத்து, பின்னர் பயன்பாட்டு அடுக்கில் பதிலைக் கோருங்கள்.
அணுகல் மற்றும் சுரங்கப்பாதை நிலை வெவ்வேறு உண்மைகள், ஒன்று உண்மையாக இருக்கும்போது மற்றொன்று பொய்யாக இருக்கலாம். அவற்றைத் தனியாக வைத்திருந்தால் தோல்வி யாருடையது என்று தெரியும். அவற்றை ஒரே சரிபார்ப்பில் இணைத்தால் யாரும் வழிமாற்ற முடியாத டிக்கெட் உருவாகும்.
Android இடம் ping அல்ல, போக்குவரத்தைக் கேளுங்கள்
Android நிலைக் கேள்விக்கு ConnectivityManager மூலம் நேரடியாகப் பதிலளிக்கிறது. செயலில் உள்ள பிணையத்தின் திறன்கள் VPN போக்குவரத்துக் கொடியைக் கொண்டுள்ளன, அது போக்குவரத்து VPN இடைமுகம் வழியாக வழிமாற்றப்படும்போது அமைக்கப்படுகிறது. அழைப்பு உள்ளூர், மலிவானது மற்றும் எந்த தொலை ஹோஸ்ட் பதிலளிக்கிறதா என்பதிலிருந்து சுயாதீனமானது.
இந்த Java பதிப்பு செயலில் பிணையம் இல்லாதபோது விதிவிலக்கை எறிவதற்குப் பதிலாக false ஐத் திருப்பித் தருகிறது. அது செயலில் உள்ள பிணையத்தைப் படிப்பதால், பயனர் அமைப்புகளில் தேர்ந்தெடுத்த விவரக்குறிப்பைப் பிரதிபலிக்கிறது.
ConnectivityManager cm = (ConnectivityManager) getSystemService(CONNECTIVITY_SERVICE);
NetworkCapabilities caps = cm.getNetworkCapabilities(cm.getActiveNetwork());
boolean tunnel = caps != null && caps.hasTransport(NetworkCapabilities.TRANSPORT_VPN);
மாற்ற அறிவிப்புகளுக்கு, டைமரில் வினவுவதற்குப் பதிலாக NetworkCallback ஐப் பதிவு செய்யுங்கள். அதை VpnService.prepare உடன் குழப்ப வேண்டாம், அது பயனர் VPN க்கு அனுமதி அளித்தாரா என்பதை மட்டுமே தெரிவிக்கிறது, பாக்கெட்டுகள் பாய்கின்றனவா என்பதை அல்ல. ரத்து VpnService.onRevoke வழியாக வருகிறது, ஆனால் அமைப்புகளில் விவரக்குறிப்பை மறப்பது எந்த ஒளிபரப்பையும் உருவாக்காது.
iOS: இடைமுகப் பெயர்கள் ஒரு ஊகம், ஒப்பந்தம் அல்ல
பல iOS துணுக்குகள் ப்ராக்ஸி அமைப்புகளை ஆய்வு செய்து, __SCOPED__ அகராதியைக் கண்டுபிடித்து, tap, tun, utun2, ppp அல்லது ipsec போன்ற இடைமுக விசைகளைத் தேடுகின்றன. அந்த அணுகுமுறை ஒரு பெயரிடும் மரபு, ஆவணப்படுத்தப்பட்ட உத்தரவாதம் அல்ல, எனவே ஒரு இடைமுகத்தை மறுபெயரிடும் OS புதுப்பிப்பு அதை உடைக்கலாம். சுரங்கப்பாதையை விட நீண்ட காலம் வாழும் பழைய உள்ளீடுகளுக்கு true தெரிவிக்கும் போக்கும் அதற்கு உண்டு.
உங்கள் பயன்பாடு கட்டமைப்பை வைத்திருக்கும்போது, அதற்குப் பதிலாக NEVPNManager உண்மையான நிலையைத் தருகிறது. உங்கள் பயன்பாடு தொடங்கிய சுரங்கப்பாதையை அது விவரிக்கிறது; ஒரு பயன்பாட்டுக்கான VPN உடன், மற்ற பயன்பாடுகள் அந்தச் சுரங்கப்பாதைக்கு முழுவதுமாக வெளியே இருக்கலாம்.
நிலையைப் படிப்பதற்கு முன் விருப்பங்களை மீண்டும் ஏற்றுங்கள், ஏனெனில் சுரங்கப்பாதை ஏறி இறங்கும்போது மதிப்பு மாறுகிறது:
let manager = NEVPNManager.shared()
manager.loadFromPreferences { error in
let up = manager.connection.status == .connected
print(up)
}
தளத்தின் நிலைக் கொடி இன்னும் போக்குவரத்து சகாவை அடைகிறது என்பதை நிரூபிக்கவில்லை. அந்த இடைவெளியைத்தான் பாதைச் சோதனை நிரப்புகிறது, அதனால்தான் ஆதரவுக்கு ஒரு பூலியன் போதாது.
Windows விவரக்குறிப்புகள் உண்மையான நிலைப் புலத்தை வெளிப்படுத்துகின்றன
Windows VPN விவரக்குறிப்புகளை அடாப்டர்களிலிருந்து தனியாகக் கண்காணிக்கிறது, Get-VpnConnection தெரிந்த ஒவ்வொரு விவரக்குறிப்புக்கும் ConnectionStatus ஐ வெளிப்படுத்துகிறது. Windows கிளையண்ட் அல்லது வழங்கல் தொகுப்பு மூலம் உருவாக்கப்பட்ட விவரக்குறிப்புகள் இங்கே தோன்றும். இந்த cmdlet பொதுவான சுரங்கப்பாதை கண்டுபிடிப்பான் அல்ல.
பெயரிடப்பட்ட விவரக்குறிப்புக்கான புலத்தைப் படியுங்கள், விவரக்குறிப்பு அனைத்து பயனர்களுக்கும் சொந்தமானதாக இருந்தால் -AllUserConnection ஐச் சேர்க்கவும்:
Get-VpnConnection -Name "Fabrikam" | Select-Object Name, ConnectionStatus, ServerAddress
மூன்றாம் தரப்பு கிளையண்ட்கள் அவற்றின் சுரங்கப்பாதை இயங்கும்போதும் இந்த cmdlet க்கு கண்ணுக்குத் தெரியாதவையாகவே இருக்கும், எனவே காலி முடிவு என்பது தெரியாதது, துண்டிக்கப்பட்டது அல்ல. அடாப்டர் பட்டியல்களும் அதே அளவு தவறாக வழிநடத்துகின்றன: விற்பனையாளர் அடாப்டர் செயலற்றதாக இருக்கும்போதும் நீடிக்கலாம், சில அடாப்டர்கள் அமர்வின் போது மட்டுமே இருக்கும். Windows வைத்திருக்கும் விவரக்குறிப்புக்கு, rasdial கிளைப்படுத்தக்கூடிய வெளியேறும் குறியீட்டைத் தெரிவிக்கிறது. இவை அனைத்தும் உள்ளூர் நம்பிக்கையை விவரிக்கின்றன, சகாவின் அணுகலை அல்ல.
நிலை மற்றும் பாதை: இரண்டு பகுதி சரிபார்ப்பு
இணைக்கப்பட்ட விவரக்குறிப்பு பாக்கெட்டுகள் எங்கே செல்கின்றன என்பதைப் பற்றி எதுவும் சொல்வதில்லை. பிரிக்கப்பட்ட சுரங்கப்பாதை சுரங்கப்பாதையை இயக்கத்தில் வைத்துக்கொண்டே உங்களுக்கு முக்கியமான இலக்கை விலக்கலாம். always-on விவரக்குறிப்புகள் இறந்த சேவையகத்துடனும் இணைந்திருக்கும், சுரங்கப்பாதை விழும்போது kill switch வேண்டுமென்றே போக்குவரத்தைத் தடுக்கிறது.
இரண்டு அடுக்குகளையும் சோதியுங்கள்: VPN போக்குவரத்து அல்லது விவரக்குறிப்பு செயலில் உள்ளதை உறுதிசெய்து, பின்னர் இலக்கு அந்தப் பாதையில் தீர்க்கப்பட்டு பதிலளிக்கிறது என்பதை உறுதிசெய்யுங்கள். Linux இல், கர்னல் எந்த இடைமுகத்தைப் பயன்படுத்தும் என்று கேளுங்கள்:
ip route get 192.0.2.10
resolvectl query intranet.example.test
கிளையண்ட் உங்கள் கட்டுப்பாட்டுக்கு வெளியே இருக்கும்போது, இரண்டு முடிவுகளையும் பதிவு செய்து முறைமை அடுக்கைச் சுட்டிக்காட்டட்டும். இணைக்கப்பட்டு தோல்வியடைந்த பாதைச் சோதனை பிரிக்கப்பட்ட சுரங்கப்பாதை, DNS அல்லது கொள்கையைக் குறிக்கிறது. துண்டிக்கப்பட்டு இயங்கும் பாதைச் சோதனை என்பது வேறு பாதை போக்குவரத்தை எடுத்துச் செல்கிறது என்பதாகும்.
வரிசையாக இயக்கக்கூடிய சோதனை
எந்த நெட்வொர்க் நிலையையும் மாற்றுவதற்கு முன் முதலில் தளத்தின் நிலையைப் பதிவு செய்யுங்கள். ஹோஸ்ட்பெயரைத் தீர்த்து முகவரி குடும்பத்தைக் குறிப்பிடுங்கள், ஏனெனில் AAAA பதிவு A பதிவை விட வேறு பாதையை எடுக்கலாம். சேவைத் துறையைத் திறந்து வெறும் கைக்குலுக்கலுக்குப் பதிலாக பயன்பாட்டுப் பதிலைக் கோருங்கள். ஒவ்வொரு அவதானிப்பையும் அதன் சொந்த பதிவுப் புலத்தில் வைத்திருங்கள்.
dig மற்றும் curl உள்ள Linux இயந்திரத்தில், மூன்று கட்டளைகள் தீர்த்தல், பாதை மற்றும் சேவையையே உள்ளடக்குகின்றன. சுரங்கப்பாதை மேலே இருக்கும்போதும், மீண்டும் கீழே இருக்கும்போதும் அவற்றை இயக்குங்கள்:
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
நான்கு தனித்தனி புலங்கள் ஒரு பூலியனை வெல்லும், ஏனெனில் நிலை, DNS, பாதை மற்றும் கொள்கை சுயாதீனமாகத் தோல்வியடைந்து வெவ்வேறு குழுக்களை அடைகின்றன. முனையத்தில் ping நல்ல கைமுறை சரிபார்ப்பாகவே இருக்கிறது. தானியக்கத்திற்கு அது மோசமான இணைப்பு வரையறை, அங்கு தளத்தின் API மற்றும் பாதைச் சோதனை உண்மையான கேள்விக்குப் பதிலளிக்கின்றன.