Troubleshooting: แก้ DNS และไล่ปัญหา Cloud Server บน TDC

แท็บ Troubleshooting ของ Cloud Server บน TDC Enterprise แก้ DNS ของ Linux ด้วย DNS check ตั้งค่าให้อยู่ถาวรหลังรีบูต และลำดับตรวจเมื่อ SSH หรือ RDP เข้าไม่ได้

โดย ทีมงาน THAI DATA CLOUD อ่าน 12 นาที

แชร์FacebookXLINELinkedIn
Troubleshooting — Troubleshooting: แก้ DNS และไล่ปัญหา Cloud Server บน TDC
Troubleshooting: แก้ DNS และไล่ปัญหา Cloud Server บน TDC

คำตอบสั้น ๆ: แท็บ Troubleshooting ของ Cloud Server บน TDC Enterprise แก้ DNS ของ Linux ด้วย DNS check ตั้งค่าให้อยู่ถาวรหลังรีบูต และลำดับตรวจเมื่อ SSH หรือ RDP เข้าไม่ได้

คู่มือนี้อธิบาย Troubleshooting ทีละขั้นตอน พร้อมคำสั่งที่ใช้ได้จริงและปัญหาที่พบบ่อย

แท็บ Troubleshooting ในหน้าจัดการ Cloud Server ของ TDC Enterprise คือเครื่องมือแก้ปัญหาที่สั่งจากพอร์ทัลได้โดยไม่ต้องล็อกอินเข้าเครื่องเอง ปัจจุบันมีเครื่องมือ DNS check ซึ่งเข้าไปตรวจไฟล์ /etc/resolv.conf ของเครื่อง Linux และเพิ่ม Name Server ให้เมื่อเครื่องแปลงชื่อโดเมนไม่ได้ อาการที่พบบ่อยคือ apt update หรือ dnf update ล้มเหลว ส่งอีเมลออกไม่ได้ หรือแอปเรียก API ภายนอกไม่ได้ ทั้งที่ ping ด้วย IP ได้ปกติ

คู่มือนี้เหมาะกับผู้ดูแล Linux Server บน TDC Enterprise และคนที่ต้องรับมือเมื่อเชื่อมต่อ SSH หรือ RDP ไม่ได้ เมื่ออ่านจบ คุณจะรู้ว่า Troubleshooting ทำอะไรและไม่ได้ทำอะไร ใช้ DNS check ใน Troubleshooting ได้ถูกจังหวะ ทำให้การแก้ DNS อยู่ถาวรหลังรีบูต และมีลำดับการตรวจจากพอร์ทัลเมื่อเข้าเครื่องไม่ได้ ตั้งแต่สถานะเครื่อง กราฟทรัพยากร กฎไฟร์วอลล์ ไปจนถึง Console

สิ่งที่ต้องเตรียม

  • บัญชี TDC Enterprise และ Cloud Server ที่เป็น Linux (Windows Server ใช้ DNS check ไม่ได้ ปุ่ม Run จะกดไม่ได้พร้อมข้อความ This feature is not supported on Windows OS.)
  • Username และรหัสผ่านของระบบปฏิบัติการ ควรเป็น root หรือผู้ใช้ที่ใช้ sudo ได้โดยไม่ต้องใส่รหัสซ้ำ เพราะเครื่องมือต้องเขียนไฟล์ระบบ ถ้าลืมรหัสผ่าน ดูคู่มือ Reset OS Password
  • เครื่องต้องเปิดอยู่ และรับการเชื่อมต่อ SSH พอร์ต 22 ด้วยรหัสผ่านได้ เพราะเครื่องมือนี้ล็อกอินเข้าเครื่องผ่าน SSH ที่ Public IP ของเครื่อง
  • สำหรับการตรวจด้วยตัวเอง: สิทธิ์ใช้ปุ่ม Remote (Console) และ Start/Stop ซึ่งสงวนไว้ให้เจ้าของบัญชี

เซิร์ฟเวอร์ในโซน TH-Zenith จะไม่มีแท็บ Troubleshooting ในหน้าจัดการ ให้แก้ DNS ด้วยตัวเองตามขั้นตอนที่ 5

