ลด 50% ทุกแพ็กเกจ เวลาจำกัด เริ่มต้นที่ $2.48/mo
อ่าน 12 นาที
ความปลอดภัยและเครือข่าย

Temporary Failure in Name Resolution คืออะไร และแก้ไขอย่างไร?

เรกซา ไซรัส By เรกซา ไซรัส อ่าน 12 นาที อัปเดต: 3 กุมภาพันธ์ 2026
ภาพประกอบคู่มือแก้ปัญหา DNS พร้อมสัญลักษณ์เตือนและเซิร์ฟเวอร์สีฟ้าบนพื้นหลังมืด สำหรับข้อผิดพลาด Name Resolution ของ Linux

ขณะใช้งาน Linux คุณอาจพบข้อผิดพลาด temporary failure in name resolution เมื่อพยายามเข้าถึงเว็บไซต์ อัปเดตแพ็กเกจ หรือรันงานที่ต้องใช้การเชื่อมต่ออินเทอร์เน็ต ข้อผิดพลาดนี้หมายความว่าระบบของคุณไม่สามารถแปลงชื่อโดเมนเป็น IP address ได้ ทำให้การดำเนินการทางเครือข่ายล้มเหลว

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

Temporary Failure in Name Resolution หมายความว่าอะไร?

ข้อผิดพลาด temporary failure in name resolution ทำให้ระบบ Linux ของคุณไม่สามารถเชื่อมต่ออินเทอร์เน็ตได้ตามปกติ เมื่อเกิดปัญหานี้ คุณจะเข้าถึงเว็บไซต์หรือใช้แอปพลิเคชันที่ต้องใช้การเชื่อมต่ออินเทอร์เน็ตไม่ได้

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

คุณมักจะเห็นข้อผิดพลาดนี้เมื่อ ping เว็บไซต์:

หน้าต่าง Terminal แสดงคำสั่ง ping ไปยัง google.com และได้รับข้อความแสดงข้อผิดพลาด "Temporary failure in name resolution" เป็นตัวอักษรสีแดง

ping google.com

ping: google.com: Temporary failure in name resolution

วิธีแก้ไข Temporary Failure in Name Resolution

มีหลายวิธีในการแก้ปัญหานี้ ขึ้นอยู่กับสาเหตุที่แท้จริง มาดูวิธีแก้ไขหลักๆ กัน

วิธีที่ 1: ตรวจสอบการเชื่อมต่ออินเทอร์เน็ต

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

คุณสามารถทดสอบการเชื่อมต่อเบื้องต้นได้โดย ping ไปยัง IP address โดยตรง:

ping -c 4 8.8.8.8

คำสั่งนี้จะส่ง packet สี่ชุดไปยัง DNS server สาธารณะของ Google หากได้รับการตอบกลับ แสดงว่าการเชื่อมต่ออินเทอร์เน็ตของคุณทำงานปกติ

หากเห็นข้อความ "Request timed out" หรือ "Network unreachable" แสดงว่าคุณมีปัญหาการเชื่อมต่อทั่วไปที่ไม่เกี่ยวข้องกับ DNS

Terminal แบบแยกหน้าจอเปรียบเทียบการ ping ที่ล้มเหลวไปยังโดเมน Google.com กับการ ping ที่สำเร็จไปยัง IP address 8.8.8.8 ของ Google

หากแอปพลิเคชันสามารถเชื่อมต่ออินเทอร์เน็ตได้ตามปกติ ให้ดำเนินการตามวิธีถัดไป

วิธีที่ 2: ไฟล์ resolv.conf ตั้งค่าไม่ถูกต้อง

ค่า /etc/resolv.conf ไฟล์นี้เก็บรายชื่อ DNS server ที่ระบบของคุณใช้งาน หากไฟล์นี้มี IP address ที่ผิด คุณจะเชื่อมต่อเว็บไซต์ไม่ได้

