VPN ของ Windows: โปรไฟล์ที่บันทึกไว้เทียบกับสถานะของอินเทอร์เฟซที่ใช้งานอยู่
มุมมองหนึ่งคือการกำหนดค่า อีกมุมมองคือสิ่งที่สแตกนำไปใช้ เปรียบเทียบดัชนี ตระกูล และเส้นทางขณะที่อุโมงค์ทำงาน และเลิกการลบอะแดปเตอร์
VPN ของ Windows ปรากฏในสองตำแหน่งที่ตอบคำถามต่างกัน และการสับสนระหว่างสองตำแหน่งนี้ทำให้ได้การวินิจฉัยที่มั่นใจแต่ผิด โปรไฟล์ที่บันทึกไว้บอกว่ามีคนกำหนดค่าอะไร ส่วนอินเทอร์เฟซที่ใช้งานอยู่บอกว่าสแตกเพิ่งนำอะไรไปใช้ เมื่อการเชื่อมต่อถูกสร้างขึ้นแล้วแต่ทราฟฟิกยังเดินผิดเส้นทาง ต้องอ่านทั้งสองมุมมองตามลำดับนั้น ไม่มีมุมมองใดมุมมองเดียวที่บอกได้ว่าแพ็กเก็ตของแอปพลิเคชันออกจากอุโมงค์หรือไม่
สองมุมมองของอุโมงค์เดียวกัน
มุมมองของโปรไฟล์คือการกำหนดค่า: ที่อยู่เซิร์ฟเวอร์ ชนิดของอุโมงค์ วิธีการพิสูจน์ตัวตน และการตั้งค่าอุโมงค์แบบแยกส่วน โปรไฟล์อาจถูกต้องในขณะที่การเชื่อมต่อไม่สนใจมัน และอาจล้าสมัยในขณะที่การเชื่อมต่อทำงานสมบูรณ์ เพราะไคลเอนต์ที่เชื่อมต่อใหม่ไม่อาจอ่านสิ่งที่คุณแก้ไขซ้ำ มุมมองของอินเทอร์เฟซคือสถานะที่นำไปใช้: มีอะแดปเตอร์ใดอยู่ บรรทุกตระกูลที่อยู่ใด และเมตริกกับสถานะการเชื่อมต่อของมันเป็นอย่างไร มุมมองนี้เปลี่ยนไปเมื่ออุโมงค์เข้ามาและจากไป ซึ่งทำให้มันเป็นที่ที่เหมาะสมสำหรับคำถามเรื่องการกำหนดเส้นทางแบบสด และเป็นที่ที่ไม่เหมาะสมสำหรับคำถามเรื่องการกำหนดค่า
การอ่านทั้งสองมุมมองด้วยกันคือวิธีการทั้งหมด และการอ่านเพียงมุมมองเดียวคือทางที่ผู้คนลงเอยด้วยการลบอะแดปเตอร์ที่แข็งแรง คำสั่งด้านล่างให้ทั้งสองมุมมองโดยไม่เปลี่ยนอะไร
อ่านทั้งสองมุมมองโดยไม่เปลี่ยนอะไร
เริ่มจากโปรไฟล์ที่บันทึกไว้ เพราะนั่นคือข้อเท็จจริงที่ถูกที่สุดในการยืนยัน สังเกตชนิดของอุโมงค์และค่าของอุโมงค์แบบแยกส่วน เพราะทั้งสองอย่างกำหนดว่าปลายทางใดควรเข้าสู่อุโมงค์ ถ้าโปรไฟล์ผิด ให้แก้ไขผ่านพื้นผิวการกำหนดค่าที่รองรับ เพราะไม่มีอะไรในรายการอินเทอร์เฟซที่ซ่อมโปรไฟล์ซึ่งชี้ไปยังเกตเวย์ผิด
Get-VpnConnection | Select-Object Name,ServerAddress,TunnelType,SplitTunneling,ConnectionStatusมุมมองของอินเทอร์เฟซมีรูปร่างต่างออกไป: อุโมงค์หนึ่งอาจกินสองแถวเมื่อมันบรรทุกทั้งสองตระกูลที่อยู่ อ่านดัชนีเป็นตัวตน และอ่านนามแฝงเป็นป้ายที่ใครบางคนเลือก และคาดว่านามแฝงจะเปลี่ยนไประหว่างเวอร์ชันไคลเอนต์
Get-NetIPInterface | Select-Object InterfaceIndex,InterfaceAlias,AddressFamily,ConnectionState,InterfaceMetricการมีอยู่ไม่ใช่หลักฐานของการใช้งาน เพราะอินเทอร์เฟซอาจมีอยู่ เชื่อมต่ออยู่ และยังไม่ใช่ตัวที่เส้นทางไปยังปลายทางของคุณเลือก เก็บเรื่องนี้ไว้ก่อนจะถือว่าอะแดปเตอร์ที่ไม่คุ้นเคยเป็นความผิด ความล้มเหลวสองอย่างนี้ดูเหมือนกันจากภายนอก: โปรไฟล์ที่ถูกต้องพร้อมเส้นทางที่ไม่เคยใช้มัน และโปรไฟล์ที่ผิดพร้อมเส้นทางที่ใช้มัน การซ่อมแซมต่างกันโดยสิ้นเชิง และนั่นคือเหตุผลที่มีส่วนถัดไป
ตามเส้นทางไปยังปลายทาง
ถามสแตกว่าจะเลือกเส้นทางใดสำหรับที่อยู่ที่แอปพลิเคชันติดต่อจริง นั่นคือคำถามที่รายการอินเทอร์เฟซไม่สามารถตอบได้ด้วยตัวเอง
Find-NetRoute -RemoteIPAddress 10.60.20.10 | Select-Object -First 1
Get-NetIPAddress -InterfaceIndex 37 | Select-Object IPAddress,AddressFamily,PrefixLengthคำสั่งแรก รายงานสองฟิลด์ที่ควรอ่าน: นามแฝงอินเทอร์เฟซของแหล่งที่เลือก และฮอปถัดไปสำหรับปลายทางนั้น ดัชนี 37 ในคำสั่งที่สองคือสิ่งที่เอาต์พุตแรกพิมพ์ออกมา ไม่ใช่ค่าคงที่ให้คัดลอก และที่อยู่ 10.60.20.10 เป็นเพียงตัวอย่าง ถ้าแหล่งที่เลือกเป็นของอะแดปเตอร์จริงขณะที่ปลายทางควรอยู่ภายในอุโมงค์ คุณพบปัญหาการเลือกแล้ว เพราะอินเทอร์เฟซ VPN อาจสมบูรณ์ดีและเพียงไม่ได้รับความสำคัญ เมตริกเป็นเพียงส่วนหนึ่งของการตัดสินใจนั้น เพราะความจำเพาะของเส้นทาง นโยบาย และสถานะอินเทอร์เฟซล้วนมีส่วนร่วม
เปรียบเทียบสามสถานะภายใต้เงื่อนไขเดียวกัน
บันทึกรายการอินเทอร์เฟซและเส้นทางที่เลือกก่อนเชื่อมต่อ ขณะเชื่อมต่อ และหลังตัดการเชื่อมต่อ โดยใช้ปลายทางเดียวกันและคำสั่งเดียวกันทุกครั้ง การเปรียบเทียบนั้นแยกอินเทอร์เฟซอุโมงค์ปัจจุบันออกจากอะแดปเตอร์ซ่อนเร้นเก่าที่เหลือจากการถอนการติดตั้ง และออกจากไคลเอนต์ที่สองซึ่งทำงานอยู่ด้วย มันยังบอกด้วยว่าอินเทอร์เฟซอุโมงค์หายไปอย่างสะอาดหรือไม่ เพราะอะแดปเตอร์ที่คงอยู่หลังตัดการเชื่อมต่อเป็นปัญหาที่ต่างจากอันที่ไม่เคยปรากฏเลย หากไม่มีภาพรวมสามภาพ นามแฝงที่ไม่คุ้นเคยทุกรายจะดูเป็นผู้กระทำผิด
เก็บเอาต์พุตทั้งสามไว้กับตั๋ว เพราะเอาต์พุตคำสั่งสองรายดีกว่าคำอธิบายหนึ่งย่อหน้า เพื่อนร่วมงานสามารถเปรียบเทียบได้โดยไม่ต้องทำเซสชันของคุณซ้ำเลย
อย่าลบสิ่งที่คุณยังไม่ได้ระบุ
อะแดปเตอร์ที่ไม่คุ้นเคยมักเป็นของบางอย่าง: ไคลเอนต์ที่ได้รับการจัดการ สวิตช์เสมือน เครือข่ายคอนเทนเนอร์ หรือตัวแทนความปลอดภัย การลบอันหนึ่งอาจเอาส่วนประกอบที่ทำงานอยู่ออกไปและทิ้งอาการเดิมไว้ตรงที่เดิมทุกประการ ถ้าเส้นทางล้าสมัย หาเจ้าของเส้นทางแล้วแก้ไขที่นั่น; ถ้าโปรไฟล์ผิด ให้แก้ไขโปรไฟล์ เอกสาร Get-NetIPInterface แสดงฟิลด์ที่ใช้ข้างต้น รวมถึงคอลัมน์เมตริกและสถานะที่ทำให้การเปรียบเทียบมีความหมาย
ตั้งชื่อวัตถุ หาเจ้าของของมัน แล้วลงมือกับเจ้าของนั้น สิ่งอื่นใดคือการเปลี่ยนชื่อปัญหาแทนการอ่านมัน