การเปิดอุโมงค์ไม่เหมือนกับการติดตั้งค่า DNS ของมัน OpenConnect เจรจา และตัวช่วยฝั่ง Windows เป็นผู้ใช้ค่า การเว้นว่างระหว่างสองขั้นตอนนี้อธิบายความล้มเหลวของชื่อส่วนตัวส่วนใหญ่ในไคลเอนต์นี้ และตัวช่วยแทบไม่เคยเป็นหน้าการตั้งค่า VPN ของ Windows

แยกสิ่งที่เกตเวย์เสนอออกจากสิ่งที่ Windows ติดตั้ง

ไคลเอนต์ส่งข้อมูลการเชื่อมต่อให้อินเทอร์เฟซสคริปต์ และรุ่น Unix กับ Windows เป็นโปรแกรมแยกกัน บน Windows การใช้งานมักเป็นตัวช่วย JavaScript ที่อ่านตัวแปรอย่างเซิร์ฟเวอร์ DNS ภายในและโดเมนภายในก่อนจะแตะอะแดปเตอร์ใด ๆ ไม่มีอะไรในอุโมงค์เองที่เขียนสถานะของตัวแก้ไขชื่อ

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

StageWhat exists thereWhere you see it
NegotiatedInternal DNS address and domain pushed by the gatewayClient log or helper input
InstalledAdapter DNS entry, connection suffix, or namespace ruleAdapter and policy queries
SelectedResolver Windows uses for one specific queryThe failing application

เปลือก GUI อาจมาพร้อมสำเนาไคลเอนต์และตัวช่วยของตัวเอง ดังนั้น openconnect.exe ตัวที่สองที่อื่นบนดิสก์จึงไม่ได้พิสูจน์อะไร ค้นหาไฟล์ปฏิบัติการที่เริ่มเซสชันก่อนที่คุณจะตัดสินการกำหนดค่าของมัน

อ่านสถานะของตัวแก้ไขชื่อโดยไม่เปลี่ยนมัน

คำสั่งอ่านอย่างเดียวสามคำสั่งครอบคลุมความสับสนปกติ และแต่ละคำสั่งตอบคำถามที่ต่างกัน:

Get-DnsClientServerAddress -AddressFamily IPv4
Get-DnsClient | Select-Object InterfaceAlias, ConnectionSpecificSuffix
Get-DnsClientNrptPolicy -Effective

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

เริ่มด้วยชื่อที่คุณสมบัติครบถ้วน หาก FQDN แก้ได้แต่ชื่อสั้นแก้ไม่ได้ ช่องว่างคือส่วนต่อท้ายหรือรายการค้นหา ไม่ใช่ที่อยู่เซิร์ฟเวอร์

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

ระบุองค์ประกอบที่เป็นเจ้าของการเชื่อมต่อ

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

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

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

ซ่อมเจ้าของ ไม่ใช่อะแดปเตอร์

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

สร้างสถานะใหม่ผ่านเส้นทางที่รองรับ แล้วตรวจสอบวงจรเต็ม: เชื่อมต่อ แก้ FQDN ส่วนตัว เปิดบริการ ตัดการเชื่อมต่อ และยืนยันว่าอะแดปเตอร์กลับมาพร้อมเซิร์ฟเวอร์เดิม

ตรวจสอบแอปพลิเคชันที่ล้มเหลวจริง

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

หากคำสั่งระบบถูกแต่แอปพลิเคชันผิด ข้อบกพร่องที่เหลืออยู่ในการกำหนดค่า DNS ของแอปพลิเคชันนั้น ไม่ใช่ในเส้นทาง VPN

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