Wi-Fi บอกว่าเชื่อมต่อแล้ว แต่ไม่มีอะไรโหลด: รีโซลเวอร์ Mac ที่ค้างเก่า
Ping ทำงาน ไอคอนบอกว่าเชื่อมต่อ แต่การท่องเว็บไม่ทำงาน การแปลงชื่อชี้ไปยังเซิร์ฟเวอร์ที่จากไปแล้ว และรายการที่ปักหมุดไว้ต้องถูกนำออก ไม่ใช่แคช
ping ไปยังที่อยู่แบบตรงตัวแล้วมันตอบกลับ เปิดเว็บไซต์ด้วยชื่อแล้วไม่มีอะไรเกิดขึ้น ขณะที่ไอคอนเครือข่ายยืนยันว่าการเชื่อมต่อปกติดี บน Mac ที่เพิ่งเข้าร่วม VPN การผสมแบบนี้เกือบทุกครั้งหมายความว่าการค้นหาชี้ไปยังเซิร์ฟเวอร์ที่เข้าถึงไม่ได้แล้ว ไม่ใช่เครือข่ายล่ม ที่อยู่เหล่านี้ถูกปักหมุดไว้กับบริการ Wi-Fi ในบางช่วงก่อนหน้านี้ และไม่มีอะไรนำออกเลยตั้งแต่นั้น วินิจฉัยด้วยการตัดตัวเลือกออก แล้วลบรายการที่ปักหมุด
การซ่อมคือการลบ ไม่ใช่การฟลัช และความต่างนี้สำคัญเพราะคำสั่งที่คนส่วนใหญ่ลองก่อนทำสิ่งอื่นโดยสิ้นเชิง
เชื่อมต่อแล้วเป็นข้อความเกี่ยวกับลิงก์
macOS เก็บการกำหนดค่ารีโซลเวอร์แยกตามบริการเครือข่าย ค่าจาก DHCP เป็นแหล่งหนึ่ง ค่าที่พิมพ์เองเป็นอีกแหล่ง และค่าที่โปรไฟล์ผลักมาหรือไคลเอนต์เขียนเป็นแหล่งที่สาม ค่าที่ปักหมุดมีสิทธิ์เหนือกว่าสิ่งที่เครือข่ายเสนอ และไม่มีอะไรในสแตกตรวจสอบซ้ำ เซิร์ฟเวอร์ที่หายไปจึงยังอยู่ในรายการจนกว่าคนจะลบออกหรือบริการถูกสร้างใหม่ตั้งแต่ต้น
นั่นคือเหตุผลที่อุโมงค์ที่จับมือเสร็จแล้วไม่เปลี่ยนอะไรในการค้นหาที่ถูกชี้ผิดทางไปแล้ว VPN เพิ่มรีโซลเวอร์เข้ามา แต่ไม่ได้ตรวจสอบตัวที่กำลังล้มเหลว
แยกชื่อออกจากแพ็กเก็ต
เข้าถึงโฮสต์ด้วยที่อยู่แบบตรงตัวก่อน เมื่อโหลดได้ แพ็กเก็ตปกติดีและรีโซลเวอร์คือตัวปัญหา เมื่อโหลดไม่ได้ ให้หยุดตรงนั้นและถือว่าเป็นปัญหาการกำหนดเส้นทาง เพราะการเปลี่ยน DNS จะเพิ่มตัวแปรเข้าไปในภาพที่สับสนอยู่แล้วเพียงตัวเดียว
ชื่อล้มเหลวในขณะที่ที่อยู่ที่ตรงกันสำเร็จคือนิ้วมือ สังเกตขอบเขตด้วย: ถ้าทุกอย่างล้มเหลวแสดงว่ารายการส่วนกลางเสีย ขณะที่ถ้าเฉพาะโฮสต์ในอุโมงค์ล้มเหลวแสดงว่าเป็นเจ้าของอื่นและการซ่อมที่แคบกว่า
ลบเซิร์ฟเวอร์ที่ปักหมุด
ในการตั้งค่าเครือข่าย เปิดรายละเอียดของบริการ Wi-Fi แล้วสลับไปที่แท็บ DNS ลบแถวเซิร์ฟเวอร์แต่ละแถว ยืนยันการเปลี่ยนแปลง แล้วดูโดเมนค้นหาว่ามีค่าที่คุณไม่เคยเพิ่มหรือไม่ ปล่อยรายการให้ว่าง เชื่อมต่อบริการใหม่ และยืนยันว่าที่อยู่ที่ DHCP จ่ายให้ปรากฏขึ้นเองอีกครั้ง รายการว่างคือสภาวะชั่วคราวที่พิสูจน์ว่าค่าที่ปักหมุดคือปัญหา
เวอร์ชันเก่าซ่อนแผงเดียวกันลึกไปอีกหนึ่งชั้น หลังปุ่มขั้นสูง โดยพฤติกรรมและผลลัพธ์เหมือนกัน
อ่านสภาวะ ไม่ใช่แผง
scutil --dns | head -40 พิมพ์รีโซลเวอร์ที่ macOS ใช้จริง จัดกลุ่มตามขอบเขต และ nslookup เร็ว ๆ ของชื่อภายในที่รู้จักจะบอกว่ามีคำตอบมาถึงหรือไม่ เทียบผลลัพธ์ทั้งสอง: แผงสะอาดแต่ยังมีเซิร์ฟเวอร์เก่าอยู่ในรายการหมายความว่าตัวเขียนอื่นเป็นเจ้าของการตั้งค่านั้น นั่นคือบั๊กอีกตัวพร้อมวิธีแก้ที่ต่างกัน
เมื่อทั้งสองดูสะอาดแต่ชื่อยังล้มเหลว แสดงว่าความผิดย้ายไปที่อื่นแล้ว และคุณไม่ได้ดีบักการกำหนดค่า DNS อีกต่อไป
ใครใส่รายการกลับมา
เซิร์ฟเวอร์ที่กลับมาหลังการลบย่อมมีแหล่งที่มา ตรวจสอบการจัดการอุปกรณ์ว่ามีโปรไฟล์การกำหนดค่าหรือไม่ เพราะโปรไฟล์พา DNS ไปได้และถูกประเมินใหม่ตามกำหนดการของมันเอง ตรวจสอบการตั้งค่าของไคลเอนต์ว่ามีตัวเลือกตั้ง DNS เมื่อเชื่อมต่อหรือไม่ และตัดสินว่ายังสมควรมีที่บนเครื่องนี้หรือไม่ ถ้า VPN ต้องการรีโซลเวอร์ส่วนตัวจริง ๆ ให้จำกัดไว้ที่โดเมนที่มันเป็นเจ้าของ แทนการเขียนลงในรายการส่วนกลางที่ทุกเครือข่ายในอนาคตสืบทอดไป
บันทึกรีโซลเวอร์ที่ตั้งใจไว้และโดเมนที่มันควรตอบ หลังการอัปเดตไคลเอนต์ครั้งถัดไป ให้ตรวจสอบชื่อสาธารณะหนึ่งชื่อและชื่อส่วนตัวหนึ่งชื่อ ซึ่งเร็วกว่าการเดินดูการตั้งค่าซ้ำและจับการถดถอยได้ในขณะที่เครื่องยังอยู่ในมือคุณ
ที่เหลือคือละครการบำรุงรักษา: คำสั่งที่ดูตั้งใจ ไม่เปลี่ยนอะไรที่วัดได้ และทิ้งการค้นหาที่พังไว้ให้คนถัดไป