ติ๊กแอปเดียวใน OpenVPN? ฐานของรายการเป็นตัวตัดสิน
แพ็กเกจที่ติ๊กเหมือนกันหมายถึงรวมหรือยกเว้น ขึ้นอยู่กับฐานของรายการ เลือกฐานแบบรวมเท่านั้นก่อน เชื่อมต่อใหม่ แล้วจึงทดสอบเวิร์กโฟลว์ทั้งหมด
ช่องทำเครื่องหมายดูเหมือนเป็นการตัดสินใจทั้งหมด แต่บน Android ไม่ใช่ แพ็กเกจที่ติ๊กเหมือนกันหมายถึง “แอปนี้เท่านั้นที่ใช้ VPN” ภายใต้ฐานแบบรวมเท่านั้น และ “แอปนี้ข้าม VPN” ภายใต้ฐานที่ยกเว้นรายการที่เลือก ผู้คนติดตั้งไคลเอนต์ เจอรายการที่ติดป้ายว่าแอปที่อนุญาต ติ๊กแพ็กเกจเดียวที่ตัวเองสนใจ แล้วจากไปพร้อมนโยบายที่ทำตรงกันข้าม การเปลี่ยนไคลเอนต์แทบไม่ช่วย การเลือกฐานก่อนแตะรายการต่างหากที่ช่วย
ฐานคือตัวนโยบาย ไม่ใช่ช่องทำเครื่องหมาย
ภายใต้ VpnService ของ Android ไคลเอนต์กำหนดเส้นทางต่อแอปด้วย addAllowedApplication หรือ addDisallowedApplication ตัวแรกจำกัดอุโมงค์ไว้ที่แพ็กเกจที่ระบุ ตัวที่สองส่งทุกอย่างยกเว้นแพ็กเกจเหล่านั้นผ่านอุโมงค์ ไคลเอนต์ห่อทั้งสองแบบไว้ใน UI ที่อาจดูแทบเหมือนกัน และบางตัวตั้งชื่อส่วนตามรายการแทนที่จะตั้งตามโหมด ดังนั้นชื่อส่วนเพียงอย่างเดียวบอกไม่ได้ว่าฐานใดทำงานอยู่
อ่านตัวควบคุมโหมดเหนือรายการ ไม่ใช่หัวข้อ ในไคลเอนต์ OpenVPN for Android ต้นฉบับ รายการแอปที่อนุญาตมีฐานแบบรวมเท่านั้นและฐานที่ยกเว้นรายการที่เลือก และบิลด์ที่ติดแบรนด์อาจเขียนทั้งสองแบบต่างออกไปโดยยังคงพฤติกรรมสองอย่างเดิม ภาพหน้าจอจากไคลเอนต์อื่น หรือจากเวอร์ชันเก่าของตัวเดียวกัน ไม่ใช่หลักฐานเกี่ยวกับโหมดที่คุณอยู่
| What the client shows | What a checked app gets |
|---|---|
| Allowed apps, include-only baseline | The app uses the tunnel; unchecked apps do not |
| Allowed apps, exclude-selected baseline | The app bypasses the tunnel; everything else uses it |
| No list configured | Client or profile default, commonly all apps |
ตารางนั้นคือความเข้าใจผิดทั้งหมด การติ๊กแอปคือข้อความเกี่ยวกับแพ็กเกจเดียว ฐานเป็นตัวตัดสินว่าข้อความนั้นคือ “รวม” หรือ “ยกเว้น”
เลือกโหมดก่อน แล้วจึงเลือกแพ็กเกจ
ทำตามลำดับนี้ เพราะการเลือกที่ทำภายใต้ฐานหนึ่งอาจอยู่ต่อหลังเปลี่ยนโหมดและกลับผลของมันอย่างเงียบ ๆ
- ระบุแพ็กเกจจริง และระบุว่าเป็นสำเนาส่วนตัวหรือสำเนาโปรไฟล์งาน
- เปิดการตั้งค่าการเลือกแอปของโปรไฟล์ VPN ที่คุณเชื่อมต่อจริง ๆ
- ตั้งฐานที่มีความหมายว่า “เฉพาะแอปที่เลือกใช้ VPN”
- รวมแพ็กเกจที่ต้องการ และกันแอปที่ไม่เกี่ยวข้องออกจากชุด
- เชื่อมต่อใหม่เพื่อให้ไคลเอนต์สร้างอินเทอร์เฟซใหม่ด้วยรายการใหม่
โปรไฟล์สำคัญพอ ๆ กับแพ็กเกจ ไคลเอนต์หนึ่งตัวมีหลายโปรไฟล์ได้ และการเลือกต่อแอปเป็นของโปรไฟล์ที่คุณเชื่อมต่อจริง การแก้โปรไฟล์ที่คุณไม่เคยใช้ไม่เปลี่ยนอะไร บนอุปกรณ์ที่จัดการ โปรไฟล์งานเป็นผู้ใช้แยกต่างหาก มีสำเนาแอปของตัวเองและนโยบายของตัวเอง ดังนั้นการที่อินสแตนซ์ส่วนตัวอยู่ในอุโมงค์ไม่ได้บอกอะไรเกี่ยวกับอินสแตนซ์งาน
เชื่อมต่อใหม่ก่อนตัดสินผล
VpnService อ่านรายการแอปเมื่ออินเทอร์เฟซอุโมงค์ถูกสร้าง อุโมงค์ที่ทำงานอยู่ไม่จำเป็นต้องรับการแก้ไขรายการ และไคลเอนต์ต่างกันว่าสร้างใหม่เองอัตโนมัติหรือรอให้คุณตัดการเชื่อมต่อแล้วเชื่อมใหม่
ถ้าการเปลี่ยนแปลงดูเหมือนไม่ทำอะไร ให้ทดสอบการเชื่อมต่อใหม่ก่อนสงสัยรายการ จากนั้นสร้างคำขอใหม่แทนการโหลดหน้าเดิมที่เปิดอยู่แล้ว แอปที่ถือการเชื่อมต่อที่สร้างไว้เป็นวัตถุทดสอบที่ไม่ดี และผลที่คุณเห็นอาจเป็นของอินเทอร์เฟซเก่า
เวิร์กโฟลว์ของคุณอาจออกจากแอป
แอปอาจส่งต่อไปยังเบราว์เซอร์เพื่อเข้าสู่ระบบ ไปยังโปรแกรมดูเอกสาร หรือไปยังเป้าหมายการแชร์ ภายใต้ฐานแบบรวมเท่านั้น ตัวช่วยเหล่านั้นอยู่นอกอุโมงค์ เวิร์กโฟลว์จึงอาจล้มเหลวกลางทางได้แม้แอปแรกจะตั้งค่าถูกต้อง รวมตัวช่วยไว้เฉพาะเมื่อเวิร์กโฟลว์ต้องการจริง ๆ และเพิ่มอย่างตั้งใจแทนที่จะไปค้นพบระหว่างการสาธิต
การเลือกต่อแอปไม่ได้แทนที่นโยบายเส้นทางของตัวการเชื่อมต่อเอง โปรไฟล์ยังต้องพาเพรฟิกซ์ปลายทางและตระกูลแอดเดรสที่แอปใช้ และเกตเวย์ยังต้องอนุญาตบริการ แอปที่อยู่ในรายการถูกต้องแต่ปลายทางเข้าถึงไม่ได้ก็ดูเหมือนรายการที่ตั้งค่าผิด
ทดสอบทั้งสองด้าน แล้วจดนโยบายไว้
ทดสอบคำขอใหม่หนึ่งรายการในแอปที่รวมไว้ และอีกรายการในแอปที่ควรอยู่นอก เปรียบเทียบแอดเดรสขาออกและการเข้าถึงทรัพยากรส่วนตัว แล้วทำซ้ำหลังเชื่อมต่อใหม่ ถ้าองค์กรของคุณใช้นโยบาย Android ที่บล็อกการเชื่อมต่อเมื่อไม่มี VPN แอปที่ถูกยกเว้นอาจถูกบล็อกทั้งหมดแทนที่จะออกตรง นั่นคือนโยบายที่ทำงาน ไม่ใช่ข้อบกพร่องที่ต้องหลบเลี่ยง
บันทึกโหมด ชื่อแพ็กเกจพร้อมโปรไฟล์ แอปใดควรข้าม ตระกูลแอดเดรสใดที่อุโมงค์พาไป และอะไรควรเกิดขึ้นเมื่ออุโมงค์ล่ม ถ้าไคลเอนต์แสดงเวิร์กโฟลว์ได้ไม่สะอาด ให้เลือกชุดแอปที่อนุมัติกว้างขึ้นหรือนโยบายโปรไฟล์ที่จัดการ แทนการแก้กฎไฟร์วอลล์ที่ระดับ root ซึ่งไม่ใช่ส่วนหนึ่งของกลไกต่อแอปที่ Android รองรับ