ใน Ubuntu หลายระบบ ไฟล์นี้เป็น link ที่ชี้ไปยังไฟล์ dynamic ที่จัดการโดย systemd-resolved และมักมีคำเตือนว่า "Do not edit" หากคุณแก้ไขไฟล์นี้โดยตรง การเปลี่ยนแปลงอาจอยู่ได้เพียงไม่กี่นาที เพราะระบบจะเขียนทับเมื่ออัปเดตการตั้งค่าเครือข่ายหรือรีสตาร์ท

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

ตรวจสอบการตั้งค่า DNS ปัจจุบัน

ตรวจสอบการตั้งค่า DNS ของคุณโดยไม่ต้องเปลี่ยนแปลงก่อน:

cat /etc/resolv.conf

หากไม่เห็น nameserver ที่ถูกต้อง แสดงว่าคุณพบสาเหตุของปัญหาแล้ว

ทดสอบชั่วคราว

คุณสามารถเพิ่มเซิร์ฟเวอร์ของ Google เพื่อทดสอบได้อย่างรวดเร็ว

nameserver 8.8.8.8

nameserver 8.8.4.4

หรืออีกทางเลือกหนึ่ง คุณสามารถใช้เซิร์ฟเวอร์ DNS ของ Cloudflare ได้เช่นกัน:

โปรแกรมแก้ไขข้อความในเทอร์มินัลแสดงไฟล์การตั้งค่า resolv.conf พร้อม Google DNS nameservers รายการ 8.8.8.8 และ 8.8.4.4 สำหรับระบบ Ubuntu 

nameserver 1.1.1.1

nameserver 1.0.0.1

นี่คือตารางเปรียบเทียบเซิร์ฟเวอร์ DNS สาธารณะยอดนิยม:

แผนภูมิเปรียบเทียบผู้ให้บริการ DNS ยอดนิยมสี่ราย ได้แก่ Google DNS, Cloudflare, Quad9 และ OpenDNS พร้อมข้อมูล IP address และคุณสมบัติของแต่ละบริการ

ผู้ให้บริการ DNS DNS หลัก DNS รอง คุณสมบัติหลัก
Google DNS 8.8.8.8 8.8.4.4 ความพร้อมใช้งานสูง ครอบคลุมทั่วโลก
Cloudflare 1.1.1.1 1.0.0.1 เน้นความเป็นส่วนตัว ไม่บันทึก IP
Quad9 9.9.9.9 149.112.112.112 บล็อกโดเมนที่เป็นอันตรายที่รู้จัก
OpenDNS 208.67.222.222 208.67.220.220 การป้องกันฟิชชิ่ง และการกรองเนื้อหา

แต่การเปลี่ยนแปลงนี้ไม่ถาวร ระบบจะล้างค่าเหล่านี้ทิ้ง หากต้องการแก้ไขอย่างถาวรบน Ubuntu คุณต้องตั้งค่า systemd-resolved หรือ Netplan โดยเราได้อธิบายขั้นตอนเหล่านี้ไว้ในหัวข้อเฉพาะด้านล่าง

ตรวจสอบสถานะของ Service Systemd-Resolved

หากเนมเซิร์ฟเวอร์ของคุณดูถูกต้องแล้ว แต่การแปลงชื่อโดเมนยังล้มเหลวอยู่ ให้ตรวจสอบที่ systemd-resolved บริการ บริการนี้จัดการการค้นหา DNS ในเครื่องบน Linux สมัยใหม่ส่วนใหญ่ ใช้คำสั่งนี้เพื่อตรวจสอบว่ากำลังทำงานอยู่หรือไม่: sudo systemctl status systemd-resolved

หากผลลัพธ์แสดงว่าเซอร์วิสไม่ได้ทำงาน ให้เริ่มต้นใหม่ได้เลย

sudo systemctl start systemd-resolved

ขั้นตอนนี้เป็นสิ่งที่ผู้ใช้ Ubuntu ต้องรู้ เพราะการหยุดชะงักของบริการมักทำให้เกิดปัญหา name resolution

แนวทางที่ 3: การตั้งค่า Firewall

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

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

ตั้งค่าไฟร์วอลล์ UFW

