ตรวจสอบ DNS ด้วย nslookup และ dig
เมื่อแก้ DNS แล้วเว็บยังไม่เปลี่ยน อีเมลยังไม่เข้า หรือ SSL ออกไม่ผ่าน สิ่งแรกที่ควรทำคือถาม DNS ตรง ๆ ว่าตอนนี้ตอบค่าอะไร เครื่องมือมาตรฐานสำหรับงานนี้คือ nslookup ซึ่งมีอยู่แล้วใน Windows, macOS และ Linux และ dig ซึ่งให้ข้อมูลละเอียดกว่าและนิยมใช้บน macOS และ Linux
บทความนี้สอนคำสั่งที่ใช้บ่อย การอ่านผลลัพธ์ การถาม DNS Server เฉพาะตัว เพื่อแยกว่าปัญหาอยู่ที่ค่า DNS หรือที่ Cache และวิธีล้าง DNS Cache ในเครื่อง
สิ่งที่ต้องเตรียม
- Windows: ใช้ Command Prompt หรือ PowerShell มี
nslookupอยู่แล้ว (PowerShell ยังมีResolve-DnsNameให้ใช้ด้วย) - macOS: เปิด Terminal มีทั้ง
nslookupและdigอยู่แล้ว - Linux: หากยังไม่มี
digให้ติดตั้งตามขั้นตอนที่ 1 - ชื่อโดเมนที่ต้องการตรวจ และค่าที่คาดว่าควรได้ เช่น IP ของเซิร์ฟเวอร์ใหม่
ขั้นตอนที่ 1: ติดตั้ง dig บน Linux
Ubuntu และ Debian
sudo apt update
sudo apt install -y dnsutils
AlmaLinux และ Rocky Linux
sudo dnf install -y bind-utils
ตรวจว่าติดตั้งแล้วด้วย dig -v ซึ่งจะแสดงเวอร์ชันของ BIND
ขั้นตอนที่ 2: ตรวจด้วย nslookup
หา IP ของโดเมน (A และ AAAA Record)
nslookup example.com
ตัวอย่างผลลัพธ์
Server: 192.168.1.1
Address: 192.168.1.1#53
Non-authoritative answer:
Name: example.com
Address: 203.0.113.10
ส่วน Server คือ DNS Resolver ที่เครื่องคุณใช้ถาม ส่วน Address ใต้ Name คือคำตอบ คำว่า Non-authoritative answer หมายถึงคำตอบมาจาก Cache ของ Resolver ไม่ใช่จาก Name Server ของโดเมนโดยตรง ซึ่งเป็นเรื่องปกติ
ถาม Record ชนิดอื่น
nslookup -type=mx example.com
nslookup -type=txt example.com
nslookup -type=ns example.com
nslookup -type=cname www.example.com
ถาม DNS Server ที่ระบุเอง
ใส่ชื่อหรือ IP ของ DNS Server ต่อท้าย เพื่อเลี่ยง Cache ของเครือข่ายที่คุณใช้อยู่
nslookup example.com 8.8.8.8
nslookup example.com 1.1.1.1
บน Windows PowerShell ใช้คำสั่งที่ให้ผลเป็นตารางอ่านง่ายได้
Resolve-DnsName example.com -Type MX -Server 8.8.8.8
ขั้นตอนที่ 3: ตรวจด้วย dig
ดูเฉพาะคำตอบ
dig +short example.com
dig +short MX example.com
dig +short TXT example.com
dig +short NS example.com
+short แสดงเฉพาะค่าของคำตอบ เหมาะกับการตรวจเร็ว ถ้าไม่มีผลลัพธ์เลยแปลว่าไม่มี Record ชนิดนั้นในชื่อนั้น
ดูผลลัพธ์แบบเต็ม
dig example.com A
ส่วนที่ควรดู
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 41235
...
;; ANSWER SECTION:
example.com. 3600 IN A 203.0.113.10
;; SERVER: 192.168.1.1#53(192.168.1.1)
- status:
NOERRORคือถามสำเร็จNXDOMAINคือไม่มีชื่อนี้อยู่เลยSERVFAILคือ DNS Server ตอบไม่ได้ มักเกิดจาก Name Server ของโดเมนมีปัญหาหรือ DNSSEC ผิดพลาด - ANSWER SECTION: คำตอบ ตัวเลขถัดจากชื่อคือ TTL ที่เหลืออยู่ใน Cache เป็นวินาที เมื่อนับถึง 0 Resolver จะถามค่าใหม่
- SERVER: DNS Server ที่ตอบคำถามนี้
ถาม DNS Server ที่ระบุเอง
dig @8.8.8.8 example.com A +short
dig @1.1.1.1 example.com A +short
ขั้นตอนที่ 4: ถาม Name Server ต้นทางโดยตรง
นี่เป็นเทคนิคที่สำคัญที่สุดในการแยกปัญหา Name Server ต้นทาง (Authoritative) คือผู้ถือค่าจริงของโดเมน ถามตรงจะได้ค่าล่าสุดเสมอโดยไม่ผ่าน Cache
dig +short NS example.com
dig @ns1.provider.net example.com A +short
เปลี่ยน ns1.provider.net เป็นชื่อที่ได้จากคำสั่งแรก บน Windows ใช้ nslookup example.com ns1.provider.net การอ่านผล
- Name Server ต้นทางตอบค่าใหม่ แต่ 8.8.8.8 ยังตอบค่าเก่า: ค่าที่แก้ถูกต้องแล้ว เหลือแค่รอ Cache หมดอายุตาม TTL
- Name Server ต้นทางก็ยังตอบค่าเก่า: คุณแก้ผิดที่ หรือยังไม่ได้บันทึก ให้ตรวจว่าแก้ที่ผู้ให้บริการเดียวกับที่ NS ชี้ไปหรือไม่
หากต้องการเห็นเส้นทางการถามทั้งหมดตั้งแต่ Root Server ลงมา ใช้
dig +trace example.com
คำสั่งนี้มีประโยชน์เมื่อเพิ่งเปลี่ยน Name Server เพราะจะเห็นว่า Registry ของโดเมน (เช่น .com) ส่งต่อไปยัง Name Server ชุดใด
ขั้นตอนที่ 5: ตรวจ Record ที่ใช้บ่อยในงานจริง
| ต้องการตรวจ | คำสั่ง |
|---|---|
| เว็บชี้มาที่เซิร์ฟเวอร์ใหม่หรือยัง | dig +short example.com และ dig +short www.example.com |
| อีเมลไปที่ใด | dig +short MX example.com |
| SPF | dig +short TXT example.com |
| DMARC | dig +short TXT _dmarc.example.com |
| DKIM (selector default) | dig +short TXT default._domainkey.example.com |
| Reverse DNS ของ IP | dig +short -x 203.0.113.10 |
| CAA (มีผลกับการออก SSL) | dig +short CAA example.com |
ความหมายของแต่ละ Record ดูได้ที่ ทำความรู้จัก DNS Record: A, AAAA, CNAME, MX, TXT และ NS
ขั้นตอนที่ 6: ล้าง DNS Cache ในเครื่อง
ถ้า DNS สาธารณะตอบค่าใหม่แล้ว แต่เครื่องคุณยังเปิดเว็บเก่า ให้ล้าง Cache ของเครื่อง
Windows (Command Prompt แบบ Run as administrator)
ipconfig /flushdns
macOS
sudo dscacheutil -flushcache
sudo killall -HUP mDNSResponder
Linux ที่ใช้ systemd-resolved (เช่น Ubuntu Desktop และ Server)
sudo resolvectl flush-caches
เบราว์เซอร์บางตัวมี Cache ของตัวเองด้วย ให้ปิดแล้วเปิดใหม่ หรือทดสอบในหน้าต่างแบบ Private อย่าลืมตรวจไฟล์ hosts ของเครื่องว่าไม่มีบรรทัดที่ผูกโดเมนนี้ไว้กับ IP เก่า (ดู วิธีการแก้ไข Hosts File บน macOS)
ตรวจสอบผลลัพธ์
ถือว่า DNS ถูกต้องและกระจายตัวแล้ว เมื่อ
- Name Server ต้นทางตอบค่าที่คุณตั้งไว้
8.8.8.8และ1.1.1.1ตอบค่าเดียวกัน- เครื่องของคุณหลังล้าง Cache ได้ค่าเดียวกัน และเปิดบริการได้ตามที่คาด
ปัญหาที่พบบ่อย
nslookup ขึ้น Non-existent domain หรือ dig ได้ NXDOMAIN
ชื่อนั้นไม่มีอยู่ใน DNS ตรวจการสะกด ถ้าเป็น Subdomain ให้ตรวจว่าได้เพิ่ม Record แล้ว ถ้าเป็นโดเมนหลัก ให้ตรวจว่าโดเมนยังไม่หมดอายุ และตั้ง Name Server ไว้ถูกต้องที่ผู้ให้บริการจดโดเมน
dig ได้ SERVFAIL
Name Server ของโดเมนไม่ตอบ หรือมี DNSSEC ค้างไว้จากผู้ให้บริการเดิม (DS Record ที่ Registry ไม่ตรงกับกุญแจของ Name Server ใหม่) ให้ลองเทียบผลกับ dig +cd example.com ซึ่งปิดการตรวจ DNSSEC ถ้าคำสั่งนี้ได้คำตอบ ให้ลบหรือแก้ DS Record ที่ผู้ให้บริการจดโดเมน
connection timed out; no servers could be reached
เครื่องของคุณติดต่อ DNS Server ไม่ได้ อาจเกิดจาก Firewall ของเครือข่ายบล็อก Port 53 ขาออก ให้ลองจากเครือข่ายอื่น หรือถ้าตรวจจากเซิร์ฟเวอร์ ให้ดูการตั้งค่า Resolver ใน /etc/resolv.conf
ผลลัพธ์จากแต่ละ DNS Server ไม่ตรงกัน
เป็นเรื่องปกติในช่วงหลังแก้ Record แต่ละ Resolver จำค่าเดิมไว้ตาม TTL ใช้ขั้นตอนที่ 4 ยืนยันว่าต้นทางถูกแล้ว จากนั้นรอ
หากตรวจแล้วยังไม่แน่ใจว่าผลที่ได้หมายถึงอะไร ติดต่อทีมงาน THAI DATA CLOUD ได้ที่ https://thaidata.cloud/contact/ โดยแนบผลลัพธ์จากคำสั่ง dig หรือ nslookup มาด้วย
- Categories:
- Cloud
- Tags:
- Cloud
- Cloud Server
Related Posts
หมวดหมู่ที่น่าสนใจ
- Account Settings
- AD Server
- AI
- Alibaba Cloud
- Anti-Spam Gateway
- AWS Amazon Web Services
- Campaign
- CentOS/AlmaLinux
- Cloud
- Cloud Backup
- Cloud Communication
- Cloud Migration
- Cloud Security
- Cloud Server Management
- Cloud Solution
- Cloud Solution for Government
- Cloud Solutions by Industry
- Cloud Storage
- Cloud VPS App Plus +
- Cloud VPS DirectAdmin
- Cloud VPS Plesk
- CSR
- Cyber Security
- Cybersecurity
- Data Sovereignty
- Database Server
- DDoS
- Digital Tranformation
- Digital Transformation
- Direct Mail
- Directadmin
- Domainname
- Ecommerce
- ERP
- Generative AI
- Getting Started
- Google Cloud
- Google G Suite
- Huawei Cloud
- IT News
- Linux Server
- Managed Cloud Services
- Managed Service Provider
- Manual
- Microsoft
- Microsoft 365
- Microsoft Azure
- News
- On-premise
- Private Mail Server
- Promotion
- Recommend Solution (Enterprise)
- Server
- Sovereign Cloud
- THAI DATA CLOUD Platform
- Ubuntu
- Ubuntu
- Uncategorized
- VMware
- VPS Server
- Web Design
- Web Hosting
- Web Hosting (DirectAdmin)
- Web Hosting (Plesk)
- Web Technologies
- Windows Server
- Wordpress
- Zimbra
- เรื่องราวความประทับใจ
- โซลูชันสำหรับธุรกิจการผลิตและยานยนต์
- โซลูชันสำหรับธุรกิจการศึกษา
- โซลูชันสำหรับธุรกิจการเงิน
- โซลูชันสำหรับธุรกิจขนส่งและกระจายสินค้า
- โซลูชันสำหรับธุรกิจค้าปลีก
- โซลูชันสำหรับธุรกิจท่องเที่ยว
- โซลูชันสำหรับธุรกิจบริการสุขภาพและโรงพยาบาล
- โซลูชันสำหรับธุรกิจประกันภัย
- โซลูชันสำหรับธุรกิจพลังงานและสาธารณูปโภค
- โซลูชันสำหรับธุรกิจสื่อสารมวลชนและเอ็นเตอร์เทนเมนท์
- โซลูชันสำหรับธุรกิจอสังหาริมทรัพย์
- โซลูชันสำหรับธุรกิจเทคโนโลยี


