- 1 1. บทนำ: ทำไมการตั้งค่า DNS ถึงสำคัญใน Ubuntu
- 2 2. Ubuntu มีสองวิธีหลักสำหรับการตั้งค่า DNS
- 3 3. การตั้งค่า DNS ด้วย Netplan (สำหรับเซิร์ฟเวอร์)
- 4 4. การใช้ NetworkManager (GUI) เพื่อกำหนดค่า DNS บน Ubuntu Desktop
- 5 5. วิธีตรวจสอบว่า DNS Settings ถูกนำไปใช้แล้ว
- 6 6. ตัวเลือก DNS ที่พบบ่อย (สำหรับผู้เริ่มต้น)
1. บทนำ: ทำไมการตั้งค่า DNS ถึงสำคัญใน Ubuntu
DNS (Domain Name System) คือกลไกที่แปลงชื่อโดเมนเป็นที่อยู่ IP
ทุกครั้งที่เราเปิดเว็บไซต์ ระบบปฏิบัติการจะทำการสอบถามเซิร์ฟเวอร์ DNS เบื้องหลังโดยอัตโนมัติ
เมื่อใช้ Ubuntu คุณอาจเจอปัญหาเหล่านี้:
- หน้าเว็บรู้สึก “ช้าเล็กน้อย”
- ประสิทธิภาพช้ากว่าอุปกรณ์อื่น ๆ ในเครือข่ายเดียวกัน
- บางครั้งไม่สามารถเข้าถึงเว็บไซต์ภายใน LAN ได้
อาการเหล่านี้มักเกิดจาก การแก้ไข DNS ที่ช้า มากกว่าปัญหา “คุณภาพเครือข่าย”
ใน Ubuntu แม้ในเวอร์ชัน 22.04 ขึ้นไปก็มีหลายวิธีในการตั้งค่า DNS ซึ่งมักทำให้ผู้เริ่มต้นสับสน วิธีหลักสองวิธีคือ:
- Netplan (ใช้บ่อยในสภาพแวดล้อมเซิร์ฟเวอร์ที่ไม่มี GUI)
- NetworkManager (รองรับการทำงานผ่าน GUI ของเดสก์ท็อป)
เพราะการตั้งค่าจะแตกต่างกันตามว่าระบบใดทำงานอยู่ บทความเกี่ยวกับ DNS สำหรับ Ubuntu จึงต้องเริ่มด้วย “การตรวจจับสภาพแวดล้อม” แล้วจึง “แนะนำผู้ใช้ไปยังวิธีที่ถูกต้อง”
DNS ไม่ได้เป็นเพียง “ส่วนเล็กของการตั้งค่า” แต่เป็นจุดเริ่มต้นของระบบเครือข่ายทั้งหมดบน Ubuntu
ตัวอย่างเช่น การสลับไปใช้ Google Public DNS (8.8.8.8) หรือ Cloudflare (1.1.1.1) สามารถทำให้การท่องเว็บเร็วขึ้นอย่างเห็นได้ชัด
โดยเฉพาะในสภาพแวดล้อม VPS, คลาวด์ หรือเครือข่ายต่างประเทศ
ในส่วนต่อไปนี้ เราจะชี้แจงอย่างชัดเจนว่า:
- วิธีตั้งค่า DNS ผ่าน GUI
- วิธีตั้งค่า DNS ผ่าน Netplan
- วิธีตรวจสอบการตั้งค่า DNS
ก่อนอื่น ให้เราตรวจสอบว่าระบบของคุณกำลังใช้สภาพแวดล้อมใด
2. Ubuntu มีสองวิธีหลักสำหรับการตั้งค่า DNS
ใน Ubuntu วิธีการตั้งค่า DNS จะเปลี่ยนไปตามระบบจัดการเครือข่ายที่ใช้งาน
หากมองข้ามความแตกต่างนี้ การเปลี่ยนแปลง DNS อาจไม่ทำงานหรือกลับสู่ค่าเดิมหลังรีบูต
ต่อไปนี้เป็นสรุปว่ามีสองระบบการตั้งค่า DNS ที่ทำงานแยกจากกันใน Ubuntu
Netplan (การตั้งค่าแบบ YAML)
- ใช้บ่อยในสภาพแวดล้อมเซิร์ฟเวอร์
- มาตรฐานตั้งแต่ Ubuntu 18.04 ขึ้นไป (รุ่น LTS)
- ไฟล์การตั้งคือตั้งอยู่ที่
/etc/netplan/*.yaml - ทำงานร่วมกับ systemd‑resolved
ในสภาพแวดล้อม VPS หรือเซิร์ฟเวอร์จริงที่ไม่มี GUI Netplan จะเป็นวิธีที่ใช้เกือบทั้งหมด
สภาพแวดล้อมคลาวด์เช่น AWS, Vultr, ConoHa หรือ Oracle Cloud ก็ใช้วิธีนี้เป็นหลักเช่นกัน
NetworkManager (GUI)
- ใช้บ่อยในสภาพแวดล้อมเดสก์ท็อป (Ubuntu Desktop)
- สามารถตั้งค่า DNS ผ่านการกำหนดค่า IPv4 / IPv6
- เข้าใจง่ายเพราะเป็นการตั้งค่าผ่าน GUI
หากคุณใช้ Ubuntu Desktop นี่คือวิธีที่น่าจะเป็นไปได้มากที่สุด
เหมาะสำหรับกรณีที่ “แค่เปลี่ยน DNS เพราะเบราว์เซอร์ช้า”
วิธีตรวจสอบว่าคุณกำลังใช้วิธีใด
วิธีที่ง่ายที่สุดคือดูว่ามีไฟล์อยู่ใน /etc/netplan/ หรือไม่
ls /etc/netplan/
หากพบไฟล์ YAML แสดงว่า Netplan กำลังทำงานอยู่
หากไดเรกทอรีว่างเปล่าหรือคุณใช้ GUI ให้ตรวจสอบการตั้งค่าใน NetworkManager
3. การตั้งค่า DNS ด้วย Netplan (สำหรับเซิร์ฟเวอร์)
Netplan ใช้ไฟล์ YAML เพื่อกำหนดค่าการเชื่อมต่อเครือข่าย
ในสภาพแวดล้อม Ubuntu Server หรือ VPS ที่ไม่มี GUI นี้เป็นวิธีการตั้งค่าหลัก
ส่วนนี้มุ่งเน้นที่ขั้นตอนที่จำเป็นและสั้นที่สุดเพื่อกำหนดค่า DNS ให้เป็นค่าที่ต้องการ
เปิดไฟล์การตั้งค่า Netplan
ไฟล์การตั้งค่า Netplan จะอยู่ที่ /etc/netplan/
ชื่อไฟล์จะแตกต่างกันตามสภาพแวดล้อม (เช่น 00-installer-config.yaml)
เริ่มต้นโดยตรวจสอบรายการไฟล์:
ls /etc/netplan/
หลังจากระบุชื่อไฟล์แล้ว ให้เปิดไฟล์ด้วยโปรแกรมแก้ไข เช่น nano ตัวอย่างเช่น:
sudo nano /etc/netplan/00-installer-config.yaml
วิธีเพิ่มรายการ DNS ลงใน YAML (ตัวอย่าง)
ต่อไปเป็นตัวอย่างที่ระบุทั้ง Google DNS และ Cloudflare DNS
network:
version: 2
ethernets:
ens33:
dhcp4: true
nameservers:
addresses: [8.8.8.8, 1.1.1.1]
หมายเหตุ: ens33 จะต่างกันตาม NIC ของคุณ
ตรวจสอบได้ด้วยคำสั่ง ip a หรือ ip link
ใช้การตั้งค่า
หลังจากแก้ไขไฟล์แล้ว ให้บังคับให้ Netplan ใช้การตั้งค่าใหม่ด้วยคำสั่ง:
bash
sudo netplan apply
ตรวจสอบว่าการตั้งค่า DNS ถูกนำไปใช้หรือไม่โดยใช้:
bash
systemd-resolve --status
หรือ
bash
dig @8.8.8.8 example.com
Apply changes immediately using:
sudo netplan apply
หากมีข้อผิดพลาดปรากฏขึ้น สาเหตุส่วนใหญ่มักมาจากการเยื้องของ YAML.
ตรวจสอบการเว้นวรรคและลำดับชั้น—ห้ามใช้แท็บ.
DHCP และ DNS แบบกำหนดเองสามารถทำงานร่วมกันได้หรือไม่?
ได้, คุณสามารถรับ IP ผ่าน DHCP ในขณะที่กำหนดค่า DNS ด้วยตนเองได้.
Example:
dhcp4: true
nameservers:
addresses: [9.9.9.9]
การกำหนดค่านี้ตั้งค่า “IP = automatic, DNS = manual.”
4. การใช้ NetworkManager (GUI) เพื่อกำหนดค่า DNS บน Ubuntu Desktop
หากคุณใช้ Ubuntu สำหรับการทำงานบนเดสก์ท็อป คุณสามารถเปลี่ยน DNS ได้โดยไม่ต้องใช้เทอร์มินัล.
วิธีการแบบ GUI นี้เป็นวิธีที่เร็วที่สุดเมื่อคุณต้องการ “เร่งความเร็วของเบราว์เซอร์” หรือ “สลับไปใช้ DNS สาธารณะ”.
วิธีเปิดหน้าต่าง Settings
- คลิกไอคอนเครือข่ายที่มุมขวาบน
- เปิด “Settings” หรือ “Network Settings”
- เลือกการเชื่อมต่อที่ใช้งานอยู่ (Wired / Wi‑Fi)
- ไปที่แท็บ “IPv4”
คุณจะพบช่องกรอก DNS ที่นี่.
ขึ้นอยู่กับเวอร์ชันของ Ubuntu คำอธิบายอาจแตกต่างกันเล็กน้อย แต่คุณสามารถใส่ที่อยู่ DNS คั่นด้วยเครื่องหมายคอมม่าได้.
ตัวอย่างการใส่ค่า (กำหนด DNS ผ่าน IPv4)
ตัวอย่าง: ใช้ Google DNS และ Cloudflare DNS
8.8.8.8, 1.1.1.1
หลังจากใส่ค่าแล้ว คลิก “Apply” หรือ “Save”. แนะนำให้ตัดการเชื่อมต่อแล้วเชื่อมต่อใหม่เพื่อให้การตั้งค่ามีผล.
หากคุณใช้ IPv6
แท็บ “IPv6” มีช่องกรอก DNS ที่คล้ายกัน.
บนเครือข่ายแบบ dual‑stack การตั้งค่า DNS ทั้ง IPv4 และ IPv6 อาจสำคัญต่อความเสถียร.
การรวม DHCP กับ DNS แบบกำหนดเอง
คุณยังสามารถตั้งค่า GUI ให้ใช้การกำหนด IP อัตโนมัติพร้อมกับกำหนด DNS ด้วยตนเองได้.
วิธีนี้มีประโยชน์เมื่อคุณไม่ต้องการกำหนด IP คงที่บนทุกเครือข่าย Wi‑Fi ที่ใช้ เช่น ที่บ้านหรือที่ทำงาน.
5. วิธีตรวจสอบว่า DNS Settings ถูกนำไปใช้แล้ว
การกำหนดค่า DNS จะไม่เสร็จสมบูรณ์จนกว่าคุณจะตรวจสอบว่าการตั้งค่าใหม่ถูกนำไปใช้จริงหรือไม่. Ubuntu มีวิธีที่เชื่อถือได้สามวิธีในการตรวจสอบสถานะ DNS.
ใช้คำสั่ง dig
dig google.com
ในผลลัพธ์ ให้มองหาบรรทัดที่มีป้าย “SERVER: 〜”.
บรรทัดนี้จะแสดง DNS server ที่ระบบของคุณกำลังใช้ในขณะนี้.
Example (excerpt):
;; SERVER: 8.8.8.8#53(8.8.8.8)
ตรวจสอบให้แน่ใจว่ามีค่า 8.8.8.8 (Google) หรือ 1.1.1.1 (Cloudflare) เป็นต้น.
resolvectl status
วิธีนี้แม่นยำเมื่อใช้ systemd‑resolved.
resolvectl status
จะแสดง nameserver ที่แต่ละ NIC ใช้ในขณะนั้น.
บนเซิร์ฟเวอร์ที่มีหลาย NIC วิธีนี้เชื่อถือได้กว่าการใช้ dig.
ทำไมไม่ควรแก้ไข /etc/resolv.conf โดยตรง
cat /etc/resolv.conf
ไฟล์นี้แสดงค่ DNS สุดท้ายที่กำลังใช้งานอยู่.
อย่างไรก็ตาม ไฟล์นี้ถูกสร้างโดย systemd‑resolved อัตโนมัติ ดังนั้น:
มันจะถูกเขียนทับใหม่ทุกครั้ง, การแก้ไขไฟล์นี้โดยตรงจึงไม่ถูกต้อง.
6. ตัวเลือก DNS ที่พบบ่อย (สำหรับผู้เริ่มต้น)
คุณไม่ได้ “สร้าง” ที่อยู่ DNS เอง.
ในส่วนใหญ่คุณจะเลือกจากบริการ DNS สาธารณะที่มีให้ใช้งานอย่างกว้างขวาง.
หากคุณต้องการตัวเลือกที่ปลอดภัยและเสถียร ให้เลือกจากรายการด้านล่าง:
| Provider | DNS Address |
|---|---|
| Google Public DNS | 8.8.8.8 / 8.8.4.4 |
| Cloudflare | 1.1.1.1 |
| Quad9 | 9.9.9.9 |
| OpenDNS | 208.67.222.222 / 208.67.220.220 |
การระบุ สอง DNS server เป็นการแนะนำเพื่อความทนทาน.
หากหนึ่งตัวไม่พร้อมใช้งาน ระบบจะสลับไปใช้ตัวที่เหลือโดยอัตโนมัติ.
หากคุณใช้ DNS ภายใน (เช่น AD ขององค์กร) คุณต้องระบุ DNS server ภายใน แทน DNS สาธารณะ.
การแก้ไขชื่อภายในมักจะมีลำดับความสำคัญเหนือการทำงานของ DNS ภายนอก.
7. DNS มักเป็นคอขวดของเครือข่าย
แม้ DNS จะดูเหมือนเป็นการตั้งค่าที่ง่าย แต่มีผลกระทบอย่างมากต่อประสิทธิภาพที่ผู้ใช้รับรู้. ปัญหา DNS จะเห็นได้ชัดในสถานการณ์เช่น:
- ขั้นตอนแรกของการโหลดหน้าเว็บรู้สึกช้าเกินปกติ
- Ping เร็วแต่การท่องเว็บช้า
- เฟรมเวิร์ก SPA (React / Vue) มีการโหลดครั้งแรกที่ช้า
กรณีเหล่านี้มักจะมีพฤติกรรมเช่นนี้: “หลังจากโหลด URL เดียวกันหลายครั้ง มันจะเร็วขึ้น แต่การเข้าถึงครั้งแรกนั้นช้าอย่างน่าประหลาด”
นี่เกิดขึ้นเพราะ DNS เป็นจุดเริ่มต้นเบื้องต้น
โดยเฉพาะอย่างยิ่งบน VPS หรือภูมิภาคนานาชาติ (เช่น us-east / eu-west) DNS สาธารณะสามารถมีประสิทธิภาพดีกว่าของ DNS เริ่มต้นจาก ISP ของคุณ
DNS เป็นจุดที่ไวต่อ ความหน่วงของเครือข่าย อย่างมาก
ไม่ว่าจะเป็น OS ใด การปรับแต่ง DNS เป็นหนึ่งในการปรับให้เหมาะสมครั้งแรกที่วิศวกรเว็บควรทำ
FAQ
Q1: ฉันแก้ไข /etc/resolv.conf แต่หลังจากรีบูต มันรีเซ็ต ทำไม?
→ systemd-resolved ของ Ubuntu สร้าง /etc/resolv.conf โดยอัตโนมัติ
ไฟล์นี้ไม่ควรแก้ไขด้วยมือ
ใช้ Netplan หรือ NetworkManager แทน
Q2: ฉันไม่แน่ใจว่าฉันใช้ Netplan หรือ NetworkManager ฉันตรวจสอบได้อย่างไร?
→ ตรวจสอบก่อน:
ls /etc/netplan/
ถ้าไฟล์ YAML มีอยู่ Netplan น่าจะถูกใช้
ถ้าคุณใช้ GUI NetworkManager น่าจะเป็นไปได้มากกว่า
Q3: ฉันสามารถรับ IP โดยอัตโนมัติผ่าน DHCP และยังตั้งค่า DNS ด้วยมือได้หรือไม่?
→ ใช่
ทั้ง Netplan และ NetworkManager อนุญาต “IP = AUTO, DNS = manual.”
Q4: การเปลี่ยน DNS จะทำให้การท่องเว็บเร็วขึ้นเสมอหรือไม่?
→ ไม่เสมอไป
DNS กระทบเฉพาะการค้นหาชื่อเริ่มต้น
มันมักจะเร่งการโหลดครั้งแรก แต่ภาพช้า/CDN/API ที่อื่นอาจยังทำให้ประสิทธิภาพช้าต่อไป
Q5: ขั้นตอนเดียวกันใช้กับ Ubuntu บน WSL2 หรือไม่?
→ ไม่ใช่ทั้งหมด
WSL2 สร้าง resolv.conf ใหม่โดยอัตโนมัติ ต้องตั้งค่าเพิ่มเติมเช่น:
generateResolvConf=false
WSL มีวิธีการตั้งค่า DNS ของตัวเอง