ระบบปฏิบัติการส่วนใหญ่ทั้ง Debian และ Ubuntu ใช้ ไฟร์วอลล์ UFW. คุณต้องอนุญาตทราฟฟิก DNS บนพอร์ต 53 (ทั้ง UDP และ TCP):

sudo ufw allow 53/udp

sudo ufw allow 53/tcp

DNS ใช้ UDP สำหรับ query ทั่วไป และ TCP สำหรับการถ่ายโอนข้อมูลขนาดใหญ่

หลังจากเปิดพอร์ตเหล่านี้แล้ว ให้โหลด UFW ใหม่เพื่อให้การเปลี่ยนแปลงมีผล:

ไดอะแกรม firewall ของระบบ Ubuntu แสดงการตั้งค่า UFW ที่อนุญาตให้ทราฟฟิก DNS ผ่านพอร์ต 43 และ 53 ไปยังเซิร์ฟเวอร์ DNS บนคลาวด์

sudo ufw reload

ตั้งค่า Firewalld

สำหรับระบบที่ใช้ CentOS และ Red Hat ที่ใช้ firewalld ให้เปิดพอร์ตที่จำเป็น:

sudo firewall-cmd --add-port=53/udp --permanent

sudo firewall-cmd --add-port=53/tcp --permanent

โหลด firewall ใหม่เพื่อให้การเปลี่ยนแปลงมีผล:

sudo firewall-cmd --reload

วิธีแก้ไขที่ 4: ล้าง DNS Cache

DNS cache จะเก็บ IP address ไว้ในเครื่องเพื่อให้การค้นหาครั้งถัดไปเร็วขึ้น อย่างไรก็ตาม ข้อมูลใน DNS cache ที่ล้าสมัยหรือเสียหายอาจทำให้คุณเข้าถึงเว็บไซต์ที่เปลี่ยน domain name หรือผู้ให้บริการ hosting ไม่ได้ ซึ่งเป็นสาเหตุของ name resolution error ชั่วคราว

คุณเท่านั้น ล้าง DNS cache เมื่อต้องการบังคับให้ระบบดึงข้อมูลใหม่จากเซิร์ฟเวอร์ ใช้ขั้นตอนนี้เมื่อพบ resolution error

ภาพแสดงขั้นตอนการล้าง DNS cache โดยใช้คำสั่งรีสตาร์ท service systemd-resolved พร้อมบล็อกข้อมูล cache ที่กำลังได้รับการรีเฟรช

ตรวจสอบ DNS Service ของคุณ

Service ที่ติดตั้งอาจแตกต่างกันไป ตรวจสอบว่า service ใดกำลังทำงานอยู่ก่อน เพื่อหลีกเลี่ยงข้อผิดพลาด "unit not found":

sudo systemctl is-active nscd

sudo systemctl is-active dnsmasq

ล้าง nscd

If nscd ทำงานอยู่ บูตใหม่:

sudo systemctl restart nscd.service

ล้าง dnsmasq

If dnsmasq ทำงานอยู่ บูตใหม่:

sudo systemctl restart dnsmasq.service

ล้าง Cache บน Ubuntu (systemd-resolved)

สำหรับระบบที่ใช้ systemd-resolved:

sudo systemctl restart systemd-resolved.service

หรือใช้คำสั่ง resolvectl:

sudo resolvectl flush-caches

ทำความเข้าใจกับ Name Resolution

เมื่อคุณพิมพ์ที่อยู่เว็บไซต์อย่าง cloudzy.com คอมพิวเตอร์จะต้องแปลง domain ที่มนุษย์อ่านได้นี้เป็น IP address (เช่น 172.66.40.212) เพื่อระบุตำแหน่งของเว็บไซต์บนอินเทอร์เน็ต กระบวนการแปลงนี้เรียกว่า name resolution และเซิร์ฟเวอร์ DNS เป็นตัวจัดการ

ข้อผิดพลาด temporary failure in name resolution เกิดขึ้นเมื่อระบบ Linux ของคุณไม่สามารถติดต่อเซิร์ฟเวอร์ DNS เพื่อดึง IP address ของเว็บไซต์ได้ คำว่า "temporary" บ่งบอกว่านี่ไม่ใช่ความล้มเหลวถาวร ส่วนใหญ่มักเกิดจากปัญหาการกำหนดค่าหรือการเชื่อมต่อที่แก้ไขได้

