นาฬิกาคอมพิวเตอร์ไม่สมบูรณ์แบบ ให้เวลาสองสามวัน สัปดาห์หรือเดือน พวกเขาเลื่อนลอยและหยุดแสดงเวลาจริง พูดง่ายๆ ก็คือ หลังจากที่เลื่อนลอยแล้ว พวกเขาอาจแสดงว่า "10:30" แต่ในความเป็นจริงคือ "10:33" เป็นเรื่องปกติในคอมพิวเตอร์รุ่นเก่าที่จะปรับนาฬิกาคอมพิวเตอร์ด้วยตนเองเป็นระยะๆ แต่หลังจากที่การเชื่อมต่ออินเทอร์เน็ตแพร่หลาย ระบบปฏิบัติการสมัยใหม่ก็เริ่มปรับนาฬิกาโดยอัตโนมัติด้วยความช่วยเหลือจากเซิร์ฟเวอร์ NTP
NTP คืออะไร
NTP เป็นตัวย่อสำหรับ Network Time Protocol เป็นอัลกอริธึมที่ออกแบบมาเพื่อซิงโครไนซ์นาฬิกาคอมพิวเตอร์ผ่านการเชื่อมต่อเครือข่ายและทำให้นาฬิกามีความแม่นยำ
วิธีเปิดใช้งานการซิงโครไนซ์เวลาบน Linux
โชคดีที่การแจกแจงส่วนใหญ่ใช้รูปแบบการซิงโครไนซ์เวลาอย่างใดอย่างหนึ่งตั้งแต่แรกเริ่ม หากคุณไม่เคยสังเกตว่านาฬิกาในคอมพิวเตอร์ของคุณเคลื่อนไปจากนาฬิกาในโทรศัพท์ แสดงว่าคุณเกือบจะมีไคลเอ็นต์ NTP/daemon ทำงานอยู่แล้ว
บน Linux OS ที่มี systemd
ลีนุกซ์ส่วนใหญ่ได้นำ systemd มาใช้ และมาพร้อมกับ “systemd-timesyncd” daemon นั่นหมายความว่าคุณมีไคลเอ็นต์ NTP ที่ติดตั้งไว้แล้วบน Ubuntu, Debian, Fedora, Arch Linux, openSUSE, Manjaro และอื่นๆ ใน distros เหล่านี้และอื่น ๆ ที่อิงตามเหล่านี้ (เช่น OS ระดับประถมศึกษา, Zorin OS) ให้เรียกใช้สิ่งนี้เพื่อตรวจสอบว่าเปิดใช้งานการซิงค์ NTP หรือไม่:
timedatectl
หากคุณเห็น Network time on: yes
ในเอาต์พุต นาฬิกาคอมพิวเตอร์ของคุณจะถูกปรับโดยอัตโนมัติเป็นระยะผ่าน NTP บางครั้งคุณอาจสังเกตเห็นว่า NTP synchronized: no
ซึ่งอาจหมายความว่านาฬิกาซิงค์ผ่านเครื่องมืออื่นนอกเหนือจาก "systemd-timesyncd" นอกจากนี้ยังอาจหมายความว่า systemd-timesyncd ยังไม่ได้ซิงค์ แต่จะซิงค์ในภายหลัง
หากคุณเห็น Network time on: no
ให้เรียกใช้คำสั่งต่อไปนี้เพื่อเปิดใช้งานการซิงโครไนซ์เวลา NTP
sudo timedatectl set-ntp true
นั่นคือทั้งหมดที่คุณต้องทำกับการกระจายเหล่านี้
บน Linux OS ที่ไม่มี systemd
เมื่อ MX Linux ได้รับความนิยมอย่างมากเมื่อเร็ว ๆ นี้ ตัวอย่างเกี่ยวกับระบบปฏิบัติการนี้ดูเหมือนจะเหมาะสมที่จะเริ่มต้น เป็นกรณีพิเศษด้วย มัน "แบบ" มีระบบ แต่ "แบบ" ไม่มี timedatectl รายงานว่าเวลาของเครือข่าย "เปิดอยู่" แต่ไม่ได้ใช้ systemd-timesyncd
แล้วมันซิงค์ยังไง? คุณตรวจสอบได้ด้วยคำสั่งถัดไปซึ่งใช้กับระบบปฏิบัติการ Linux อื่นๆ ได้
sudo cat /var/log/syslog | grep ntp
บน MX Linux คุณจะได้ผลลัพธ์ที่คล้ายกับที่คุณเห็นในภาพต่อไปนี้
จากข้อความบันทึกที่กรองนี้ คุณจะเห็นว่าไคลเอ็นต์ "ntpdate" ทำงานเพียงครั้งเดียว นี่เป็นไคลเอนต์ยอดนิยม ติดตั้งโดยค่าเริ่มต้นบนลีนุกซ์รุ่นต่างๆ มีน้ำหนักเบาและสอบถามเฉพาะเซิร์ฟเวอร์ NTP เป็นระยะๆ ไม่ทำงานในพื้นหลังและถูกทริกเกอร์โดยสคริปต์ ซิงค์ แล้วออก
ซึ่งหมายความว่าเวลาไม่ได้ซิงค์ด้วยความแม่นยำสูงมาก (คิดว่าเป็นมิลลิวินาทีหรือไมโครวินาที) แต่แม่นยำเพียงพอสำหรับวัตถุประสงค์ส่วนใหญ่ โดยปกติจะแม่นยำ อย่างน้อยก็วินาที
ในระบบปฏิบัติการอื่น คุณอาจเห็น "ntpd" ซึ่งเป็น daemon ที่ทำงานอยู่เบื้องหลังและแม่นยำอย่างยิ่ง ยิ่งวิ่ง ยิ่งแม่นยำ
หากคุณต้องการติดตั้ง ntp
. ด้วยเหตุผลบางประการ หรือ ntpdate
บนระบบปฏิบัติการที่มี systemd ให้ปิดการใช้งานไคลเอ็นต์ ntp ของ systemd ก่อน
sudo timedatectl set-ntp false
แน่นอน คำสั่งข้างต้นไม่จำเป็นสำหรับ distros ที่ไม่ใช่ systemd
ติดตั้งไคลเอ็นต์ ntpdate
เหมาะสำหรับคอมพิวเตอร์ที่บ้าน แล็ปท็อป และอุปกรณ์อื่นๆ ที่ไม่ได้เชื่อมต่อกับอินเทอร์เน็ตตลอดเวลา
บน Debian, Ubuntu, Linux Mint, Zorin และ distros อื่น ๆ ตามสิ่งเหล่านี้ ให้เรียกใช้:
sudo apt install ntpdate
บน distros ที่ใช้เดเบียนทั้งหมดข้างต้น ได้รับการกำหนดค่าให้ทำงานหลังจากเห็นการเชื่อมต่อเครือข่ายใหม่ คุณบังคับให้ซิงค์เวลาตอนนี้ได้หากยกเลิกการเชื่อมต่อจากเครือข่ายแล้วเชื่อมต่อใหม่
บน Fedora ntpdate จะถูกเลิกใช้ ดังนั้นขอแนะนำให้คุณใช้ ntpd daemon แทน (ดูหัวข้อถัดไป) แนะนำให้ใช้เช่นเดียวกันสำหรับ distros อื่น ๆ ทั้งหมดด้วยเหตุผลสองประการ:
- บางครั้งอาจไม่รวม ntpdate ในแพ็คเกจแยกต่างหาก แต่รวมเข้ากับ ntpd จากส่วนถัดไป
- ไม่ได้ทำให้ ntpdate ทำงานโดยอัตโนมัติในทุกการเชื่อมต่อเครือข่าย คุณต้องแทรก ntpdate ด้วยตัวเองในสคริปต์ที่ทำงานโดยอัตโนมัติหลังจากเครือข่ายเชื่อมต่อ
ในกรณีนี้ การติดตั้ง ntpd ตามคำแนะนำในหัวข้อถัดไปจะเหมาะสมกว่า
ติดตั้ง ntpd Daemon
บน Debian, Ubuntu, Zorin, Mint และ distros อื่น ๆ ที่ใช้ Debian หรือ Ubuntu ให้เรียกใช้:
sudo apt install ntp
distros เหล่านี้จะเริ่มต้น ntpd ทันที จากนั้นเปิดโดยอัตโนมัติทุกครั้งที่บู๊ต คุณไม่จำเป็นต้องดำเนินการใดๆ เพิ่มเติม
บน Fedora ให้ติดตั้งด้วย:
sudo dnf install ntp
บน CentOS ให้เรียกใช้:
sudo yum install ntp
สำหรับ Arch Linux ให้ใช้:
sudo pacman -S ntp
และใน openSUSE ให้ป้อน:
sudo zypper install ntp
หลังจากนั้น ให้เปิดใช้งานบริการเพื่อเปิดใช้งานเมื่อบู๊ตแล้วเริ่ม:
sudo systemctl enable ntpd sudo systemctl start ntpd
ใน distros อื่นที่ทำงานโดยไม่มี systemd คุณอาจต้องเรียกใช้คำสั่งเหล่านี้แทน:
sudo update-rc.d ntpd enable sudo service ntpd start
หรืออะไรก็ตามที่เทียบเท่ากับระบบปฏิบัติการของคุณ
หากคุณได้รับข้อผิดพลาดที่ไม่มี ntpd ให้แทนที่ “ntpd” ด้วย “ntp” ในคำสั่งด้านบน ชื่อการแจกแจงบางชื่อไฟล์บริการ ntpd daemon ต่างกัน
บทสรุป
หายากมากที่คุณจะต้องทำตามขั้นตอนเหล่านี้บน Linux OS ที่มีอินเทอร์เฟซผู้ใช้แบบกราฟิกเป็นอย่างน้อย ควรกำหนดค่าการซิงค์เวลาสำหรับคุณแล้ว แต่ขั้นตอนเหล่านี้อย่างน้อยสามารถช่วยคุณแก้ปัญหาในบางครั้งได้ แผงควบคุมสภาพแวดล้อมเดสก์ท็อปจำนวนมากช่วยให้คุณสามารถเปิดและปิดการซิงโครไนซ์เวลาได้ ในเบื้องหลังพวกเขาใช้คำสั่งที่คล้ายกันเพื่อกำหนดค่านี้ให้กับคุณ คุณจึงทำเองได้เมื่อเครื่องมืออินเทอร์เฟซผู้ใช้แบบกราฟิกล้มเหลว