விலக்கப்பட்ட பயன்பாடு இன்னும் இணையத்தில்? பயன்பாடு மற்றும் வழி விதிகள் வேறுபடுகின்றன
Android பயன்பாட்டை VPN-இலிருந்து விலக்குவது அதைத் தடுக்காது. அனுமதிப் பட்டியல்கள், UID விதிகள் மற்றும் அனுப்பப்பட்ட வழிகள் பாதையின் வெவ்வேறு பகுதிகளைத் தீர்மானிக்கின்றன.
தொகுப்பை விலக்குவது தடுப்பு அல்ல, வழிமாற்றல் அறிவுறுத்தல், எனவே VPN இணைந்த பிறகு ஏற்றப்படும் பக்கங்கள் எதிர்பார்க்கப்பட்டவை, தோல்விக்கான சான்று அல்ல. விலக்குவது பயன்பாட்டைத் தடுப்பதற்குப் பதிலாக சுரங்கப்பாதையிலிருந்து வெளியேற்றுகிறது, சாதாரண வலையமைப்பு அதன் போக்குவரத்தை எடுத்துச் செல்கிறது. இங்கே இரண்டு தனித்துவமான கொள்கைகள் சந்திக்கின்றன: ஒன்று செயல்முறைகளைத் தேர்ந்தெடுக்கிறது, மற்றொன்று இலக்குகளை. அவற்றை அந்த வரிசையில் படிப்பது இணைக்கப்பட்ட சின்னமும் செயல்படும் பயன்பாடும் முரண்பாடு ஏன் அல்ல என்பதை விளக்குகிறது.
விலக்கல் வலையமைப்பை ஏன் திறந்தே வைக்கிறது
VpnService.Builder அனுமதிப் பட்டியலையோ தடைப்பட்டியலையோ ஏற்கிறது, இரண்டையும் ஒருபோதும் ஏற்காது. அனுமதிப் பட்டியலில் உள்ள தொகுப்புகள் மட்டுமே சுரங்கப்பாதை வழியாகச் செல்லும். தடைப்பட்டியல் அதை மாற்றுகிறது: பட்டியலிடப்பட்டவற்றைத் தவிர ஒவ்வொரு தொகுப்பும் சுரங்கப்பாதையைப் பயன்படுத்துகிறது, பட்டியலிடப்பட்டவை இயற்பியல் பாதையை வைத்திருக்கின்றன. அனுமதிப் பட்டியலில் இல்லாத தொகுப்பும் சுரங்கப்பாதைக்கு வெளியே உள்ளது, எனவே அந்த முறையில் பெரும்பாலான பயன்பாடுகளுக்கு விலக்கல் சாதாரண நிலை.
இது உள்ளூர் தடைப் பதிவை ஃபயர்வால் விதி அல்ல, வழிமாற்றல் முடிவாக மாற்றுகிறது. ஒரு பயன்பாடு ஒரு ஹோஸ்டை அடைவதைத் தடுப்பதே தேவை என்றால், சுரங்கப்பாதை அதை மூட வேண்டும், சேவையகம் அல்லது உள்ளூர் கொள்கை போக்குவரத்தை மறுக்க வேண்டும். பயன்பாட்டை சுரங்கப்பாதையிலிருந்து வெளியேற்றுவது அதன் பொதிகளை எந்த இடைமுகம் எடுத்துச் செல்கிறது என்பதை மட்டுமே மாற்றுகிறது.
Play Store நிகழ்வு வழக்கமான வேண்டுமென்றே எடுக்கப்பட்ட எடுத்துக்காட்டு. கடைத் தொகுப்பை விலக்குவது, VPN வெளியேற்றம் பரிமாற்றங்களுக்கு இடையூறு செய்யும்போது பதிவிறக்கங்கள் அடிப்படை இணைப்பைப் பயன்படுத்த அனுமதிக்கிறது, மேலும் விலக்கல் என்பது தடுப்பு அல்ல, சுற்றிவளைப்பு என்பதைக் காட்டுகிறது.
ஒரு சுயவிவரம், ஒரு பட்டியல்
இரண்டு அழைப்புகளும் பயன்படுத்தப்பட்டால் உருவாக்கி விதிவிலக்கை எறியும், எனவே உங்கள் முன் உள்ள சுயவிவரம் அனுமதிப் பட்டியல் அல்லது தடைப்பட்டியல். அந்த ஒரு உண்மையே அடுத்தடுத்த ஒவ்வொரு அவதானிப்பையும் எப்படிப் படிக்க வேண்டும் என்பதைத் தீர்மானிக்கிறது. வழிமாற்றல் அட்டவணைக்கு முன் குறியீட்டையோ நிர்வகிக்கப்பட்ட உள்ளமைவையோ சரிபார்க்கவும், ஏனெனில் பட்டியலே மீதமுள்ள வெளியீட்டின் பொருளைத் தீர்மானிக்கிறது. கலப்பின சுயவிவரம் நீங்கள் பார்க்கக்கூடிய நிலை அல்ல.
இந்த வேறுபாடு புதிதாக நிறுவப்பட்ட பயன்பாடு என்ன செய்யும் என்பதையும் முன்னறிவிக்கிறது. அனுமதிப் பட்டியலில் யாராவது சேர்க்கும் வரை அது வெளியே இருக்கும், தடைப்பட்டியலில் இயல்பாக சுரங்கப்பாதையில் சேர்கிறது.
நிர்வகிக்கப்பட்ட உள்ளமைவுகள் அதே தேர்வை வேறு விசைப் பெயர்களில் காட்டுகின்றன, சில பணியகங்கள் அதைப் பட்டியலாக அல்ல, ஒவ்வொரு பயன்பாட்டுக்குமான VPN பயன்முறையாக விவரிக்கின்றன. நடத்தை எப்படியும் அந்த இரண்டு அழைப்புகளுக்கே குறைகிறது, எனவே லேபிளை நம்புவதற்குப் பதிலாக அமைப்பைத் தொகுப்புப் பட்டியல் வரை பின்தொடரவும். லேபிளும் பட்டியலும் பொருந்தவில்லை என்றால் பட்டியல் வெல்லும்.
UID விதியைப் பின்பற்றி சுரங்கப்பாதை அட்டவணை வரை செல்லுங்கள்
Android ஒவ்வொரு பயன்பாட்டுக்கும் அதன் சொந்த Linux பயனர் ID-ஐ வழங்குகிறது, VPN சேவை UID வரம்புகளுடன் பொருந்தும் கொள்கை விதிகளை நிறுவுகிறது. பொருந்தும் போக்குவரத்து இயல்புநிலை வழி tun சாதனத்தை நோக்கும் வழிமாற்றல் அட்டவணைக்கு அனுப்பப்படுகிறது. அட்டவணை எண் ஒவ்வொரு VPN நிகழ்வுக்கும் ஒதுக்கப்படுகிறது, எனவே மீண்டும் இணைந்த பிறகு அல்லது இரண்டாவது VPN சுயவிவரம் உருவாக்கிய பிறகு அது மாறுகிறது.
விதிகளின் வெளியீடே வரைபடம். ஒவ்வொரு வரியும் ஒரு தேடல் அட்டவணையைப் பெயரிடுகிறது, அந்த அட்டவணை பொருந்தும் பொதிகள் சுரங்கப்பாதையில் நுழைகின்றனவா என்பதைத் தீர்மானிக்கும் இயல்புநிலை வழியை வைத்திருக்கிறது.
adb shell ip rule show
adb shell ip route show table all
adb shell cmd package list packages -U | grep <package>
UID பெற முதலில் மூன்றாவது கட்டளையை இயக்கவும், பின்னர் அதன் வரம்பில் அது அடங்கிய விதியைக் கண்டறியவும். அந்த விதி ஒரு அட்டவணை எண்ணை நோக்குகிறது, மேலும் ip route show table <n> அந்த எண்ணுடன் tun சாதனம் வழியாக இயல்புநிலை வழி உள்ளதா எனக் காட்டுகிறது. அட்டவணையில் இயல்புநிலை இல்லை என்றால், பயன்பாடு தேர்ந்தெடுக்கப்பட்டது ஆனால் பாதை இல்லை, அது வேறு தோல்வி.
இந்தக் கட்டளைகளுக்கு பிழைத்திருத்தக்கூடிய கட்டமைப்பு அல்லது adb shell வலையமைப்பு நிலையைப் படிக்கக்கூடிய சாதனம் தேவை. உற்பத்தி மொபைலில் தொகுப்பு மேலாளர் இன்னும் பதிலளிக்கிறார், ஆனால் வழிமாற்றல் ஆய்வு மறுக்கப்படலாம், எனவே முடிந்ததைப் பதிவு செய்து மீதியை சரிபார்க்கப்படாததாகக் கருதுங்கள்.
வழி பயன்பாட்டை அல்ல, முன்னொட்டைக் கோருகிறது
Builder.addRoute சுரங்கப்பாதைக்கு இலக்கு முன்னொட்டுகளைக் கோருகிறது. 10.0.0.0/8 மட்டும் சேர்க்கும் சுயவிவரம் அந்த முன்னொட்டை சுரங்கப்பாதை வழியாக அனுப்பி மற்ற ஒவ்வொரு இலக்கையும் இயற்பியல் பாதையில் விடுகிறது. இது சாதாரண பிரிக்கப்பட்ட சுரங்கப்பாதை, மேலும் எந்தப் பயன்பாடுகளை விதிகள் தேர்ந்தெடுத்தன என்பதிலிருந்து சுயாதீனமானது.
சேவையகம் அனுப்பும் உள்ளமைவு அதே மாதிரியைப் பிரதிபலிக்கிறது. தனிப்பட்ட வழி தள்ளல்கள் முன்னொட்டுகளைச் சேர்க்கின்றன, ஆனால் redirect-gateway கட்டளை இயல்புநிலை வழியை மாற்றி, சுரங்கப்பாதை மூடும் பயன்பாடுகளுக்கு எல்லாவற்றையும் பிடிக்கிறது. அந்தக் கட்டளையை நீக்கினால் சாதனத்தில் எந்த மாற்றமும் இல்லாமல் இயங்கும் சுரங்கப்பாதை ஒரு துணை வலையமைப்பாகச் சுருங்கலாம்.
அசாதாரண நுழைவாயில் அல்லது மெட்ரிக் தகுதியுடன் அனுப்பப்பட்ட வழியும் நிறுவத் தவறலாம். எளிய முன்னொட்டு வடிவத்தை விரும்புங்கள், அனுப்புதல் மற்றும் NAT-ஐ சேவையகத்திடம் விடுங்கள்.
அமைப்பை மாற்றுவதற்கு முன் வெட்டுத்தளத்தைப் படியுங்கள்
சுரங்கப்பாதை மூடப்பட்ட செயல்முறைகள் மற்றும் கோரப்பட்ட இலக்குகளின் வெட்டுத்தளத்தை எடுத்துச் செல்கிறது. வெளியிடப்பட்ட முன்னொட்டுகளுக்கு வெளியே முகவரியைக் கேட்கும் மூடப்பட்ட பயன்பாடு இயற்பியல் வலையமைப்பின் வழியாக வெளியேறுகிறது. தடைசெய்யப்பட்ட தொகுப்பு அந்த முன்னொட்டுகளுக்குள் முகவரியைக் கேட்டாலும் வெளியேயே இருக்கும். எதுவும் பிழை அல்ல; இரண்டும் அந்த இரண்டு கொள்கைகள் தங்கள் வேலையைச் செய்கின்றன.
ஒவ்வொரு பயன்பாட்டுக்குமான VPN இணைக்கப்பட்ட பயன்பாட்டை இணைப்பின்றியும் விடலாம். on-demand அணைக்கப்பட்டு சுரங்கப்பாதை கீழே இருக்கும்போது, பயன்பாடு ஒவ்வொரு பயன்பாட்டுக்குமான VPN-உடன் கட்டுண்டு இருக்கும், மாற்று வழி இல்லை, அது கொள்கை நிலை அல்ல, உடைந்த பயன்பாடு போலத் தெரிகிறது. on-demand-ஐ இயக்குவது, அல்லது நிர்வாகத்தின் மூலம் தொடர்பை நீக்குவது, அதை மாற்றுகிறது.
| Layer | What it selects | Where to look | Typical mismatch |
|---|---|---|---|
| Package list | Processes | Builder calls or managed configuration | App excluded but expected to be blocked |
| UID policy rule | Which table a UID uses | ip rule show | Tunnel icon on, app still on Wi-Fi |
| Routing table | Destinations for matched traffic | ip route show table <n> | Covered app reaches only one subnet |
| Server push | Prefixes offered to the client | Server route configuration | Tunnel shrinks after a server edit |
ஒரு நேரத்தில் ஒரு அச்சைக் கண்டறியுங்கள். முதலில் அனுமதியா தடையா என்பதை உறுதிப்படுத்துங்கள், இரண்டாவதாக நிறுவப்பட்ட UID விதிகள் மற்றும் அட்டவணைகளைப் படியுங்கள், இறுதியாக அதே இலக்குக்கு எதிராக இரண்டாவது பயன்பாட்டைச் சோதியுங்கள். இரண்டாவது பயன்பாடு ஒரே கோரிக்கையில் செயல்முறைத் தேர்வை இலக்குத் தேர்விலிருந்து பிரிக்கிறது.
முடிவை பயன்பாடு, இலக்கு மற்றும் அட்டவணை எண்ணாக எழுதுங்கள். அடுத்த மாற்றம் அதே மும்மையைப் பாதுகாக்க வேண்டும்.