เซิร์ฟเวอร์ DNS แปลง domain name เป็น IP address ที่คอมพิวเตอร์ใช้ในการสื่อสาร Google Public DNS รองรับ กว่าหนึ่งล้านล้าน คำขอต่อวัน ซึ่งสะท้อนให้เห็นถึงขนาดของบริการอินเทอร์เน็ตที่สำคัญนี้

ในทำนองเดียวกัน resolver 1.1.1.1 ของ Cloudflare ประมวลผล เกือบ 2 ล้านล้านคำขอต่อวันปริมาณนี้พิสูจน์ให้เห็นว่า DNS เป็นรากฐานสำคัญของอินเทอร์เน็ต

อะไรคือสาเหตุของ Temporary Failure in Name Resolution?

การระบุสาเหตุที่แท้จริงคือก้าวแรกในการแก้ไขข้อผิดพลาด temporary failure in name resolution บน Ubuntu มีหลายปัจจัยที่อาจทำให้เกิดปัญหานี้

ไดอะแกรมสี่ช่องแสดงสาเหตุทั่วไปของข้อผิดพลาด DNS ได้แก่ สายอีเธอร์เน็ตหลุด เซิร์ฟเวอร์ DNS ตั้งค่าผิด ไฟร์วอลล์บล็อก port 53 และแคชเสียหาย

ปัญหาการเชื่อมต่ออินเทอร์เน็ต

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

ปัญหาการตั้งค่า DNS

การตั้งค่า DNS ที่ผิดพลาดเป็นหนึ่งในสาเหตุที่พบบ่อยที่สุดของข้อผิดพลาดนี้:

  • เซิร์ฟเวอร์ DNS ไม่ตอบสนอง: เซิร์ฟเวอร์ DNS ที่ระบบพยายามเชื่อมต่ออาจไม่พร้อมใช้งาน
  • การตั้งค่า DNS resolution ผิดพลาด: กลไก DNS resolution อาจถูกตั้งค่าไม่ถูกต้อง
  • แคช DNS ล้าสมัย: รายการแคช DNS ที่เก่าหรือเสียหายอาจทำให้การ resolve ล้มเหลว

ข้อจำกัดของ Firewall

การตั้งค่าไฟร์วอลล์อาจบล็อก request ของ DNS แม้จะตั้งค่าถูกต้องก็ตาม query ของ DNS ใช้ พอร์ต 53หากไฟร์วอลล์บล็อก port นี้ การ resolve ชื่อจะล้มเหลว

Port 53 รองรับทั้งโปรโตคอล UDP และ TCP โดยปกติ DNS จะใช้ UDP Port 53 สำหรับ query ทั่วไปเพราะเร็วกว่า ส่วน TCP Port 53 ใช้สำหรับ zone transfer และ query ขนาดใหญ่ที่เกินขีดจำกัดของ UDP

ปัญหาการตั้งค่าบริการ

บริการ systemd-resolved ซึ่งจัดการ DNS resolution ใน Linux รุ่นใหม่ อาจหยุดทำงาน ถูกปิดใช้งาน หรือตั้งค่าผิดพลาด บริการนี้รับผิดชอบการ resolve DNS ให้กับทุกแอปพลิเคชันในระบบ

Temporary Failure in Name Resolution บน Ubuntu 22.04

Ubuntu 22.04 LTS มีการเปลี่ยนแปลงด้านการจัดการเครือข่ายที่อาจก่อให้เกิดปัญหา DNS resolution โดยเฉพาะหลังการอัปเกรดระบบ ผู้ใช้อาจพบข้อผิดพลาด Ubuntu unable to resolve host และ temporary failure in name resolution บ่อยขึ้นในเวอร์ชันนี้

ปัญหาที่พบบ่อยใน Ubuntu 22.04

