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

ขั้นตอนที่ 1: อ่านบริการที่โทรศัพท์สร้างขึ้นจริง

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

คำแนะนำของ Apple เกี่ยวกับฮอตสปอตส่วนบุคคล อธิบายกลไก: ตราบใดที่ฮอตสปอตส่วนบุคคลเปิดอยู่บนโทรศัพท์ การเสียบผ่าน USB อาจทำให้ Mac ใช้การเชื่อมต่อเซลลูลาร์ของโทรศัพท์ แม้คุณตั้งใจเพียงชาร์จ นี่ไม่ใช่ข้อบกพร่องของไคลเอนต์ VPN ตารางเส้นทางกำลังตามบริการที่ขึ้นมาก่อน Wi-Fi

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

ขั้นตอนที่ 2: ตรวจสอบว่า VPN ปลายทางใช้เส้นทางใด

อ่านเส้นทางไปยังที่อยู่ที่แปลงแล้วของเซิร์ฟเวอร์ VPN ไม่ใช่ไปยังเว็บไซต์ route -n get อ่านได้อย่างเดียวและพิมพ์อินเทอร์เฟซกับเกตเวย์ที่เคอร์เนลจะใช้ และทั้งสองบรรทัดสำคัญ

scutil --dns | head -20
route -n get 203.0.113.10

ที่อยู่ด้านบนเป็นตัวยึดตำแหน่งสำหรับเอกสาร แทนที่ด้วยปลายทางที่ไคลเอนต์ของคุณแสดง และใช้ route -n get -inet6 สำหรับปลายทาง IPv6 เปรียบเทียบผลลัพธ์เมื่อถอดและเสียบโทรศัพท์ และอย่าเพิ่มหรือลบเส้นทางระหว่างการอ่านสองครั้ง ถ้าอินเทอร์เฟซเปลี่ยนจาก en0 เป็นอินเทอร์เฟซ iPhone USB แสดงว่าเส้นทางฮอตสปอตชนะการค้นหา และการเชื่อมต่อภายนอกของ VPN กำลังวิ่งบนเซลลูลาร์

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

ขั้นตอนที่ 3: แยกฮอตสปอตออกจากลิงก์สื่อสารอุปกรณ์

Xcode 15 และใหม่กว่าคุยกับอุปกรณ์ที่ต่อ USB ผ่านช่องทางเครือข่ายซึ่งรวม IPv6 แบบลิงก์โลคอล ดังนั้น Mac สำหรับพัฒนาอาจแสดงอินเทอร์เฟซเพิ่มเติมที่ไม่เกี่ยวกับการเข้าถึงอินเทอร์เน็ต บันทึกเทคนิค TN3158 ของ Apple เอกสารพฤติกรรมนี้และเตือนว่า VPN หรือการกรองความปลอดภัยอาจรบกวน นี่คือด้านกลับของปัญหาฮอตสปอต VPN ไม่พังเพราะโทรศัพท์ให้อินเทอร์เน็ต แต่การเชื่อมต่ออุปกรณ์พังเพราะ VPN ดักจับมัน

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

ifconfig | grep -A4 -E '^en[0-9]+:'
netstat -rn -f inet6 | head

อย่าตัดสินจากชื่ออินเทอร์เฟซอย่างเดียว macOS สร้างและทำลายอินเทอร์เฟซเหล่านี้เมื่ออุปกรณ์เชื่อมต่อ และหมายเลข en ถูกจัดสรรขณะรันไทม์ ดังนั้น Mac เดียวกันอาจแสดงหมายเลขอื่นหลังรีบูตหรือสลับสาย

ขั้นตอนที่ 4: ทำซ้ำความล้มเหลวด้วยตัวแปรเดียวต่อครั้ง

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

ถ้า VPN ล้มเหลวเฉพาะสถานะฮอตสปอต ให้แยกโทรศัพท์ออกจากเส้นทางนั้น ปิดฮอตสปอตส่วนบุคคลขณะชาร์จ หรือย้ายบริการ iPhone USB ลงใต้ Wi-Fi ในลำดับบริการ ถ้าล้มเหลวในทุกสถานะที่เสียบ รวมถึงเมื่อปิดฮอตสปอต ให้ดูว่าไคลเอนต์จัดการการเปลี่ยนเครือข่ายอย่างไร ไคลเอนต์บางตัวรื้ออุโมงค์เมื่อบริการหลักเปลี่ยนและต้องเชื่อมต่อใหม่ นั่นคือพฤติกรรมของไคลเอนต์ ไม่ใช่ข้อบกพร่องของโทรศัพท์

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

ขั้นตอนที่ 5: ตัดสินใจว่าจะเก็บอะไรและจะตรวจสอบอะไร

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

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

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

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