บน Ubuntu Touch มีการถามสองคำถามเป็นคำถามเดียว: แพ็กเกจเดสก์ท็อปนี้จะทำงานหรือไม่ และโทรศัพท์จะได้ VPN หรือไม่ คอนเทนเนอร์ตอบข้อแรก ไม่มีสิ่งใดในนั้นตอบข้อที่สอง เพราะคอนเทนเนอร์มีมุมมองของระบบไฟล์เป็นของตนเอง ขณะที่สแตกเครือข่ายและนโยบายเป็นของโทรศัพท์ ติดตามว่าชิ้นส่วนแต่ละส่วนอยู่ที่ใดก่อนสัญญาว่าจะมีเวิร์กโฟลว์

สองคำถามที่ดูเหมือนคำถามเดียว

การรันแอปพลิเคชันเดสก์ท็อปในคอนเทนเนอร์เป็นความสำเร็จของการแพ็กเกจ การทำให้ตัวจัดการการเชื่อมต่อของโทรศัพท์สร้างอุโมงค์ คงไว้ข้ามการพัก และตัดสินว่าเกิดอะไรขึ้นเมื่อขาด คืองานของแพลตฟอร์ม ตัวติดตั้งที่เสร็จสิ้นในคอนเทนเนอร์พิสูจน์เพียงว่าการพึ่งพาถูกแก้ไขที่นั่น ไม่ได้บอกอะไรว่ามีปลั๊กอิน VPN ที่อนุมัติแล้วบนโทรศัพท์หรือไม่ อุโมงค์อยู่รอดหลังรีบูตหรือไม่ หรือแอปใดใช้งานมัน

แยกสองเรื่องเป็นคนละประโยคในการประเมินใด ๆ การรวมเข้าด้วยกันคือวิธีที่การสาธิตในห้องแล็บกลายเป็นพันธะสนับสนุนที่ไม่มีใครทำได้

ขอบเขตคอนเทนเนอร์ให้อะไรจริง

คอนเทนเนอร์ Libertine คือสภาพแวดล้อมที่เขียนได้ซึ่งวางซ้อนบนโทรศัพท์ที่ระบบฐานเป็นแบบอ่านอย่างเดียว นั่นคือเหตุผลที่การติดตั้งแพ็กเกจที่นั่นทำงานได้เลย และเหตุผลที่การติดตั้งเดียวกันบนระบบฐานไม่ทำงาน มันยังรันแอปพลิเคชันในเบื้องหน้า ผสานกับหน้าจอโทรศัพท์ และระบุชัดเจนว่าไม่ใช่วิธีรันซอฟต์แวร์เซิร์ฟเวอร์หรือคงโปรเซสให้มีชีวิตอยู่เบื้องหลัง ข้อจำกัดเหล่านี้สำคัญกับไคลเอนต์ VPN ซึ่งคาดว่าจะต้องเปิดอยู่

libertine-container-manager list
libertine-container-manager info -i <container-id>
libertine-launch -i <container-id> bash

รายการแสดงว่ามีคอนเทนเนอร์ใดบ้าง และคำสั่ง info รายงานดิสทริบิวชันกับสถานะการติดตั้ง คำสั่ง launch ให้เชลล์ภายใน และนั่นคือที่ที่เหมาะสมในการตรวจสอบว่าแพ็กเกจติดตั้งอะไรจริง ๆ สิ่งที่มันไม่ให้คืออำนาจเหนือเครือข่ายของโทรศัพท์ ไบนารีในคอนเทนเนอร์ที่ต้องการสร้างอุโมงค์ต้องมีอินเทอร์เฟซที่ได้สิทธิพิเศษ และอินเทอร์เฟซนั้นเป็นของแพลตฟอร์ม ไม่ใช่ของคอนเทนเนอร์

สถานะเครือข่ายของโทรศัพท์อยู่ที่ใด