ผู้ใช้ที่อัปเกรดจาก Ubuntu 20.04 เป็น 22.04 มักรายงานปัญหา DNS resolution ล้มเหลว ปัญหา temporary failure in name resolution บน Ubuntu 22.04 มักมาจากการตั้งค่า systemd-resolved ที่ผิดพลาดระหว่างกระบวนการอัปเกรด

วิธีแก้ไขเฉพาะสำหรับ Ubuntu 22.04

หากคุณพบปัญหา DNS ต่อเนื่องบน Ubuntu 22.04 ให้ทำตามขั้นตอนเหล่านี้:

ขั้นแรก ตรวจสอบว่า systemd networking services เปิดใช้งานอยู่อย่างถูกต้อง:

sudo systemctl unmask systemd-networkd.service

sudo systemctl unmask systemd-resolved.service

ตรวจสอบสถานะของ systemd-resolved:

รายการตรวจสอบระบบ Ubuntu 22.04 แสดงเครื่องหมายถูกสีเขียวสามรายการ ได้แก่ บริการ systemd-networkd บริการ systemd-resolved และการตั้งค่า symlink ของ resolv.conf

sudo systemctl status systemd-resolved.service

หากบริการไม่ทำงาน ให้เริ่มต้นใหม่:

sudo systemctl start systemd-resolved.service

sudo systemctl enable systemd-resolved.service

ตรวจสอบว่า symlink ใน /etc/resolv.conf ชี้ไปยังตำแหน่งที่ถูกต้อง:

ls -l /etc/resolv.conf

การตั้งค่าที่แนะนำจะเชื่อมต่อไปยัง stub resolver:

sudo ln -sf /run/systemd/resolve/stub-resolv.conf /etc/resolv.conf

ทดสอบการแก้ไข

หลังจากทำการเปลี่ยนแปลงเหล่านี้แล้ว ให้ทดสอบการแก้ไขปัญหา DNS:

resolvectl status

คำสั่งนี้แสดงการตั้งค่า DNS ปัจจุบันของคุณ และยืนยันว่า systemd-resolved จัดการ DNS อย่างถูกต้องแล้ว

Ubuntu 24.04 ความล้มเหลวชั่วคราวในการแก้ไขชื่อโดเมน

Ubuntu 24.04 LTS ซึ่งเป็น long-term support รุ่นล่าสุด ใช้ systemd 255 และมีส่วนประกอบการจัดการเครือข่ายที่อัปเดตแล้ว แม้จะเสถียรกว่าเวอร์ชันก่อนหน้า แต่ก็ยังอาจพบปัญหา DNS ได้อยู่ 

ผู้ดูแลระบบระยะไกลมักประสบข้อผิดพลาด "SSH could not resolve hostname" ซึ่งเกิดขึ้นเมื่อ stub resolver ของระบบที่ 127.0.0.53 ล้มเหลว เนื่องจาก SSH พึ่งพาบริการภายในเครื่องนี้สำหรับการแปลชื่อ การหยุดทำงานของ systemd-resolved กระบวนการนี้จะบล็อกการเชื่อมต่อที่อิงตามโดเมนทั้งหมดทันที

Ubuntu 24.04 DNS การกำหนดค่า

Ubuntu 24.04 ใช้ systemd-resolved เป็นหลักในการจัดการ DNS โดย stub listener ที่ 127.0.0.53 จะรับผิดชอบการสืบค้น DNS ให้กับระบบ

การแก้ไขปัญหา DNS ใน Ubuntu 24.04

หากพบปัญหาการแปลงชื่อโดเมน (name resolution) บน Ubuntu 24.04 ให้ตรวจสอบว่า systemd-resolved กำลังทำงานอยู่:

sudo systemctl status systemd-resolved

ตรวจสอบการตั้งค่า DNS ด้วย resolvectl:

resolvectl status

ส่วนนี้แสดงข้อมูล nameserver และการตั้งค่า DNS สำหรับแต่ละ network interface

การกำหนดค่า Netplan ใน Ubuntu 24.04

