- 1 1. Giới thiệu: Tại sao đồng bộ thời gian lại quan trọng?
- 2 2. ntpd là gì? Vai trò và lựa chọn trên Ubuntu
- 3 3. Cài đặt và cấu hình ntpd trên Ubuntu
- 4 4. Cấu hình và tùy biến NTP server
- 5 5. Kiểm tra hoạt động và khắc phục sự cố ntpd
- 6 6. So sánh ntpd với các công cụ đồng bộ thời gian khác
- 7 7. Câu hỏi thường gặp (FAQ)
- 8 8. Tổng kết: Tăng độ tin cậy hệ thống nhờ đồng bộ thời gian ổn định
1. Giới thiệu: Tại sao đồng bộ thời gian lại quan trọng?
Vấn đề do sai lệch thời gian hệ thống gây ra
Trên các hệ thống Linux như Ubuntu, việc giữ cho thời gian chính xác là vô cùng quan trọng. Thoạt nhìn, có thể nghĩ sai lệch thời gian chỉ là vấn đề nhỏ, nhưng trong vận hành máy chủ hoặc môi trường chạy ứng dụng, sai lệch thời gian có thể dẫn đến sự cố nghiêm trọng.
Ví dụ, các vấn đề sau có thể xảy ra:
- Không thể đảm bảo tính nhất quán của log
Nếu thời gian ghi trong log hệ thống hoặc log ứng dụng bị lệch, việc xác định nguyên nhân sự cố sẽ trở nên khó khăn. - Lỗi khi thực thi cron job
Các tác vụ định kỳ (backup, batch job,…) có thể không chạy đúng giờ, dẫn đến hoạt động ngoài dự kiến. - Lỗi xác thực chứng chỉ SSL và bảo mật
Với giao tiếp HTTPS hoặc xác thực SSH, thời gian chính xác là điều kiện bắt buộc. Nếu bị lệch, chứng chỉ có thể bị đánh giá là “hết hạn”, gây lỗi kết nối.
Những vấn đề này đặc biệt nghiêm trọng khi vận hành nhiều máy chủ đồng bộ trên mạng.
Vai trò và tầm quan trọng của NTP
Để phòng tránh những sự cố như vậy, NTP (Network Time Protocol) được sử dụng để đồng bộ hóa thời gian hệ thống tự động thông qua kết nối với máy chủ thời gian trên internet hoặc mạng nội bộ.
Trên Ubuntu, có thể sử dụng nhiều công cụ NTP như ntpd, chrony, systemd-timesyncd,… Bài viết này tập trung vào ntpd (Network Time Protocol daemon) và giải thích chi tiết cách cài đặt, thiết lập và vận hành ntpd trên Ubuntu.
Đặc biệt đối với server chạy lâu dài hoặc hệ thống cần log nhất quán, ntpd được đánh giá cao về độ ổn định.
Phần tiếp theo sẽ giới thiệu ntpd là gì, vai trò cơ bản và các lựa chọn đồng bộ thời gian trên Ubuntu.
2. ntpd là gì? Vai trò và lựa chọn trên Ubuntu
Tổng quan và đặc điểm của ntpd
ntpd
(Network Time Protocol Daemon) là chương trình chạy nền giúp giữ thời gian hệ thống chính xác bằng cách giao tiếp thường xuyên với máy chủ NTP trên internet hoặc mạng LAN.
Đặc điểm của ntpd là thực hiện đồng bộ thời gian “mượt mà”, tức là điều chỉnh thời gian từng chút một thay vì thay đổi đột ngột, tránh ảnh hưởng đến các dịch vụ đang chạy.
Ngoài ra, ntpd còn hỗ trợ các chức năng nâng cao như giao tiếp đối xứng và xác thực, phù hợp với môi trường doanh nghiệp yêu cầu đồng bộ thời gian ổn định và bảo mật cao.
Các công cụ đồng bộ thời gian trên Ubuntu
Trên Ubuntu, có các lựa chọn đồng bộ thời gian sau:
- ntpd (gói ntp)
Được sử dụng rộng rãi trong môi trường cần vận hành lâu dài, yêu cầu cấu hình chi tiết. Ưu điểm là tính linh hoạt, ổn định và có thể đồng bộ thời gian với máy chủ NTP công cộng với độ chính xác cao. - chrony
Là lựa chọn thay thế ntpd đang ngày càng phổ biến nhờ độ chính xác cao và tốc độ đồng bộ nhanh khi khởi động. Rất phù hợp với môi trường tài nguyên thấp hoặc máy ảo. Nhiều bản phân phối hiện chọn chrony mặc định. - systemd-timesyncd
Là dịch vụ đồng bộ thời gian nhẹ, mặc định có trên Ubuntu 20.04 trở lên. Cấu hình đơn giản nhưng chức năng hạn chế, không phù hợp nếu cần thiết lập nâng cao hoặc làm NTP server nội bộ.
Lý do chọn ntpd và các ưu điểm
Lý do lớn nhất nên chọn ntpd trên Ubuntu là tính ổn định và đáng tin cậy. Đặc biệt phù hợp với:
- Server chạy liên tục cần độ chính xác thời gian cao
- Xây dựng NTP server trong mạng LAN nội bộ
- Doanh nghiệp cần chức năng xác thực hoặc kiểm soát nâng cao
Hơn nữa, ntpd có tính tương thích cao với nhiều hệ thống hiện có và đã được kiểm chứng qua thực tế, giúp giảm rủi ro khi triển khai.
3. Cài đặt và cấu hình ntpd trên Ubuntu
Cách cài đặt ntpd
Để sử dụng ntpd trên Ubuntu, hãy cài gói ntp
bằng lệnh sau:
sudo apt update
sudo apt install ntp
Lệnh này sẽ tự động cài ntpd và các file liên quan. Lưu ý, trên một số phiên bản Ubuntu có thể chrony hoặc systemd-timesyncd đã được bật mặc định. Khi đó, nên tắt hoặc gỡ các dịch vụ đó trước.
sudo systemctl stop systemd-timesyncd
sudo systemctl disable systemd-timesyncd
Bật dịch vụ và kiểm tra trạng thái
Sau khi cài xong, hãy bật và kiểm tra trạng thái dịch vụ ntpd:
sudo systemctl enable ntp
sudo systemctl start ntp
sudo systemctl status ntp
Nếu hiện “active (running)”, tức là ntpd đang chạy bình thường.
Kiểm tra và chỉnh sửa file cấu hình ban đầu
File cấu hình của ntpd là /etc/ntp.conf
. Mặc định, nhiều máy chủ NTP toàn cầu (pool.ntp.org) đã được đăng ký.
Để kiểm tra nội dung file cấu hình:
cat /etc/ntp.conf
Nếu muốn chỉ định máy chủ tại Việt Nam hoặc khu vực châu Á, hãy chỉnh như sau:
server ntp.nict.jp iburst
Tham số iburst
giúp tăng tốc đồng bộ khi kết nối lần đầu.
Sau khi chỉnh sửa, hãy khởi động lại ntpd để áp dụng:
sudo systemctl restart ntp
Kiểm tra tự động đồng bộ thời gian
Sau khi khởi động, ntpd sẽ tự động đồng bộ với máy chủ NTP. Để xác nhận:
ntpq -p
Lệnh này hiển thị danh sách máy chủ NTP, độ trễ, sai số thời gian,…
4. Cấu hình và tùy biến NTP server
Chọn NTP server khuyến nghị
Khi cấu hình ntpd, việc chọn NTP server chất lượng sẽ giúp đồng bộ thời gian ổn định hơn. Một số NTP server uy tín tại Nhật Bản/Châu Á:
ntp.nict.jp
(Viện Công nghệ Thông tin và Truyền thông Nhật Bản)ntp.jst.mfeed.ad.jp
(JST – Mfeed)ntp.ring.gr.jp
(Internet Multifeed)
Các server này sử dụng đồng hồ nguyên tử nên rất chính xác và cho phép sử dụng miễn phí cho mục đích cá nhân.
Cách cấu hình trong /etc/ntp.conf
:
server ntp.nict.jp iburst
server ntp.jst.mfeed.ad.jp iburst
server ntp.ring.gr.jp iburst
Các tùy chọn cấu hình chi tiết trong ntp.conf
Bên cạnh chỉ định máy chủ NTP, /etc/ntp.conf
còn cho phép điều chỉnh nhiều hành vi khác. Một số tùy chọn phổ biến:
- restrict directive
Giới hạn hoặc cho phép các kết nối từ client. Nên hạn chế kết nối không cần thiết để tăng bảo mật. Ví dụ, cho phép truy cập từ mạng LAN nội bộ:
restrict 192.168.0.0 mask 255.255.255.0 nomodify notrap
- driftfile
Chỉ định file lưu thông tin sai lệch đồng hồ hệ thống. Thường giữ mặc định.
driftfile /var/lib/ntp/ntp.drift