ชื่อ เส้นทาง และโปรไฟล์การเชื่อมต่อถูกจัดการโดยบริการเครือข่ายของโทรศัพท์ นอกคอนเทนเนอร์ใด ๆ รายการอุโมงค์จะปรากฏที่นั่นก็ต่อเมื่อแพลตฟอร์มรองรับ VPN ชนิดนั้นและผู้ให้บริการได้ติดตั้งปลั๊กอินที่เกี่ยวข้อง

nmcli connection show
ip route get 10.42.0.10
ip -br addr show

รายการการเชื่อมต่อคือคำตอบที่เชื่อถือได้ว่ามีโปรไฟล์ VPN บนโทรศัพท์นี้หรือไม่ ถ้าอุโมงค์ของคุณไม่อยู่ในรายการนั้น งานใด ๆ ในคอนเทนเนอร์ก็ทำให้มันปรากฏไม่ได้ การค้นหาเส้นทางตอบคำถามที่แคบกว่า: อินเทอร์เฟซใดที่โทรศัพท์นี้จะใช้กับปลายทางหนึ่ง นั่นคือการตรวจสอบที่ต้องทำซ้ำหลังทุกการเปลี่ยนแปลง เพราะโปรไฟล์อาจมีอยู่และก็ยังไม่ใช่เส้นทางที่แอปหนึ่ง ๆ ใช้

อ่านเวิร์กโฟลว์หนึ่งรายการตั้งแต่ต้นจนจบ

เลือกงานจริง เช่น การเข้าถึงฐานข้อมูลส่วนตัวด้วยไคลเอนต์เดสก์ท็อป จากนั้นติดตามโฟลว์: แอปพลิเคชันเริ่มในคอนเทนเนอร์ แปลงชื่อโฮสต์ผ่านตัวแปลงชื่อใดก็ตามที่โทรศัพท์ใช้ เปิดซ็อกเก็ต และการกำหนดเส้นทางของโทรศัพท์ตัดสินว่าอินเทอร์เฟซใดพามันไป ทุกขั้นตอนมีเจ้าของ คอนเทนเนอร์เป็นเจ้าของแอปพลิเคชัน แพลตฟอร์มเป็นเจ้าของตัวแปลงชื่อและการกำหนดเส้นทาง และปลายทาง VPN เป็นเจ้าของการพิสูจน์ตัวตน ความล้มเหลวในขั้นตอนใดก็คือความล้มเหลวของขั้นตอนนั้น ไม่ใช่ของแนวคิดทั้งหมด

ทดสอบชื่อโฮสต์ส่วนตัวและที่อยู่ส่วนตัวแยกกัน ชื่อที่แปลงเป็นที่อยู่สาธารณะและที่อยู่ที่กำหนดเส้นทางเข้าอุโมงค์เป็นการสังเกตที่ต่างกัน และการสับสนระหว่างสองสิ่งนี้ทำให้ได้รายงานที่ทำซ้ำไม่ได้

สิ่งที่ควรบันทึกเมื่อคำตอบคือไม่

บางครั้งข้อสรุปที่ซื่อตรงคือโทรศัพท์นี้ ในรุ่นนี้ ไม่สามารถรับเวิร์กโฟลว์ได้ เขียนสิ่งนั้นพร้อมหลักฐาน: แพลตฟอร์มมีชนิดการเชื่อมต่อใดบ้าง ไคลเอนต์ใดถูกทดลอง และขั้นตอนใดล้มเหลว

จากนั้นระบุทางเลือกที่ยอมรับ ไม่ว่าจะเป็นอุปกรณ์อื่น วิธีการเข้าถึงอื่น หรืองานที่แคบกว่าซึ่งอยู่ในคอนเทนเนอร์โดยไม่แตะเครือข่ายส่วนตัว

ต้านทานการล่อใจที่จะเมานต์ระบบฐานใหม่หรือให้สิทธิพิเศษโดยไม่อธิบาย เพื่อทำสูตรเก่าขึ้นมาใหม่ โทรศัพท์ที่บูตได้ไม่เหมือนกับโทรศัพท์ที่คุณยังให้เหตุผลเรื่องนโยบายเครือข่ายได้อีกครึ่งปีให้หลัง

บทความที่เกี่ยวข้อง