Ubuntu 24.04 ใช้ Netplan สำหรับการตั้งค่าเครือข่าย ชื่อไฟล์และการตั้งค่า renderer จะแตกต่างกันขึ้นอยู่กับว่าคุณใช้เวอร์ชัน Server หรือ Desktop

ก่อนอื่น ให้ระบุไฟล์การตั้งค่าของคุณ:

ls /etc/netplan/

แก้ไขไฟล์ที่พบ (โดยทั่วไปคือ 50-cloud-init.yaml or 00-installer-config.yaml):

sudo nano /etc/netplan/YOUR_FILE_NAME.yaml

ตรวจสอบการตั้งค่า DNS ของคุณ หมายเหตุ: เซิร์ฟเวอร์ส่วนใหญ่ใช้ networkd, ส่วนการติดตั้งแบบ Desktop จะใช้ NetworkManagerตรวจสอบชื่อเครือข่ายของคุณ (เช่น eth0 or ens3) โดยใช้ ip addr ก่อนแก้ไข

network:

  version: 2

  renderer: networkd

  ethernets:

    eth0:

      dhcp4: yes

      nameservers:

        addresses: [8.8.8.8, 8.8.4.4]

ใช้การกำหนดค่า:

ภาพหน้าจอการกำหนดค่า Netplan ของ Ubuntu 24.04 แสดงการตั้งค่า DNS server พร้อมแผนภาพเครือข่ายที่แสดงการเชื่อมต่อเซิร์ฟเวอร์ใน VPCsudo netplan apply

ปัญหา Stub Listener

บางแอปพลิเคชันอาจขัดแย้งกับ stub listener ของ systemd-resolved บนพอร์ต 53 หากต้องการปิดใช้งาน stub listener:

sudo mkdir -p /etc/systemd/resolved.conf.d/

สร้างไฟล์การกำหนดค่า:

echo -e "[Resolve]\nDNSStubListener=no" | sudo tee /etc/systemd/resolved.conf.d/noresolved.conf

รีสตาร์ท systemd-resolved:

sudo systemctl restart systemd-resolved.service

เคล็ดลับการแก้ปัญหาเพิ่มเติม

หากข้อผิดพลาดยังคงอยู่ ให้ใช้เครื่องมือเหล่านี้เพื่อระบุสาเหตุ คุณต้องตรวจสอบว่าปัญหาเกิดจากการเชื่อมต่อเครือข่าย ตัว DNS server เอง หรือความขัดแย้งในไฟล์ในเครื่อง

ตรวจสอบการเข้าถึง DNS Server

ทดสอบว่าระบบของคุณเชื่อมต่อถึง DNS server ที่ระบุไว้ในการกำหนดค่าได้หรือไม่ ใช้คำสั่ง ping ตามด้วย IP address ของ nameserver หลัก:

ping -c 4 <your_dns_server_ip>

หากไม่สำเร็จ แสดงว่ามีปัญหาด้านการเชื่อมต่อเครือข่าย 

ตรวจสอบไฟล์ /etc/hosts

ไฟล์ /etc/hosts สามารถแทนที่การค้นหา DNS ได้ รายการที่ไม่ถูกต้องในไฟล์นี้อาจทำให้การแปลงชื่อล้มเหลว:

sudo nano /etc/hosts

ตรวจสอบให้แน่ใจว่ามีข้อมูลขั้นต่ำดังนี้:

127.0.0.1 localhost

127.0.0.1 ชื่อโฮสต์ของคุณ

ใช้ dig วินิจฉัยปัญหา DNS

คำสั่ง dig ช่วยวินิจฉัยปัญหา DNS:

dig google.com

คำสั่งนี้แสดงข้อมูล DNS query โดยละเอียด รวมถึง nameserver ที่ตอบกลับและเวลาที่ใช้ในการ query

ผลลัพธ์ใน terminal จากคำสั่ง dig ที่ query google.com แสดงข้อมูลการแปลงชื่อ DNS โดยละเอียด รวมถึง IP address และสถิติการ query

ตรวจสอบการกำหนดค่า Network Interface

ตรวจสอบว่า network interface ของคุณได้รับการกำหนดค่าอย่างถูกต้อง:

