NTP hay Network Time Protocol là giao thức được sử dụng để đồng bộ hóa tất cả các đồng hồ hệ thống trong mạng để sử dụng cùng một lúc. Khi chúng tôi sử dụng thuật ngữ NTP, chúng tôi đang đề cập đến chính giao thức cũng như các chương trình máy khách và máy chủ chạy trên các máy tính nối mạng. NTP thuộc bộ giao thức TCP/IP truyền thống và có thể dễ dàng được phân loại là một trong những phần lâu đời nhất của nó.
Khi bạn thiết lập đồng hồ lần đầu tiên để đồng bộ hóa với NTP, phải mất sáu lần trao đổi trong vòng 5 đến 10 phút trước khi đồng hồ được thiết lập. Sau khi đồng hồ trong mạng được đồng bộ hóa, (các) máy khách sẽ cập nhật đồng hồ của họ với máy chủ 10 phút một lần. Điều này thường được thực hiện thông qua một lần trao đổi tin nhắn (giao dịch). Các giao dịch này sử dụng port 123 của hệ thống của bạn.
Trong bài viết này, chúng tôi sẽ mô tả quy trình từng bước về cách:
- Cài đặt và định cấu hình máy chủ NTP trên máy Ubuntu.
- Định cấu hình Máy khách NTP để được đồng bộ hóa thời gian với máy chủ.
Chúng tôi đã chạy các lệnh và quy trình được đề cập trong bài viết này trên hệ thống Ubuntu 22.04 LTS.
Cài đặt và cấu hình NTP Server trên máy chủ
Thực hiện theo các bước sau để cài đặt máy chủ NTP trên máy chủ Ubuntu của bạn:
Lưu ý: Chúng tôi đang sử dụng dòng lệnh Ubuntu, Terminal, để cài đặt và định cấu hình NTP. Bạn có thể mở ứng dụng Terminal thông qua tìm kiếm trong trình khởi chạy ứng dụng hoặc phím tắt Ctrl+Alt+T.
Bước 1: Cập nhật package repository index
Để cài đặt các phiên bản phần mềm mới nhất từ kho lưu trữ trên Internet, chỉ mục kho lưu trữ cục bộ của bạn phải phù hợp với chúng. Chạy lệnh sau dưới dạng sudo để cập nhật chỉ mục kho lưu trữ cục bộ của bạn:
$ sudo apt update
Bước 2: Cài đặt NTP Server với apt-get
Vui lòng chạy lệnh sau dưới dạng sudo để cài đặt daemon máy chủ NTP từ kho APT:
$ sudo apt install ntp
Xin lưu ý rằng chỉ người dùng được ủy quyền mới có thể thêm, xóa và định cấu hình phần mềm trên Ubuntu.
Hệ thống có thể yêu cầu bạn nhập mật khẩu sudo và cung cấp cho bạn tùy chọn Y/n để tiếp tục cài đặt. Nhập Y rồi nhấn enter; máy chủ NTP sau đó sẽ được cài đặt trên hệ thống của bạn. Tuy nhiên, quá trình này có thể mất một chút thời gian, tùy thuộc vào tốc độ Internet của bạn.
Bước 3: Xác minh cài đặt (tùy chọn)
Bạn có thể xác minh cài đặt NTP của mình và cũng kiểm tra số phiên bản bằng cách chạy lệnh sau trong Terminal:
$ sntp --version
Bước 4: Chuyển sang nhóm máy chủ NTP gần vị trí của bạn nhất
Khi bạn cài đặt máy chủ NTP, nó chủ yếu được cấu hình để lấy thời gian thích hợp. Tuy nhiên, bạn có thể chuyển nhóm máy chủ sang nhóm gần vị trí của bạn nhất. Điều này bao gồm thực hiện một số thay đổi trong tệp /etc/ ntp .conf .
Mở tệp trong trình chỉnh sửa nano dưới dạng sudo bằng cách chạy lệnh sau:
$ sudo nano /etc/ntp.conf
Trong tập tin này, bạn sẽ có thể xem danh sách nhóm. Chúng tôi đã đánh dấu danh sách này trong hình trên. Nhiệm vụ ở đây là thay thế danh sách nhóm này bằng nhóm máy chủ thời gian gần vị trí của bạn nhất. Dự án pol.ntp.org cung cấp dịch vụ NTP đáng tin cậy từ một cụm máy chủ thời gian lớn. Để chọn danh sách nhóm theo vị trí của bạn, hãy truy cập trang sau:
https://support.ntp.org/bin/view/Servers/NTPPoolServers
Chúng tôi đã tìm kiếm danh sách nhóm cho Hoa Kỳ:
Trang này yêu cầu chúng tôi thêm các dòng sau vào tệp ntp.conf:
server 0.us.pool.ntp.org
server 1.us.pool.ntp.org
server 2.us.pool.ntp.org
server 3.us.pool.ntp.org
Đây là giao diện của tệp của tôi sau khi thêm các dòng trên vào nó:
Thoát khỏi tệp bằng cách nhấn Ctrl + X và nhập y để lưu các thay đổi.
Bước 5: Khởi động lại máy chủ NTP
Để những thay đổi trên có hiệu lực, bạn cần khởi động lại máy chủ NTP. Chạy lệnh sau dưới dạng sudo để làm như vậy:
$ sudo service ntp restart
Bước 6: Xác minh rằng NTP Server đang chạy
Bây giờ, hãy kiểm tra trạng thái của dịch vụ NTP thông qua lệnh sau:
$ sudo service ntp status
Trạng thái Hoạt động xác minh rằng máy chủ NTP của bạn đang hoạt động.
Bước 7: Cấu hình Tường lửa để (các) máy khách có thể truy cập máy chủ NTP
Cuối cùng, đã đến lúc định cấu hình tường lửa UFW của hệ thống của bạn để các kết nối đến có thể truy cập máy chủ NTP tại port 123 UDP.
Chạy lệnh sau dưới dạng sudo để mở port 123 cho lưu lượng truy cập đến:
$ sudo ufw allow from any to any port 123 proto udp
Máy chủ Ubuntu của bạn hiện được định cấu hình là máy chủ NTP.
Định cấu hình NTP Client để được đồng bộ hóa thời gian với NTP Server
Bây giờ chúng ta hãy định cấu hình Ubuntu client của mình để được đồng bộ hóa thời gian với NTP Server.
Bước 1: Cài đặt ntpdate
Lệnh ntpdate sẽ cho phép bạn kiểm tra cấu hình kết nối của mình với máy chủ NTP theo cách thủ công. Mở ứng dụng Terminal trên máy khách và nhập lệnh sau dưới dạng sudo:
$ sudo apt-get install ntpdate
Bước 2: Chỉ định IP và tên máy chủ của NTP Server trong tệp hosts
Để máy chủ NTP của bạn được phân giải bằng tên máy chủ trong máy khách, bạn cần định cấu hình tệp /etc/hosts của mình.
Mở tệp máy chủ dưới dạng sudo trong trình chỉnh sửa nano bằng cách nhập lệnh sau:
$ sudo nano /etc/hosts
Bây giờ hãy thêm IP của máy chủ NTP của bạn và chỉ định tên máy chủ như sau trong tệp này:
Thoát tệp bằng cách nhấn Ctrl + X và sau đó lưu tệp bằng cách nhập y.
Bước 3: Kiểm tra xem thời gian của client có được đồng bộ hóa với NTP server
Lệnh ntpdate sau đây sẽ cho phép bạn kiểm tra thủ công xem thời gian có được đồng bộ hóa giữa hệ thống máy khách và máy chủ hay không:
$ sudo ntpdate NTP-server-host
Đầu ra lý tưởng nhất phải hiển thị độ lệch thời gian giữa hai hệ thống.
Bước 4: Disable the systemd timesyncd service trên client
Vì chúng tôi muốn client của mình đồng bộ hóa thời gian với máy chủ NTP, hãy tắt dịch vụ timesyncd trên máy khách.
Nhập lệnh sau để làm như vậy:
$ sudo timedatectl set-ntp off
Bước 5: Cài đặt NTP trên client của bạn
Chạy lệnh sau dưới dạng sudo để cài đặt NTP trên máy khách của bạn:
$ sudo apt-get install ntp
Bước 6: Cấu hình tệp /etc/ntp.conf để thêm NTP Server của bạn làm máy chủ thời gian mới
Bây giờ chúng tôi muốn máy khách của mình sử dụng máy chủ lưu trữ NTP của riêng chúng tôi để sử dụng làm máy chủ thời gian mặc định. Để làm được điều này, chúng ta cần chỉnh sửa tệp /etc/ntp.conf trên máy khách.
Chạy lệnh sau dưới dạng sudo để mở tệp trong trình chỉnh sửa nano:
$ sudo nano /etc/ntp.conf
Sau đó, thêm dòng sau vào tệp, trong đó NTP-server-host là tên máy chủ bạn đã chỉ định cho máy chủ NTP của mình:
server NTP-server-host prefer iburst
Tệp của tôi trông như thế này sau khi tôi chỉ định máy chủ thời gian:
Nhấn Ctrl+x để đóng tệp và nhập y để lưu các thay đổi.
Bước 7: Khởi động lại NTP Server
Để những thay đổi trên có hiệu lực, bạn cần khởi động lại dịch vụ NTP. Chạy lệnh sau dưới dạng sudo để làm như vậy:
$ sudo service ntp restart
Bước 8: Xem Time Synchronization Queue
Bây giờ client và server của bạn đã được cấu hình để đồng bộ hóa thời gian. Bạn có thể xem time synchronization queue bằng cách chạy lệnh sau:
$ntpq -ps
Bạn sẽ có thể xem NTP-server-host là máy chủ/nguồn đồng bộ hóa thời gian trong hàng đợi.
Vì vậy, đây là tất cả những gì bạn cần biết về cách cài đặt và định cấu hình NTP để đồng bộ hóa thời gian trên các máy Ubuntu được nối mạng của bạn. Quá trình này có vẻ hơi phức tạp nhưng nếu bạn làm theo tất cả các bước trên một cách cẩn thận, máy của bạn sẽ được đồng bộ hóa ngay lập tức.