ไอคอน VPN บน Android ติดอยู่ แต่ทำไมทราฟฟิกไม่ผ่านอุโมงค์
ไอคอนกุญแจบอกเพียงว่าแอปหนึ่งถืออินเทอร์เฟซเสมือน ไม่ได้บอกว่าทราฟฟิกออกจากโทรศัพท์ ตรวจสอบชนิดโปรไฟล์ ขอบเขตต่อแอป และนโยบายการบล็อก
กุญแจ VPN ของคุณอยู่ในแถบสถานะ เบราว์เซอร์กำลังโหลดหน้า และที่อยู่ที่เว็บไซต์รายงานยังเป็นการเชื่อมต่อที่บ้านของคุณ การผสมผสานนี้เป็นเรื่องปกติบน Android เพราะไอคอนบอกว่าแอปหนึ่งถืออินเทอร์เฟซเครือข่ายเสมือน ไม่ได้บอกว่าทราฟฟิกของคุณออกผ่านเซิร์ฟเวอร์ระยะไกล แอปกรองในเครื่องใช้กลไกเดียวกัน ตรวจสอบว่าบริการทำอะไรจริงก่อนโทษผู้ให้บริการ
ไอคอนหมายความว่าบริการ VPN ถืออินเทอร์เฟซ
บริการ VPN ของ Android อนุญาตให้แอปสร้างอินเทอร์เฟซเสมือนและรับแพ็กเก็ตที่ถูกกำหนดเส้นทางเข้ามา สิ่งที่เกิดขึ้นต่อไปขึ้นอยู่กับแอปนั้นทั้งหมด: อาจส่งต่อไปยังเซิร์ฟเวอร์ระยะไกล กรอง หรือทิ้ง ไอคอนกุญแจรายงานว่าบริการถืออินเทอร์เฟซ ไม่ได้บอกว่าแพ็กเก็ตไปที่ไหน จึงเป็นเหตุให้แอปกรองกับอุโมงค์เต็มรูปแบบดูเหมือนกันในแถบสถานะ
adb shell dumpsys connectivity | grep -i vpn
adb shell settings get global always_on_vpn_app
มีบริการ VPN ได้เพียงหนึ่งเดียวต่อผู้ใช้หรือโปรไฟล์ในแต่ละครั้ง ซึ่งเป็นพฤติกรรมที่บันทึกไว้ ไม่ใช่บั๊ก เมื่อแอปที่สองพยายามเชื่อมต่อ มันจะเข้าควบคุมหรือล้มเหลว และทราฟฟิกของแอปแรกจะไม่ถูกจัดการอีกต่อไป หากแอปกรองออกในจังหวะที่คุณเชื่อมต่ออุโมงค์ การแข่งขันนั้นคือสาเหตุที่เป็นไปได้
โปรไฟล์เนทีฟหรือ VPN ของแอป: ใช้แทนกันไม่ได้
โปรไฟล์ IKEv2 ที่แพลตฟอร์มจัดหาให้กับแอปที่ใช้งาน OpenVPN หรือ WireGuard เป็นผลิตภัณฑ์ต่างกันที่มีเมนูต่างกัน API ของแพลตฟอร์มสำหรับ IKEv2 มีตั้งแต่ Android เวอร์ชันหนึ่ง และบิลด์ของผู้ผลิตไม่ได้แสดงตัวเลือกเดียวกันทั้งหมดในที่เดียวกัน ภาพหน้าจอจากโทรศัพท์เครื่องอื่นไม่ใช่เอกสารความเข้ากันได้
adb shell getprop ro.build.version.sdk
adb shell dumpsys package com.example.vpn | head -40
จับคู่โปรโตคอลกับไคลเอนต์ที่รองรับ และรับโปรไฟล์ผ่านช่องทางที่ยืนยันแล้วของผู้ให้บริการแทนการวางลงในแบบฟอร์มที่ไม่เกี่ยวข้อง ที่อยู่ปลายทางบอกว่าเชื่อมต่อที่ไหน ไม่ได้บอกว่าแอปใดพูดโปรโตคอลได้ ให้ถือว่าโปรไฟล์ที่ส่งออกและคิวอาร์โค้ดเป็นข้อมูลรับรอง เพราะภาพคิวอาร์อาจมีกุญแจทั้งหมด หากโปรไฟล์ออกให้ไคลเอนต์อื่น ให้ออกใหม่แทนการแปลง
กฎต่อแอปและโปรไฟล์งานเปลี่ยนขอบเขต
Android รองรับการกำหนดค่า VPN ต่อแอป ดังนั้นเบราว์เซอร์อาจอยู่นอกอุโมงค์ขณะที่แอปอีเมลอยู่ข้างใน โปรไฟล์ส่วนตัวและโปรไฟล์งานเป็นบริบทแยกกันโดยมีบริการที่ใช้งานอยู่ของตนเอง การตรวจที่อยู่จากแอปผิดเป็นข้อสรุปผิดที่พบบ่อยที่สุดอย่างหนึ่งในด้านนี้
ดูรายการรวมและรายการยกเว้น แล้วทดสอบกับแอปที่คุณสนใจจริง ๆ อุโมงค์ของโปรไฟล์งานไม่ครอบคลุมแอปส่วนตัว และอุโมงค์ส่วนตัวไม่ครอบคลุมแอปงาน การแยกเดียวกันนี้อธิบายว่าทำไมทรัพยากรองค์กรจึงทำงานในโปรไฟล์หนึ่งและล้มเหลวในอีกโปรไฟล์โดยไม่มีความต่างของการกำหนดค่าให้เห็น บันทึกบริบทของโปรไฟล์ในตั๋ว เพราะมันเปลี่ยนแม้แต่การตั้งค่าใดที่ใช้บังคับ
หยุดหากแอปที่คุณทดสอบไม่อยู่ในขอบเขตของอุโมงค์ นั่นคือการเลือกนโยบาย ไม่ใช่ข้อบกพร่อง
ทดสอบว่าอะไรออกจากโทรศัพท์จริง
ทดสอบปลายทางสาธารณะและส่วนตัว ทั้งสองตระกูลที่อยู่ และทั้งสองเครือข่ายการเข้าถึง จากนั้นเปรียบเทียบผลกับขอบเขตของแอปเอง เพราะการโหลดหน้าสำเร็จในแอปหนึ่งไม่ได้บอกอะไรเกี่ยวกับอีกแอป ทำซ้ำหลังเปลี่ยนจาก Wi-Fi เป็นข้อมูลมือถือ เพราะการเชื่อมต่อใหม่อาจตกไปอยู่เส้นทางอื่น
adb shell ip rule
adb shell dumpsys netpolicy | grep -i vpn
Always-on VPN และตัวเลือกที่บล็อกการเชื่อมต่อเมื่อไม่มี VPN เกี่ยวข้องกันแต่ต่างกัน และการบล็อกที่เข้มงวดอาจทำให้การลงชื่อเข้าใช้พอร์ทัล captive เสียได้จนกว่าคุณจะทำตามขั้นตอนที่บันทึกไว้ การตั้งค่า Private DNS ก็อาจโต้ตอบกับตัวแก้ไขชื่อของโปรไฟล์ ดังนั้นการแทนที่ DNS ขององค์กรแบบไม่ดูตาม้าตาเรือจึงสร้างความล้มเหลวใหม่ หากอุโมงค์ตายเมื่อล็อกหน้าจอ ให้อ่านคำแนะนำสำหรับนักพัฒนา VPNเกี่ยวกับการทำงานเบื้องหลังและการปรับแต่งแบตเตอรี่ก่อนติดตั้งสิ่งใดใหม่
อาการที่ควรจำไว้คือช่องว่างระหว่างไอคอนกับเส้นทาง กุญแจหมายถึงบริการถืออินเทอร์เฟซ การทดสอบจากแอปที่ตั้งใจบนเครือข่ายที่ตั้งใจเท่านั้นที่บอกว่าทราฟฟิกไปที่ไหน ตรวจทั้งสองอย่าง แล้วรายงานครั้งถัดไปเกี่ยวกับ VPN ที่เสียจะระบุตำแหน่งได้ง่ายขึ้นมาก