ip addr show

ตรวจสอบให้แน่ใจว่า network interface หลักมี IP address กำหนดไว้แล้ว

ป้องกันปัญหา DNS ในอนาคต

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

ความเสถียรของเครือข่ายขึ้นอยู่กับคุณภาพฮาร์ดแวร์ ดู Cloudzy ของเรา Linux VPS ทำงานบนโปรเซสเซอร์ AMD Ryzen 9 ความถี่สูงและการเชื่อมต่อ 40 Gbps ความเร็วระดับนี้ช่วยลด latency และ timeout ที่มักเป็นสาเหตุของปัญหาการ resolve ชื่อโดเมน ทำให้แอปพลิเคชันของคุณเข้าถึงได้อยู่เสมอ

ใช้เซิร์ฟเวอร์ DNS ที่เชื่อถือได้

คุณควรตั้งค่า nameserver หลายตัวผ่าน Netplan หรือ systemd-resolved แทนที่จะแก้ไข /etc/resolv.conf โดยตรง เพื่อให้การตั้งค่าคงอยู่หลังจากรีบูต การเพิ่ม IP สำรอง เช่น 1.1.1.1 or 8.8.4.4 จะช่วยสร้าง redundancy ไว้รองรับกรณีที่ provider หลักของคุณล้มเหลว

ติดตามการอัปเดตระบบ

การตั้งค่า DNS อาจเปลี่ยนแปลงได้หลังจากอัปเดตระบบ หลังจากอัปเดต Linux distribution แล้ว ให้ตรวจสอบว่า DNS resolution ยังทำงานได้ถูกต้องหรือไม่

บันทึกการตั้งค่าของคุณ

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

อย่า flush cache เป็นประจำ

อย่าล้าง DNS cache ตามตารางรายวัน เพราะจะลบข้อมูลที่ยังใช้งานได้ออกไปและทำให้การท่องเว็บช้าลง

ล้าง cache เฉพาะในสองกรณีนี้เท่านั้น :

  1. คุณเปลี่ยน DNS provider (เช่น เปลี่ยนจาก ISP มาใช้ Google DNS)
  2. เว็บไซต์ย้ายไปยังเซิร์ฟเวอร์ใหม่แล้วแต่คุณไม่สามารถเข้าถึงได้

สรุป

ข้อผิดพลาด temporary failure in name resolution บนระบบ Linux มักเกิดจากปัญหาการเชื่อมต่ออินเทอร์เน็ต การตั้งค่า DNS ผิดพลาด firewall บล็อกการเข้าถึง หรือ DNS cache เสียหาย การแก้ปัญหาตามขั้นตอนในคู่มือนี้จะช่วยให้คุณระบุและแก้ไขสาเหตุที่แท้จริงได้

ผู้ใช้ Ubuntu 22.04 และ 24.04 ต้องให้ความสำคัญกับการตั้งค่า systemd-resolved เป็นพิเศษ เนื่องจาก service นี้จัดการ DNS query ทั้งหมด การตั้งค่าผิดพลาดเพียงจุดเดียวจะบล็อกการอัปเดต package และการเชื่อมต่อภายนอกทั้งหมด ตรวจสอบให้แน่ใจว่า service ทำงานอยู่และเชื่อมต่อถูกต้อง การตั้งค่า DNS ที่เสถียรช่วยให้ Linux VPS ของคุณดำเนินงานด้านเครือข่ายได้อย่างต่อเนื่อง

คำถามที่พบบ่อย

ทำไมฉันถึงเห็นข้อผิดพลาด temporary failure in name resolution บน Ubuntu?

ข้อผิดพลาดนี้เกิดขึ้นเมื่อระบบ Linux ไม่สามารถแปลงชื่อโดเมนเป็น IP address ได้ สาเหตุที่พบบ่อย ได้แก่ ปัญหาการเชื่อมต่ออินเทอร์เน็ต การตั้งค่า DNS ไม่ถูกต้อง firewall บล็อก DNS port หรือปัญหากับ service systemd-resolved

