แอป iPhone หาอุปกรณ์ในเครือข่ายท้องถิ่นไม่เจอขณะเปิด VPN
ประตูสองบานตัดสินว่าแอป iPhone จะเข้าถึงเครื่องพิมพ์หรือทีวีผ่าน VPN ได้หรือไม่: สิทธิ์เครือข่ายท้องถิ่นและเส้นทางของทันเนลเอง ตรวจตามลำดับ
แอปเครื่องพิมพ์ของคุณแสดงรายการว่างเปล่า แอปกล้องรายงานว่าไม่พบอุปกรณ์ และปุ่มแคสต์ในแอปวิดีโอหมุนไปเรื่อย ๆ จนกว่าจะยอมแพ้ ไอคอน VPN อยู่บนแถบสถานะ โทรศัพท์มีสัญญาณเต็ม และ Safari โหลดหน้าเว็บได้ตามปกติ จึงดูเหมือนไม่มีอะไรเสียในตัวการเชื่อมต่อ จากนั้นคุณเปิดการตั้งค่าของแอปเองและไม่พบอะไรให้สลับ
ผมเจอกำแพงนี้พอดีกับเครื่องพิมพ์ฉลากบนเครือข่ายที่บ้าน: แอปไม่เคยได้รับอนุญาตให้เข้าถึงเครือข่ายท้องถิ่น และโปรไฟล์ที่ผมทดสอบเป็นทันเนลเต็มที่กลืนทุกแพ็กเก็ตที่ส่งไปยัง 192.168.1.0/24 ประตูสองบานที่เป็นอิสระต่อกันถูกปิด และการเปิดบานเดียวก็ไม่ทำให้อาการหาย
สองประตูระหว่างแอปหนึ่งตัวกับเครื่องพิมพ์หนึ่งเครื่อง
ประตูแรกคือการตัดสินใจด้านความเป็นส่วนตัวที่เป็นของระบบปฏิบัติการ ไม่ใช่ของแอป iOS ตัดสินว่าแอปจะส่งทราฟฟิกไปยังที่อยู่บนเครือข่ายท้องถิ่นได้หรือไม่ และถามผู้ใช้ในครั้งแรกที่แอปลอง ประตูที่สองคือตารางเส้นทาง แพ็กเก็ตที่มุ่งไปยัง 192.168.1.50 จะออกทาง Wi-Fi ไปยังเครื่องพิมพ์ หรือเข้าสู่ทันเนล และตัวเลือกนั้นเขียนอยู่ในโปรไฟล์ VPN
ประตูทั้งสองล้มเหลวในรูปแบบที่ต่างกัน และนั่นคือสิ่งที่ทำให้วินิจฉัยได้ สิทธิ์ที่ถูกปฏิเสธฆ่าการเรียกซ็อกเก็ตของแอปเอง แอปจึงไม่มีอะไรจะรายงานและถอยกลับไปสู่สถานะว่างทั่วไป ปัญหาเส้นทางดูเหมือนหมดเวลา เพราะแพ็กเก็ตออกจากโทรศัพท์ไปแล้วและตายอยู่ที่ไหนสักแห่งอีกฝั่ง หน้าจอว่างเหมือนกัน แต่การซ่อมต่างกัน
อ่านสถานะสิทธิ์ก่อนแตะ VPN
เปิดการตั้งค่า จากนั้นความเป็นส่วนตัวและความปลอดภัย จากนั้นเครือข่ายท้องถิ่น แอปทุกตัวที่ขอเข้าถึงจะปรากฏที่นั่นพร้อมสวิตช์ Apple ย้ายและเปลี่ยนชื่อบางส่วนของหน้าจอนี้ระหว่าง iOS 14 ถึง iOS 18 ดังนั้นถ้ารายการไม่อยู่ในที่ที่คุณคาด ให้พิมพ์เครือข่ายท้องถิ่นในช่องค้นหาของการตั้งค่าแทนที่จะไล่ดูต้นไม้เมนู
สิ่งที่จับคนส่วนใหญ่คือคำขอที่ถามเพียงครั้งเดียว iOS จะถามเมื่อแอปแตะเครือข่ายท้องถิ่นเป็นครั้งแรก และเฉพาะตอนนั้น กดไม่อนุญาตแล้วคำขอจะไม่กลับมาอีกในการเปิดครั้งถัดไป สวิตช์คือทางกลับเพียงทางเดียว และเริ่มต้นในสถานะปิด การติดตั้งแอปใหม่จะรีเซ็ตการตัดสินใจ นี่คือเหตุผลที่บางกระทู้แก้ปัญหาอ้างว่าการติดตั้งใหม่แก้การค้นพบได้ สำเร็จก็จริง โดยการลบการปฏิเสธทิ้ง
บน iPhone ที่ถูกกำกับดูแลหรือถูกจัดการ สวิตช์บางครั้งเป็นสีเทา เพย์โหลดการตั้งค่าความเป็นส่วนตัวที่ MDM ส่งมาสามารถกำหนดล่วงหน้าหรือล็อกการเข้าถึงเครือข่ายท้องถิ่นได้ และสวิตช์ที่ถูกล็อกและปิดอยู่หมายความว่าการซ่อมคือการเปลี่ยนนโยบาย ไม่ใช่เปลี่ยนโทรศัพท์ Apple เอกสารคำขอและสวิตช์รายแอปไว้ที่นี่: support.apple.com/en-us/102229.
ตรวจสอบว่าทันเนลกำหนดเส้นทางอะไรจริง ๆ
ทันเนลเต็มใช้ 0.0.0.0/0 และช่วงส่วนตัวทั้งหมดไปด้วย แพ็กเก็ตสำหรับ 10.x, 172.16.0.0/12 และ 192.168.x.x จะเดินทางไปยังเซิร์ฟเวอร์ ซึ่งมักทิ้งมันหรือแปลเป็นซับเน็ตของตัวเอง เครื่องพิมพ์จึงเข้าถึงไม่ได้แม้ให้สิทธิ์แล้ว ทันเนลแยกทำตรงกันข้าม แต่ เฉพาะช่วงที่โปรไฟล์ระบุไว้.
โปรไฟล์ IKEv2 ที่สร้างด้วย Apple Configurator หรือแจกจ่ายเป็น .mobileconfig แสดงสิ่งนี้เป็นการตั้งค่าส่งทราฟฟิกทั้งหมด บวกกับรายการเครือข่ายท้องถิ่นที่ต้องยกเว้นอย่างชัดเจนเมื่อแยก แอปไคลเอนต์ที่สร้างบน NEPacketTunnelProvider แสดงการตัดสินใจเดียวกันผ่าน includedRoutes ทั้งสองอย่างมองไม่เห็นจากแถบสถานะ และทั้งคู่เขียนทับสิ่งที่แอปคาดว่าจะเห็น
นี่คือการทดสอบที่ผมใช้ เมื่อ VPN เชื่อมต่ออยู่ ให้เปิดหน้าผู้ดูแลเราเตอร์ด้วยที่อยู่ LAN ของมันใน Safari ถ้าเว็บสาธารณะโหลดได้ในขณะที่หน้านั้นหมดเวลา แสดงว่าช่วงส่วนตัวของคุณอยู่ในทันเนล ถ้าหน้านั้นโหลดได้ ทราฟฟิกท้องถิ่นยังออกทาง Wi-Fi และตัวบล็อกอยู่ที่อื่น
จับคู่อาการกับประตู
แอปสองตัวบนโทรศัพท์เดียวกันอาจไม่ตรงกัน เพราะสิทธิ์ให้เป็นรายแอปในขณะที่เส้นทางให้เป็นรายโปรไฟล์ เปรียบเทียบว่าอะไรล้มเหลวก่อนจะเปลี่ยนอะไร รูปแบบมักบอกชื่อประตูเอง
| What you see | Gate | Next step |
|---|---|---|
| Device list stays empty, Local Network switch is off | Permission | Enable the switch, force-quit the app, reopen it |
| Switch is on, router page times out, public sites load | Routing | Exclude the local range in the profile, or move to a split tunnel |
| Both pass, direct IP works, discovery stays empty | Link-local multicast | Enter the device address by hand, or check profile discovery support |
| Works by IP address, never by name such as printer.local | Name resolution | Fix mDNS reachability or use the numeric address |
| Everything fails with the VPN off, on hotel Wi-Fi | Client isolation | Change network, do not change permissions |
แถว mDNS ควรมีหมายเหตุ ทราฟฟิกการค้นพบของ Bonjour และโปรโตคอลแคสต์ส่วนใหญ่ส่งเป็นมัลติแคสต์ไปยัง 224.0.0.251 และ ff02::fb ด้วยขอบเขตเชื่อมโยงท้องถิ่น และทันเนลที่กำหนดเส้นทางไม่พามันไป นี่คือเหตุผลที่อุปกรณ์ตอบสนองการเชื่อมต่อโดยตรงได้แต่ไม่เคยปรากฏในรายการ
ทดสอบการกระทำ ไม่ใช่ไอคอน
หลังจากสลับสวิตช์เครือข่ายท้องถิ่นแล้ว ให้บังคับปิดแอปจากตัวสลับแอปแล้วเปิดใหม่ กระบวนการที่กำลังทำงานอยู่อาจถือสถานะถูกปฏิเสธจากก่อนการเปลี่ยนแปลงไว้ และแอปที่ยังคืนรายการว่างจะดูเหมือนเดิมไม่ว่าสิทธิ์จะทำงานหรือไม่ จากนั้นทำการกระทำที่เป็นรูปธรรมหนึ่งอย่าง เช่น พิมพ์หน้าทดสอบหรือเริ่มวิดีโอ แทนที่จะรอให้รายการอุปกรณ์เต็ม
ตรึงโปรไฟล์ VPN ให้คงที่ตลอดการเปรียบเทียบ ถ้าการค้นพบเริ่มทำงานหลังคุณตัดการเชื่อมต่อเท่านั้น คุณก็ได้เรียนรู้ว่าทันเนลเป็นตัวปัญหา ไม่ใช่สิทธิ์ เปลี่ยนตัวแปรทีละตัวต่อการลองหนึ่งครั้ง ไม่อย่างนั้นรอบถัดไปจะไม่บอกอะไรคุณเลย
แก้ตามลำดับนี้
ลำดับด้านล่างคือลำดับที่ผมทำตามตอนนี้ เพราะมันไม่เคยทิ้งโทรศัพท์ไว้ในสภาพที่เปลี่ยนไปครึ่งเดียวซึ่งการทดสอบถัดไปอ่านไม่ออก
- ยืนยันว่าแอปอยู่ในรายการภายใต้ความเป็นส่วนตัวและความปลอดภัย เครือข่ายท้องถิ่น และสวิตช์เปิดอยู่
- บังคับปิด เปิดแอปใหม่ แล้วลองการกระทำจริงอีกครั้งหนึ่ง
- เปิดหน้าเราเตอร์ด้วยที่อยู่ LAN ขณะเชื่อมต่ออยู่ เพื่อพิสูจน์ว่าช่วงส่วนตัวผ่านทันเนลหรือไม่
- ถ้าผ่าน ให้แก้ไขโปรไฟล์เพื่อยกเว้นเครือข่ายท้องถิ่น หรือขอให้เจ้าของโปรไฟล์ทำ
- ถ้าสวิตช์เป็นสีเทา ให้ถือว่าอุปกรณ์ถูกจัดการและส่งคำขอไปยังผู้ดูแลระบบ
โดยปกติมีเพียงข้อเดียวที่ใช้ได้ ถ้าไม่มีข้อใดเปลี่ยนผลลัพธ์ ผู้ต้องสงสัยที่เหลือคือเครือข่ายเอง เช่น การแยกจุดเข้าใช้งานหรือรายการไคลเอนต์ที่อนุญาตซึ่งผูกกับที่อยู่ Wi-Fi และตารางการจับคู่ด้านบนชี้ว่าข้อใด