วิธีแก้ปัญหา DNS ด้วยระบบที่แก้ไขแล้ว?


48

คุณจะค้นหาเซิร์ฟเวอร์ DNS ที่ใช้systemd-resolvedเพื่อการแก้ไขปัญหาอย่างไร

โดยทั่วไปฉันสามารถใช้digและทดสอบเซิร์ฟเวอร์ DNS /etc/resolv.confที่แสดงใน (หรือ windows - ipconfig /all+ nslookup) แต่วิธีการดังกล่าวไม่ทำงานเมื่อ resolv.conf เพียงชี้ไปที่ตัวแก้ไขแบบโลคัลบนที่อยู่วนรอบ วิธีใดที่ใช้ภายใต้การแก้ไขของระบบเพื่อแสดงเซิร์ฟเวอร์ DNS ที่ใช้?


( unboundมีไฟล์ config ที่ฉันสามารถดูได้ dnsmasqทำเช่นกัน แต่ฉันไม่แน่ใจว่าเซิร์ฟเวอร์สามารถเพิ่มแบบไดนามิกโดยไม่มีไฟล์กำหนดค่าได้หรือไม่แม้แต่ NetworkManager ตอนนี้มีnmcliและฉันเห็นคุณสามารถสอบถามnmcli d show wlan0เพื่อแสดงการกำหนดค่า DNS สำหรับอินเทอร์เฟซ )

คำตอบ:


34

ใช้resolvectl status( systemd-resolve --statusเมื่อใช้ systemd รุ่นก่อนหน้า239 ) เพื่อแสดงการตั้งค่า DNS ทั่วโลกและต่อลิงค์ของคุณ


น่าเสียดายใน Ubuntu 16.04.6 ของฉันไม่มีคำสั่ง resolctl และคำสั่ง systemd-edit ไม่มีตัวเลือก "--status"
Marnix A. van Ammers

29

มีประโยชน์มากสำหรับการแก้ไขปัญหาคือ:

journalctl -u systemd-resolved -f

ที่นั่นคุณสามารถเห็นสิ่งที่systemd-resolvedกำลังทำอยู่ ในกรณีของฉันมันไม่ได้ติดต่อเซิร์ฟเวอร์ DNS ที่ถูกรายงานผ่านsystemd-resolve --statusเลย หากมันทำสิ่งแปลก ๆ เช่นนั้นบางครั้งการรีสตาร์ทผ่านsudo systemctl restart systemd-resolvedก็เป็นความคิดที่ดี

แก้ไข: เพื่อให้ได้รับข้อมูลเพิ่มเติมจากresolvedคุณต้องใส่

[Service]
Environment=SYSTEMD_LOG_LEVEL=debug

เข้าไปในoverride.confของsystemd-resolvedผ่าน

sudo systemctl edit systemd-resolved

3
อาจจะน่าสังเกตว่าหลังจากใช้งานไปsudo systemctl edit systemd-resolvedแล้วดูเหมือนว่าsudo systemctl restart systemd-resolvedจะต้องมีการเรียกใช้เพื่อให้การตั้งค่าใหม่ถูกนำไปใช้ ขอบคุณ!
bmaupin

หลังจากหลายปีที่ผ่านมาโดยไม่ต้องจัดการกับ windows ไม่มากคุณจะได้รับ "ถ้ามันทำสิ่งแปลก ๆ เช่นนั้นแล้วรีสตาร์ทผ่าน .. " คำแนะนำและคุณรู้ว่าคุณกลับไปที่ที่คุณเริ่ม ถอนหายใจ
Jaap Versteegh
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.