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

การซ่อมคือการลบ ไม่ใช่การฟลัช และความต่างนี้สำคัญเพราะคำสั่งที่คนส่วนใหญ่ลองก่อนทำสิ่งอื่นโดยสิ้นเชิง

เชื่อมต่อแล้วเป็นข้อความเกี่ยวกับลิงก์

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

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

แยกชื่อออกจากแพ็กเก็ต

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

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

ลบเซิร์ฟเวอร์ที่ปักหมุด

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

เวอร์ชันเก่าซ่อนแผงเดียวกันลึกไปอีกหนึ่งชั้น หลังปุ่มขั้นสูง โดยพฤติกรรมและผลลัพธ์เหมือนกัน

อ่านสภาวะ ไม่ใช่แผง

scutil --dns | head -40 พิมพ์รีโซลเวอร์ที่ macOS ใช้จริง จัดกลุ่มตามขอบเขต และ nslookup เร็ว ๆ ของชื่อภายในที่รู้จักจะบอกว่ามีคำตอบมาถึงหรือไม่ เทียบผลลัพธ์ทั้งสอง: แผงสะอาดแต่ยังมีเซิร์ฟเวอร์เก่าอยู่ในรายการหมายความว่าตัวเขียนอื่นเป็นเจ้าของการตั้งค่านั้น นั่นคือบั๊กอีกตัวพร้อมวิธีแก้ที่ต่างกัน

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

ใครใส่รายการกลับมา

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

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

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

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