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

อาการ: การตั้งค่าที่เคยใช้ได้หยุดหลังการติดตั้งครั้งที่สอง

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

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

บันทึกสถานะฐานก่อนติดตั้งอะไรก็ตาม

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

scutil --dns | head -40
netstat -rn | head -30
ifconfig | grep -E "^(utun|ipsec)"

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

เปลี่ยนทีละเส้นทางที่ใช้งานอยู่

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

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

เปรียบเทียบ DNS เส้นทาง และแอป ไม่ใช่แค่ความเร็ว

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

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

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

คืนค่า แล้วลบออกอย่างสะอาด

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

ปิดท้ายด้วยการอัปเดตบันทึกของคุณด้วยเวอร์ชันที่ทดสอบ ปลายทางที่ใช้ และผลลัพธ์ของแต่ละตัว ครึ่งปีต่อมา บันทึกนั้นคือความแตกต่างระหว่างการตัดสินใจกับข่าวลือ

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