ตารางเปรียบเทียบอาการของ Cloud Server ว่าแท็บ Troubleshooting ช่วยได้หรือไม่ และควรใช้เครื่องมือใดในพอร์ทัลแทน
DNS check แก้ได้เฉพาะเครื่อง Linux ที่ยังเข้า SSH ได้แต่แปลงชื่อโดเมนไม่ได้

ขั้นตอนที่ 1: แยกให้ออกว่าเป็นปัญหา DNS หรือเข้าเครื่องไม่ได้

Troubleshooting แก้เฉพาะกรณีที่เครื่องยังทำงานและยังเข้าทาง SSH ได้ แต่แปลงชื่อโดเมนไม่ได้ ถ้าคุณเข้า SSH ได้อยู่แล้ว ทดสอบสองคำสั่งนี้

ping -c 2 8.8.8.8
ping -c 2 archive.ubuntu.com

ถ้าคำสั่งแรกได้ผลตอบกลับ แต่คำสั่งที่สองขึ้นว่า Temporary failure in name resolution แสดงว่าเครื่องออกอินเทอร์เน็ตได้ แต่ DNS ใช้งานไม่ได้ นี่คืออาการที่ DNS check แก้ได้ ถ้าคำสั่งแรกก็ไม่ตอบ ปัญหาอยู่ที่เครือข่ายหรือไฟร์วอลล์ขาออก ไม่ใช่ DNS ให้ไปที่ส่วนลำดับการตรวจเมื่อเข้าเครื่องไม่ได้ท้ายคู่มือ วิธีอ่านผล ping และ traceroute ละเอียดขึ้นดูได้ที่คู่มือไล่ปัญหาเครือข่าย

ขั้นตอนที่ 2: เปิดแท็บ Troubleshooting

ไปที่ Cloud Instance > Linux Server คลิกชื่อเครื่อง แล้วเลือกแท็บ Troubleshooting ซึ่งอยู่ถัดจาก Backup ในแถบแท็บของเครื่อง (Overview, Monitoring, Disk, Network, Security, Backup, Troubleshooting) ภายในแท็บ Troubleshooting มีแท็บย่อย Network และการ์ด Network Connectivity คำอธิบาย Verifying Access via DNS Configuration

ในการ์ดมีหัวข้อ DNS check พร้อมคำอธิบาย Checks /etc/resolv.conf on the instance for a working nameserver entry and fixes the DNS settings so network access can be restored. และปุ่ม Run ที่มุมขวา

ขั้นตอนที่ 3: รัน DNS check

  1. คลิก Run หน้าต่าง Troubleshooting จะเปิดขึ้น แสดงชื่อเครื่องและ IP ที่จะเชื่อมต่อ
  2. ช่อง Username ระบบเติมชื่อผู้ใช้ของเครื่องไว้ให้ ตรวจว่าเป็นผู้ใช้ที่มีสิทธิ์ root
  3. ช่อง Password ใส่รหัสผ่าน OS ของผู้ใช้นั้น (อย่างน้อย 6 ตัวอักษรตามที่ฟอร์มตรวจ)
  4. คลิก Run ปุ่มจะเปลี่ยนเป็น Running… ระบบจะลองเชื่อมต่อซ้ำได้หลายครั้ง จึงอาจใช้เวลาหลายสิบวินาที อย่าปิดหน้าต่าง

เมื่อ Troubleshooting ทำงานสำเร็จจะมีข้อความ Success และหน้าต่างปิดเอง สิ่งที่เครื่องมือทำคือตรวจว่าใน /etc/resolv.conf มีบรรทัด nameserver 8.8.8.8 หรือยัง ถ้ายังไม่มีจะเพิ่มบรรทัดนี้ต่อท้ายไฟล์ ถ้ามีอยู่แล้วจะไม่แก้อะไร เครื่องมือไม่ได้ลบค่าเดิม ไม่ได้แก้ไฟร์วอลล์ และไม่ได้รีสตาร์ตบริการใด

ถ้า Troubleshooting ขึ้นข้อผิดพลาด สาเหตุที่พบบ่อยคือรหัสผ่านผิด เครื่องปิด SSH แบบรหัสผ่าน (ใช้คีย์อย่างเดียว) หรือ SSH เปิดเฉพาะ IP สำนักงานใน Security Group ทำให้ระบบของพอร์ทัลเชื่อมต่อเพื่อรัน Troubleshooting ไม่ได้ ในกรณีนี้ให้แก้ DNS เองผ่าน SSH หรือ Console ตามขั้นตอนที่ 5