Xây dựng NTP server trong mạng LAN nội bộ
Trên Ubuntu, bạn có thể vận hành ntpd như một NTP server phân phối thời gian cho các thiết bị khác trong mạng nội bộ. Cấu hình này hữu ích khi không có internet hoặc cần đồng bộ thời gian giữa nhiều máy trong LAN.
Các bước cấu hình điển hình:
- Thêm rule restrict vào
/etc/ntp.conf
để cho phép truy cập từ LANrestrict 192.168.0.0 mask 255.255.255.0 nomodify notrap
- Ở phía client, chỉ định NTP server nội bộ
server 192.168.0.10 iburst # IP nội bộ của NTP server
- Mở cổng UDP 123 trên firewall
sudo ufw allow 123/udp
Nếu firewall chặn, đồng bộ thời gian sẽ không thực hiện được và lệnh ntpq sẽ không hiển thị trạng thái kết nối.
5. Kiểm tra hoạt động và khắc phục sự cố ntpd
Cách kiểm tra trạng thái dịch vụ
Để kiểm tra ntpd có chạy bình thường không, sử dụng lệnh:
sudo systemctl status ntp
Nếu hiện active (running)
là bình thường. Nếu inactive
hoặc failed
, có thể do lỗi cấu hình hoặc thiếu gói phụ thuộc.
Xem log chi tiết bằng:
journalctl -u ntp
Để tra lịch sử khởi động và lỗi của dịch vụ ntpd.
Kiểm tra trạng thái đồng bộ (ntpq -p)
Để kiểm tra ntpd có đồng bộ với máy chủ NTP hay không, dùng:
ntpq -p
Ví dụ kết quả:
remote refid st t when poll reach delay offset jitter
==============================================================================
*ntp.nict.jp .NICT. 1 u 25 64 377 1.123 -0.345 0.024
Ý nghĩa các cột:
remote
: Tên máy chủ NTPst
: Cấp bậc server (stratum), 1 là chính xác nhấtreach
: Lịch sử kết nối thành công (8 bit)delay
: Độ trễ mạng (ms)offset
: Sai lệch thời gian (ms)jitter
: Độ dao động
Nếu có dấu *
trước tên server, đó là máy chủ đang được đồng bộ.
Lỗi thường gặp và cách xử lý
Các lỗi phổ biến khi sử dụng ntpd và cách khắc phục:
1. ntpq -p
không hiển thị / reach bằng 0
- Nguyên nhân: Có thể do firewall hoặc router chặn cổng UDP 123
- Khắc phục: Kiểm tra cấu hình firewall trên server/client, đảm bảo đã cho phép giao tiếp NTP.
sudo ufw allow 123/udp
2. Hiện “System clock not synchronized
“
- Nguyên nhân: ntpd chưa khởi động hoặc xung đột với dịch vụ đồng bộ khác
- Khắc phục: Vô hiệu hóa dịch vụ không cần thiết và khởi động lại ntpd.
sudo systemctl disable systemd-timesyncd
sudo systemctl restart ntp
3. Lỗi không thể phân giải tên NTP server
- Nguyên nhân: Lỗi DNS hoặc mạng
- Khắc phục: Kiểm tra phân giải tên với
ping ntp.nict.jp
và chỉnh cấu hình DNS nếu cần.
4. Thời gian bị lệch lớn nhưng không tự đồng bộ
- Nguyên nhân: ntpd không tự điều chỉnh nếu sai lệch quá lớn (vì lý do an toàn)
- Khắc phục: Chỉnh thời gian thủ công trước rồi khởi động lại ntpd.
sudo ntpd -gq # Đồng bộ ngay lập tức 1 lần
sudo systemctl restart ntp
Để giám sát liên tục
Trong môi trường vận hành, nên thiết lập script ghi log kết quả ntpq -p
định kỳ và cảnh báo khi có dấu hiệu bất thường như log gián đoạn hoặc reach liên tục bằng 0 để phát hiện sự cố sớm.
6. So sánh ntpd với các công cụ đồng bộ thời gian khác
Các công cụ đồng bộ thời gian phổ biến trên Ubuntu
Trên Ubuntu, có nhiều công cụ đồng bộ thời gian với các đặc điểm riêng. Ba công cụ tiêu biểu là:
- ntpd (gói ntp)
- chrony
- systemd-timesyncd
Hiểu rõ sự khác biệt giúp lựa chọn giải pháp phù hợp với từng môi trường.
Đặc điểm của ntpd
- Ưu điểm
- Đã được kiểm chứng lâu năm, rất ổn định và đáng tin cậy
- Hỗ trợ nhiều chức năng và cấu hình nâng cao (xây dựng NTP server nội bộ, xác thực,…)
- Tương thích cao với các máy chủ NTP công cộng, có nhiều tài liệu hướng dẫn
- Nhược điểm
- Khởi động xong lần đầu có thể đồng bộ chậm
- Khả năng thích ứng với môi trường mạng ảo hóa hoặc động không cao bằng chrony
Đặc điểm của chrony
- Ưu điểm
- Đồng bộ rất nhanh sau khi khởi động, chỉnh lệch thời gian tức thì
- Chính xác cả trong môi trường ảo hóa hoặc mạng thay đổi (laptop, VPN, …)
- Học tự động dựa trên tình trạng thực tế, có thể chính xác hơn ntpd trong nhiều trường hợp
- Nhược điểm
- Cấu hình NTP server nội bộ phức tạp hơn
- Tài liệu và ví dụ thực tiễn ít hơn ntpd
Đặc điểm của systemd-timesyncd
- Ưu điểm
- Mặc định bật trên Ubuntu 20.04+, cài đặt và quản lý rất đơn giản
- Chỉ cung cấp các chức năng tối thiểu, rất nhẹ nhàng
- Tích hợp sâu với systemd, dễ sử dụng cho cấu hình mặc định
- Nhược điểm
- Chức năng hạn chế, không hỗ trợ vận hành như NTP server nội bộ hoặc cấu hình nâng cao
- Độ chính xác và tính năng ghi log đơn giản, không phù hợp với hệ thống lớn
Bảng so sánh công cụ
Đặc điểm | ntpd | chrony | systemd-timesyncd |
---|---|---|---|
Độ chính xác | Cao | Rất cao | Bình thường |
Tốc độ đồng bộ lần đầu | Có thể chậm | Rất nhanh | Bình thường |
Vận hành NTP server nội bộ | ◎ | ○ (phức tạp hơn) | × (không hỗ trợ) |
Tính linh hoạt cấu hình | Cao | Trung bình | Thấp |
Thích ứng với môi trường ảo hóa | △ | ◎ | ○ |
Kinh nghiệm triển khai, tài liệu | ◎ | ○ | △ |
Khuyến nghị sử dụng | Server, môi trường đồng bộ nội bộ | Môi trường ảo hóa, laptop | PC đơn lẻ, người mới dùng |
Khuyến nghị theo từng trường hợp sử dụng
- Server hoặc môi trường chạy liên tục
→ Nên dùng ntpd hoặc chrony để đảm bảo ổn định, chính xác - Môi trường cloud, máy ảo, laptop
→ chrony là lựa chọn tối ưu về linh hoạt và chính xác - PC đơn lẻ, chỉ cần đồng bộ cơ bản
→ systemd-timesyncd là đủ
7. Câu hỏi thường gặp (FAQ)
Q1. Ubuntu 22.04 đã cài sẵn ntpd chưa?
A1.
Không, Ubuntu 22.04 mặc định không cài ntpd
. Thay vào đó, systemd-timesyncd
được bật mặc định để đồng bộ thời gian đơn giản. Nếu muốn dùng ntpd
, cần cài gói ntp
bằng tay.
sudo apt install ntp
Sau khi cài, hãy tắt systemd-timesyncd
để tránh xung đột.
Q2. ntpq -p
không hiển thị kết quả?
A2.
Có nhiều nguyên nhân:
- Dịch vụ chưa khởi động: Kiểm tra bằng
sudo systemctl status ntp
, khởi động nếu cần - Không thể kết nối máy chủ NTP: Kiểm tra firewall có chặn UDP 123 không
- Lỗi cấu hình: Kiểm tra file
/etc/ntp.conf
có chính xác không
Trước tiên hãy thử lệnh:
ntpq -p
Nếu không có dữ liệu hoặc reach = 0, có thể do không kết nối được máy chủ ngoài.
Q3. Nên chọn ntpd hay chrony?
A3.
Tùy môi trường sử dụng:
- Server vật lý chạy lâu dài, muốn xây dựng NTP server nội bộ → nên dùng
ntpd
vì ổn định - Môi trường ảo hóa, laptop, mạng thay đổi →
chrony
chính xác, nhanh hơn - Chỉ cần đồng bộ đơn giản →
systemd-timesyncd
là đủ
Q4. ntpd -gq
có tác dụng gì?
A4.
ntpd -gq
sẽ đồng bộ thời gian với máy chủ NTP một lần duy nhất và thoát.
-g
: Cho phép chỉnh lệch lớn-q
: Chạy một lần rồi thoát (không chạy nền)
Dùng khi thời gian lệch quá lớn mà ntpd không tự sửa được.
Q5. Có nên chỉ định nhiều NTP server không?
A5.
Nên. Chỉ định nhiều máy chủ NTP giúp tăng độ tin cậy, dự phòng khi một server gặp sự cố, các server khác vẫn cung cấp thời gian chính xác.
server ntp.nict.jp iburst
server ntp.jst.mfeed.ad.jp iburst
server ntp.ring.gr.jp iburst
8. Tổng kết: Tăng độ tin cậy hệ thống nhờ đồng bộ thời gian ổn định
Khẳng định lại ưu điểm của ntpd
Trên hệ thống Ubuntu, đồng bộ thời gian chính xác không chỉ là tiện lợi mà còn liên quan trực tiếp đến bảo mật, xử lý sự cố, quản lý log và tự động hóa.
Bài viết này đã giải thích toàn diện về NTP (Network Time Protocol), nguyên lý hoạt động và cấu hình ntpd, xác minh, tuỳ biến, khắc phục sự cố, so sánh với các công cụ khác.
Lời khuyên cho người đọc
Trên Ubuntu, chọn công cụ đồng bộ thời gian phù hợp sẽ phụ thuộc vào mục tiêu, cấu trúc hệ thống, yêu cầu sẵn sàng hoạt động. Tuy nhiên, không thể có vận hành ổn định nếu thiếu đồng bộ thời gian chính xác — đây là nguyên tắc chung cho mọi môi trường.
- Nếu vận hành server, cần quản lý log tốt → hãy cấu hình kỹ
ntpd
hoặcchrony
- Nếu chỉ cần đồng bộ đơn giản cho 1 máy →
systemd-timesyncd
là đủ
Độ chính xác thời gian có thể khó nhận thấy hàng ngày, nhưng sẽ rất quan trọng khi cần xử lý sự cố hoặc kiểm tra log.
Hãy tham khảo bài viết để chọn giải pháp đồng bộ thời gian phù hợp nhất cho hệ thống Ubuntu của bạn!