จะแก้ไขข้อผิดพลาด ping temporary failure in name resolution ได้อย่างไร?

ขั้นแรก ตรวจสอบการเชื่อมต่ออินเทอร์เน็ตโดย ping ตรงไปยัง IP address จากนั้นตรวจสอบว่าไฟล์ /etc/resolv.conf มี nameserver ที่ถูกต้อง ตรวจสอบว่า firewall อนุญาต traffic บน port 53 และรีสตาร์ท service systemd-resolved หากปัญหายังคงอยู่ให้ flush DNS cache

จะตรวจสอบการตั้งค่า DNS บน Linux ได้อย่างไร?

ดูการตั้งค่า DNS ปัจจุบันได้จากไฟล์ /etc/resolv.conf โดยใช้คำสั่ง cat /etc/resolv.conf สำหรับระบบที่ใช้ systemd-resolved ให้รัน resolvectl status เพื่อดูการตั้งค่า DNS โดยละเอียดของแต่ละ network interface

ควรใช้เซิร์ฟเวอร์ DNS ใดสำหรับ Linux?

เซิร์ฟเวอร์ DNS ยอดนิยมที่เชื่อถือได้ ได้แก่ Gooogle DNS (8.8.8.8 และ 8.8.4.4) และ Cloudflare DNS (1.1.1.1 และ 1.0.0.1) ทั้งสองให้ความเร็วในการ resolve และความพร้อมใช้งานที่ดี นอกจากนี้คุณยังสามารถใช้เซิร์ฟเวอร์ DNS ของ ISP หรือบริการ DNS สาธารณะอื่น ๆ ได้เช่นกัน

ข้อผิดพลาดนี้ส่งผลต่อ Ubuntu 22.04 และ 24.04 แตกต่างกันหรือไม่?

ทั้งสองเวอร์ชันอาจเกิดข้อผิดพลาดนี้ได้ แต่ผู้ใช้ Ubuntu 22.04 มักรายงานปัญหาหลังจากอัปเกรดจาก 20.04 เนื่องจากการเปลี่ยนแปลงการตั้งค่า systemd-resolved ส่วน Ubuntu 24.04 มีเสถียรภาพดีขึ้น แต่บางแอปพลิเคชันอาจต้องกำหนดค่า stub listener เพิ่มเติม

แชร์

บทความอื่นจากบล็อก

อ่านต่อ

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

การตั้งค่า MikroTik L2TP VPN (พร้อม IPsec): คู่มือ RouterOS (2026)

ในการตั้งค่า MikroTik L2TP VPN นี้ L2TP ทำหน้าที่สร้าง Tunnel ส่วน IPsec ดูแลการเข้ารหัสและความสมบูรณ์ของข้อมูล การใช้งานร่วมกันช่วยให้รองรับ Native Client ได้โดยไม่ต้องพึ่งพาซอฟต์แวร์ของบุคคลที่สาม

เรกซา ไซรัสเรกซา ไซรัส อ่าน 9 นาที
หน้าต่าง Terminal แสดงข้อความเตือน SSH เกี่ยวกับการเปลี่ยนแปลง Remote Host Identification พร้อมหัวข้อ Fix Guide และแบรนด์ Cloudzy บนพื้นหลังสีเขียวเทาเข้ม
ความปลอดภัยและเครือข่าย

คำเตือน: Remote Host Identification Has Changed และวิธีแก้ไข

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

เรกซา ไซรัสเรกซา ไซรัส อ่าน 10 นาที
วิธีชี้โดเมนไปยัง VPS: คู่มือฉบับย่อ
ความปลอดภัยและเครือข่าย

วิธีชี้โดเมนไปยัง VPS: คู่มือฉบับย่อ

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

เรกซา ไซรัสเรกซา ไซรัส อ่าน 16 นาที

พร้อม Deploy แล้วหรือยัง? เริ่มต้นที่ $2.48/เดือน

Cloud อิสระ ให้บริการมาตั้งแต่ปี 2008. AMD EPYC, NVMe, 40 Gbps. คืนเงินภายใน 14 วัน