หน้าจอจำลองหน้าต่าง Troubleshooting ของ TDC Enterprise กรอก Username root และ Password เพื่อรัน DNS check บนเครื่อง web-01
เครื่องมือล็อกอินผ่าน SSH ด้วยรหัสผ่านนี้ แล้วเพิ่ม nameserver 8.8.8.8 ถ้ายังไม่มี (ภาพจำลอง)

ขั้นตอนที่ 4: ตรวจผลหลังรัน Troubleshooting

หลังแท็บ Troubleshooting แจ้ง Success ให้ล็อกอินเข้าเครื่อง แล้วตรวจว่าแปลงชื่อได้แล้ว

grep nameserver /etc/resolv.conf
getent hosts archive.ubuntu.com
sudo apt update

บรรทัด nameserver 8.8.8.8 ควรปรากฏในผลของคำสั่งแรก คำสั่งที่สองควรได้ IP กลับมา ถ้ายังไม่ได้ ให้ตรวจว่าไฟร์วอลล์ในเครื่องหรือกฎขาออกใน Security Group อนุญาต UDP และ TCP พอร์ต 53 ไปยัง 8.8.8.8 หรือไม่ เครื่องมือตรวจ DNS อื่น ๆ ดูได้ที่คู่มือตรวจสอบ DNS ด้วย nslookup และ dig

ขั้นตอนที่ 5: ทำให้การตั้ง DNS อยู่ถาวร

บน Ubuntu และ Debian รุ่นใหม่ /etc/resolv.conf มักเป็นลิงก์ไปยังไฟล์ที่ systemd-resolved สร้างเองใน /run บรรทัดที่ Troubleshooting เพิ่มไว้จึงอาจหายไปเมื่อรีบูตหรือเมื่อ systemd-resolved เขียนไฟล์ใหม่ ตรวจด้วย readlink -f /etc/resolv.conf ถ้าได้ /run/systemd/resolve/stub-resolv.conf ให้ตั้ง DNS ที่ systemd-resolved โดยตรง

sudo mkdir -p /etc/systemd/resolved.conf.d
sudo tee /etc/systemd/resolved.conf.d/dns.conf >/dev/null <<'EOF'
[Resolve]
DNS=8.8.8.8 1.1.1.1
EOF
sudo systemctl restart systemd-resolved
resolvectl status | grep -A2 'DNS Servers'

บน AlmaLinux และ Rocky Linux ที่ใช้ NetworkManager ให้ดูชื่อการเชื่อมต่อก่อนด้วย nmcli connection show แล้วตั้งค่า (เปลี่ยน "System eth0" เป็นชื่อที่เห็นจริง)

sudo nmcli connection modify "System eth0" ipv4.dns "8.8.8.8 1.1.1.1" ipv4.ignore-auto-dns yes
sudo nmcli connection up "System eth0"
cat /etc/resolv.conf

คำสั่ง nmcli connection up ทำให้การเชื่อมต่อเครือข่ายสะดุดชั่วครู่ ถ้าทำผ่าน SSH ให้เปิด Console สำรองไว้ก่อน รายละเอียดตัวเลือกของ systemd-resolved ดูได้จากเอกสาร resolved.conf ของ systemd

Terminal แสดง ping ชื่อโดเมนล้มเหลวแต่ ping 8.8.8.8 ได้ และไฟล์ resolv.conf หลังรัน DNS check ในแท็บ Troubleshooting
ping IP ได้แต่ชื่อไม่ได้คือปัญหา DNS ถ้า resolv.conf เป็นลิงก์ไป /run ให้ตั้งค่าถาวรต่อ

ขั้นตอนที่ 6: ลำดับการตรวจจากพอร์ทัลเมื่อ SSH หรือ RDP เข้าไม่ได้

