Hướng Dẫn Xử Lý VPS Bị Lệch Giờ So Với Thời Gian Thực

Trong quá trình sử dụng VPS, đôi khi bạn có thể gặp tình trạng thời gian hệ thống bị sai lệch so với thời gian thực tế. Điều này thường xảy ra khi dịch vụ NTP (Network Time Protocol) bị tắt, hoạt động không ổn định hoặc máy chủ không thể kết nối đến các máy chủ đồng bộ thời gian. Mặc dù đây là lỗi không quá nghiêm trọng, nhưng nó có thể ảnh hưởng đến hoạt động của website, ứng dụng, chứng chỉ SSL, cronjob và nhiều dịch vụ khác trên VPS.

Bài viết dưới đây sẽ hướng dẫn bạn cách kiểm tra và khắc phục nhanh lỗi sai giờ trên VPS Linux.

Hướng Dẫn Xử Lý VPS Bị Lệch Giờ So Với Thời Gian Thực

Bước 1: Đăng nhập vào VPS

Đăng nhập VPS qua SSH bạn có thể tham khảo tài liệu truy cập vào VPS 

Bước 2: Đồng bộ lại thời gian hệ thống

Khắc phục nhanh bằng cách lấy thời gian từ máy chủ Google:

vNode Tutorial
date -s "$(curl -H'Cache-Control:no-cache' -sI time.google.com | grep '^Date:' | cut -d' ' -f3-6)Z"

Bước 3: Kiểm tra lại kết quả

vNode Tutorial
timedatectl

Bước 4: Tạo Cron để cập nhật thời gian

Mặc dù thời gian trên VPS đã được cập nhật chính xác, nhưng sau khi khởi động lại (reboot), hệ thống vẫn có thể bị sai giờ nếu dịch vụ đồng bộ thời gian (NTP) không hoạt động hoặc gặp lỗi. Điều này có thể ảnh hưởng đến website, SSL, cronjob và nhiều dịch vụ khác trên máy chủ.

Để hạn chế tình trạng này, bạn có thể thiết lập các cronjob tự động đồng bộ thời gian từ máy chủ Google. Việc này giúp VPS luôn duy trì thời gian chính xác ngay sau khi khởi động và trong quá trình vận hành.

Đầu tiên, mở trình chỉnh sửa Cron bằng lệnh:

vNode Tutorial
crontab -e

Sau đó nhấn phím I để chuyển sang chế độ chỉnh sửa (nếu sử dụng trình soạn thảo Vim), rồi thêm các dòng sau vào cuối tệp:

vNode Tutorial
@reboot date -s "$(curl -H'Cache-Control:no-cache' -sI time.google.com | grep '^Date:' | cut -d' ' -f3-6)Z" 
0 * * * * date -s "$(curl -H'Cache-Control:no-cache' -sI time.google.com | grep '^Date:' | cut -d' ' -f3-6)Z"

Trong đó:

  • Cronjob @reboot sẽ tự động đồng bộ thời gian mỗi khi VPS khởi động lại.
  • Cronjob 0 * * * * sẽ thực hiện đồng bộ thời gian vào đầu mỗi giờ để đảm bảo đồng hồ hệ thống luôn chính xác.

Sau khi hoàn tất, nhấn ESC, nhập: :wq và nhấn Enter để lưu cấu hình.

Sau đó kiểm tra:

vNode Tutorial
crontab -l

Chúc các bạn thành công!