โปรโตคอลใดอยู่เบื้องหลังโปรไฟล์ VPN Mac ที่บันทึกไว้นั้น
ชื่อการเชื่อมต่อบน Mac ไม่ได้บอกอะไรเกี่ยวกับชนิด VPN ของมัน อ่านฟิลด์ VPNType ในเพย์โหลด แล้วตรวจสอบเกตเวย์และเซสชันแยกกัน
มีคนตั้งชื่อการเชื่อมต่อ Mac ว่า „VPN สำนักงาน“ ฉลากนั้นอยู่รอดผ่านการย้ายเซิร์ฟเวอร์สองครั้ง และทุกคนยังคงเรียกมันว่า VPN สำนักงานต่อไปอีกนานหลังจากโปรโตคอลเปลี่ยนไป ชื่อเป็นเพียงชื่อเล่นที่บันทึกไว้ข้างการกำหนดค่า ไม่ใช่หลักฐานว่าอะไรที่ Mac ต่อรอง การอ่านชนิดที่ประกาศไว้ใช้เพียงหนึ่งฟิลด์ และการแยกชนิดที่บันทึกไว้นั้นออกจากเซสชันที่กำลังทำงานต้องใช้อีกหนึ่งขั้นตอน นี่คือลำดับที่ไม่ต้องเดา
ฉลากเป็นเพียงชื่อเล่น เพย์โหลดต่างหากที่ประกาศชนิด
บริการ VPN ของ macOS คือรายการกำหนดค่าระบบที่มีชื่อที่แสดง ไคลเอนต์เจ้าของ และชุดการตั้งค่าที่กำหนดชนิดไว้ ชื่อที่แสดงเป็นข้อความอิสระ แก้ไขได้โดยใครก็ตามที่สร้างรายการนั้น และเป็นส่วนที่ผู้ใช้เห็นในแถบเมนู การตั้งค่าต่างหากที่บรรจุข้อเท็จจริง ทั้งชนิดการเชื่อมต่อ เกตเวย์ และรูปแบบการพิสูจน์ตัวตน ไม่มีอะไรทำให้สองส่วนนี้ตรงกัน ดังนั้นโปรไฟล์ที่ชื่อ „สำนักงาน L2TP“ จึงอาจเป็นบริการ IKEv2 ได้
สำหรับการเชื่อมต่อที่สร้างด้วยตนเอง แอปพลิเคชันเจ้าของหรือแผง VPN ของระบบเองจะแสดงการตั้งค่าเหล่านั้น บน Mac ที่ถูกจัดการ โปรไฟล์เป็นของฝ่ายดูแลระบบ และสิ่งที่ควรทำคือขอสรุปที่ไม่เป็นความลับแทนการแก้ไขเพย์โหลดที่ถูกจัดการ ทั้งสองกรณีดูเหมือนกันในแถบเมนู แต่ทำงานต่างกันโดยสิ้นเชิงข้างใน อันหนึ่งเป็นของคุณให้ตรวจและแก้ไข อีกอันถูกติดตั้งและจะถูกคืนค่าในการตรวจครั้งถัดไป
ความแตกต่างนี้สำคัญเพราะการกำหนดค่าที่ถูกจัดการและที่เป็นส่วนตัวถูกกำกับดูแลต่างกัน โปรไฟล์ที่ติดตั้งโดยฝ่ายจัดการจะถูกแทนที่หรือนำไปใช้ใหม่ การแก้ไขในเครื่องจึงล้มเหลวหรือย้อนกลับอย่างเงียบ ๆ ขอชนิด ตัวตนของเกตเวย์ และวิธีการพิสูจน์ตัวตนจากเจ้าของแทนการย้อนวิศวกรรมไฟล์ที่คุณไม่ได้ควบคุม
อ่าน VPNType ก่อนสิ่งอื่นใดในเพย์โหลด
สคีมาเพย์โหลด VPN ที่ถูกจัดการของ Apple ประกาศชนิดการเชื่อมต่อในคีย์ VPNType ภายในพจนานุกรมที่มี PayloadType เป็น com.apple.vpn.managed ค่าคือโทเคนสั้น ๆ เช่น IKEv2, IPsec, L2TP หรือ VPN และทุกอย่างที่เหลือในเพย์โหลดตีความตามโทเคนนั้น
<key>PayloadType</key>
<string>com.apple.vpn.managed</string>
<key>VPNType</key>
<string>IKEv2</string>
<key>IKEv2</key>
<dict>
<key>RemoteAddress</key>
<string>vpn.head-office.example</string>
<key>RemoteIdentifier</key>
<string>ikev2.head-office.example</string>
</dict>ส่วนนี้เป็นตัวอย่าง ไม่ใช่สิ่งที่ติดตั้งได้ เป็นรายการหนึ่งของอาร์เรย์เพย์โหลดที่ตัดเอาเมตาดาต้าของโปรไฟล์และข้อมูลรับรองที่การติดตั้งจริงต้องใช้ อ่านเพื่อดูรูปร่าง ไม่ใช่เนื้อหา สังเกตด้วยว่า RemoteAddress และ RemoteIdentifier เป็นฟิลด์ต่างกันที่มีหน้าที่ต่างกัน แม้การติดตั้งจะให้สตริงเดียวกันก็ตาม
ค่าที่สืบทอดมาเช่น PPTP อาจยังปรากฏในไฟล์เก่าโดยไม่ใช่ตัวเลือกที่ macOS ปัจจุบันเสนอสำหรับการกำหนดค่าใหม่ การพบโทเคนในโปรไฟล์ที่บันทึกไว้พิสูจน์ว่ามีการเขียนอะไรลงไป ไม่ใช่สิ่งที่ระบบปฏิบัติการจะยังยอมรับ
ชนิดที่กำหนดเองต้องมี VPNSubType และแอปพลิเคชันเจ้าของ
เมื่อ VPNType เป็น VPN เพย์โหลดต้องมี VPNSubType ด้วย ซึ่งระบุปลั๊กอินหรือผู้ให้บริการ Network Extension ที่ใช้งานการเชื่อมต่อ ตัวระบุนี้เป็นสิ่งที่ส่งการเชื่อมต่อไปยังไคลเอนต์ที่เฉพาะเจาะจง ชนิดย่อยที่ผิดจึงสร้างโปรไฟล์ที่ติดตั้งได้แล้วกลับเริ่มไม่ขึ้น
สำหรับผู้ให้บริการที่อิงส่วนขยายแอปพลิเคชัน ตัวระบุเป็นของแอปพลิเคชันที่บรรจุมัน ไม่ใช่ชื่อส่วนขยายที่เดาขึ้น และนี่คือรายละเอียดที่คนมักเข้าใจผิดเมื่อแก้ไขโปรไฟล์ด้วยมือ แม้ชนิดย่อยที่ถูกต้องก็อธิบายไคลเอนต์ ไม่ใช่อธิบายโปรโตคอลบนสาย วิธีการพิสูจน์ตัวตน หรือนโยบายการเข้าถึงระยะไกลที่ไคลเอนต์นั้นจะใช้
ดังนั้นเพย์โหลดที่กำหนดเองบอกคุณว่าซอฟต์แวร์ใดเป็นเจ้าของการเชื่อมต่อ และบอกได้เพียงเล็กน้อยเท่านั้น หากต้องการทราบว่ามันต่อรองอะไร ให้อ่านเอกสารของผู้ให้บริการรายนั้นและการตั้งค่าที่กำหนดไว้ การคัดลอกชนิดย่อยจากโปรไฟล์ขององค์กรอื่นไม่ใช่เทคนิคการกำหนดค่า แต่เป็นการเดาที่บังเอิญแยกวิเคราะห์ได้
ระบุสิ่งที่ Mac กำหนดค่าไว้จริง
ก่อนอ่านไฟล์ใด ๆ ให้ถามระบบว่ามีบริการอะไรบ้างและอยู่ในสถานะใด มุมมองบรรทัดคำสั่งเร็วกว่าการคลิกผ่านแผงต่าง ๆ และพิมพ์ชนิดกำกับทุกรายการ.
scutil --nc list scutil --nc show "Office VPN"
คำสั่งแรกแสดงบริการ VPN ที่กำหนดค่าไว้พร้อมสถานะปัจจุบัน และคำสั่งที่สองพิมพ์การตั้งค่าของบริการที่เลือก รวมทั้งชนิดและที่อยู่เซิร์ฟเวอร์ที่จะติดต่อ เปรียบเทียบที่อยู่นั้นกับเกตเวย์ที่คุณถูกบอกให้คาดหวัง เพราะรายการเก่าที่ชี้ไปยังโฮสต์ที่ปลดระวางแล้วเป็นปัญหามรดกที่พบบ่อย
คำสั่งเหล่านี้แสดงการกำหนดค่าและสถานะ ไม่ได้พิสูจน์ว่าอุโมงค์กำลังรับส่งข้อมูล หากบริการถูกตัดการเชื่อมต่อ ผลลัพธ์อธิบายเจตนา ไม่ใช่เซสชันที่ทำงานอยู่ บริการที่เชื่อมต่อแต่ไม่มีข้อมูลเป็นอีกปัญหาหนึ่ง ปกติคือการกำหนดเส้นทางหรือ DNS ไม่ใช่ชนิดโปรโตคอล แยกการสังเกตสามข้อนี้ไว้ให้ห่างกัน ไม่อย่างนั้นการวินิจฉัยจะกลับไปสู่การเดา
แยกการตั้งค่าที่บันทึกไว้ออกจากเซสชันที่กำลังทำงาน
โปรไฟล์ที่บันทึกไว้คือคำแถลงเจตนา ไม่ได้แสดงว่าเกตเวย์ยังให้บริการนั้นอยู่ โปรไฟล์นี้เป็นตัวที่ใช้งานอยู่ หรือเซสชันต่อรองสำเร็จแล้ว เหล่านี้เป็นสามคำถามแยกกัน และแต่ละข้อมีหลักฐานของตัวเอง
ใช้มุมมองสถานะของเจ้าของหรือเครื่องมือวินิจฉัยเพื่อระบุการเชื่อมต่อที่ใช้งานอยู่และตัวตนที่เกตเวย์นำเสนอ การสแกนพอร์ตหรือใบรับรองที่เห็นบนไซต์ที่ไม่เกี่ยวข้องไม่ตอบคำถามทั้งสองข้อ และชื่อสามัญของใบรับรองไม่เหมือนกับตัวระบุระยะไกลที่คาดหวัง
เมื่อชนิดที่บันทึกไว้ไม่ตรงกับสิ่งที่เกตเวย์รองรับอีกต่อไป ให้ขอโปรไฟล์ทดแทนจากเจ้าของ การเปลี่ยนสตริงชนิดไม่ใช่การแปลข้อมูลรับรองข้ามโปรโตคอล และไม่ได้ทำให้รูปแบบการพิสูจน์ตัวตนแบบหนึ่งกลายเป็นอีกแบบ แชร์สรุปผ่านช่องทางสนับสนุนที่ได้รับอนุมัติด้วย เพราะการกำหนดค่าที่ส่งออกอาจมีข้อมูลรับรองและคีย์ส่วนตัวที่คำขอสนับสนุนไม่เคยต้องใช้.