เมื่อเข้าเครื่องไม่ได้เลย Troubleshooting จะช่วยไม่ได้ เพราะเครื่องมือเองก็ต้องเข้า SSH ให้ไล่ตรวจตามลำดับนี้ เรียงจากเร็วและเสี่ยงน้อยไปหาช้าและกระทบมาก

  1. สถานะเครื่อง: ดูป้ายสถานะที่หัวหน้า ถ้าเป็น Stop ให้กด Start ตามคู่มือ Start, Stop, Restart
  2. แท็บ Monitoring: ดู CPU Usage, Memory Usage และ Disk Usage ถ้า CPU หรือหน่วยความจำเต็มค้างนาน เครื่องอาจตอบช้าจนหมดเวลาเชื่อมต่อ
  3. แท็บ Security: ตรวจว่ากฎ Inbound ยังอนุญาต SSH (22) หรือ RDP (3389) จาก Public IP ปัจจุบันของคุณ IP ของสำนักงานอาจเปลี่ยนโดยไม่มีใครแจ้ง
  4. Remote (Console): ที่แท็บ Overview กด Remote เพื่อเปิดหน้าจอเครื่องผ่านเว็บ ใช้ได้แม้เครือข่ายของเครื่องจะมีปัญหา จากนั้นตรวจบริการ sshd ไฟร์วอลล์ในเครื่อง และพื้นที่ดิสก์ (ดูคู่มือ Console ผ่าน Web UI)
  5. Reset OS Password: ถ้าปัญหาคือลืมรหัสผ่าน ไม่ใช่การเชื่อมต่อ
  6. Restart: ใช้เมื่อ Console ก็ค้าง บริการทั้งหมดบนเครื่องจะหยุดระหว่างรีสตาร์ต และถ้าระบบค้างอยู่ งานที่ยังไม่บันทึกอาจหาย

ถ้าทำครบทั้งลำดับนี้และใช้ Troubleshooting แล้วยังเข้าไม่ได้ ให้เปิด Ticket พร้อมชื่อเครื่อง IP เวลาที่เริ่มมีปัญหา และสิ่งที่ตรวจไปแล้ว ทีมงานจะไม่ต้องถามซ้ำ

ลำดับการตรวจ Cloud Server จากพอร์ทัล TDC Enterprise เมื่อ SSH หรือ RDP เข้าไม่ได้ ก่อนใช้ Troubleshooting หรือเปิด Ticket
ไล่จากขั้นที่เร็วและเสี่ยงน้อยก่อน เก็บ Restart ไว้เป็นทางเลือกท้าย ๆ

ปัญหาที่พบบ่อยเกี่ยวกับ Troubleshooting

ทำไมปุ่ม Run ใน Troubleshooting กดไม่ได้?

เครื่องเป็น Windows ซึ่งเครื่องมือ DNS check ในแท็บ Troubleshooting ไม่รองรับ จะมีข้อความ This feature is not supported on Windows OS. ใต้คำอธิบาย ให้ตั้ง DNS ใน Network adapter ของ Windows เอง หรือเปิด Ticket ให้ทีมงานช่วย

รัน DNS check แล้วขึ้น Success แต่รีบูตแล้วปัญหากลับมา เพราะอะไร?

เครื่องใช้ systemd-resolved หรือ NetworkManager ที่เขียน /etc/resolv.conf ใหม่ทุกครั้งที่เริ่มระบบ บรรทัดที่เพิ่มไว้จึงหายไป ให้ตั้งค่า DNS แบบถาวรตามขั้นตอนที่ 5

เครื่องมือ Troubleshooting เก็บรหัสผ่าน OS ที่กรอกไว้หรือไม่?

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

DNS check ใช้กับเครื่องที่ปิด SSH ด้วยรหัสผ่านได้ไหม?

ไม่ได้ Troubleshooting ล็อกอินด้วย Username และ Password เท่านั้น ถ้าเครื่องตั้ง PasswordAuthentication no ไว้ ให้แก้ DNS ด้วยตัวเองผ่าน SSH ด้วยคีย์หรือผ่าน Console

หากต้องการให้ทีมช่วยดูแลและแก้ปัญหาเซิร์ฟเวอร์แทน ติดต่อทีมงาน THAI DATA CLOUD หรือดูรายละเอียดบริการ Cloud Linux Server

อ่านเพิ่มเติมเกี่ยวกับ Troubleshooting

แชร์FacebookXLINELinkedIn

มีคำถามเรื่องบริการ? ติดต่อทีมงาน