Cách thiết lập đồng bộ hóa thời gian trên Ubuntu 20.04

Tác giả Network Engineer, T.Mười 22, 2021, 12:39:38 SÁNG

« Chủ đề trước - Chủ đề tiếp »

0 Thành viên và 2 Khách đang xem chủ đề.

Cách thiết lập đồng bộ hóa thời gian trên Ubuntu 20.04


Chấm công chính xác là một phần không thể thiếu trong việc triển khai phần mềm hiện đại. Nếu không có nó, bạn có thể gặp phải tình trạng hỏng dữ liệu, lỗi và các vấn đề khác khó gỡ lỗi. Đồng bộ hóa thời gian có thể giúp đảm bảo nhật ký của bạn đang được ghi theo đúng thứ tự và các cập nhật cơ sở dữ liệu được áp dụng thích hợp.

May mắn thay, Ubuntu 20.04 có đồng bộ hóa thời gian được tích hợp sẵn bên trong và kích hoạt theo mặc định sử dụng systemd của dịch vụ timesyncd. Trong bài viết này, bạn sẽ thực hành một số lệnh chung liên quan đến thời gian, xác minh rằng timesyncd đang hoạt động và cài đặt dịch vụ thời gian mạng thay thế.

Trước khi bắt đầu hướng dẫn này, bạn sẽ cần một máy chủ Ubuntu 20.04 với người dùng không root nhưng hỗ trợ quyền sudo và tường lửa, như được mô tả trong hướng dẫn thiết lập máy chủ Ubuntu 20.04 này.

1. Các lệnh thời gian cơ bản.

Để xem thời gian trên máy chủ của bạn, bạn sẽ sử dụng lệnh date. Bất kỳ người dùng nào cũng có thể chạy lệnh này để in ra ngày và giờ:

Mã nguồn [Chọn]
# date

Thông thường, máy chủ của bạn sẽ tạo đầu ra với múi giờ UTC mặc định.

Mã nguồn [Chọn]
Thu Aug 5 15:55:20 UTC 2021
UTC là Giờ Phối hợp Quốc tế, thời gian ở kinh độ 0 độ. Mặc dù điều này có thể không phản ánh múi giờ hiện tại của bạn, nhưng việc sử dụng Giờ quốc tế sẽ tránh nhầm lẫn khi cơ sở hạ tầng của bạn trải dài trên nhiều múi giờ.

Tuy nhiên, nếu bạn muốn thay đổi múi giờ của mình, bạn có thể sử dụng lệnh timedatectl.

Trước tiên, hãy chạy lệnh này để tạo danh sách các múi giờ có sẵn:

Mã nguồn [Chọn]
# timedatectl list-timezones
Danh sách các múi giờ sẽ in ra màn hình của bạn. Bạn có thể nhấn phím Space để xuống trang và phím b để lên trang. Khi bạn tìm thấy múi giờ chính xác, hãy ghi lại múi giờ đó rồi nhập phím q để thoát khỏi danh sách.

Tiếp theo, bạn có thể đặt múi giờ với lệnh timedatectl set-timezone bằng cách thay thế phần được đánh dấu bằng múi giờ bạn tìm thấy trong danh sách. Bạn sẽ cần sử dụng sudo timedatectl để thực hiện thay đổi này:

Mã nguồn [Chọn]
# sudo timedatectl set-timezone America/New_York
Bạn có thể xác minh các thay đổi của mình bằng cách chạy lại lệnh date:

Mã nguồn [Chọn]
# date
       
Mã nguồn [Chọn]
Thu Aug 5 11:56:01 EDT 2021
Tên viết tắt của múi giờ sẽ phản ánh giá trị mới được chọn.

Bây giờ bạn đã thực hành kiểm tra đồng hồ và thiết lập múi giờ, bạn có thể xác nhận rằng thời gian của bạn đang được đồng bộ hóa đúng cách trong phần tiếp theo.

2. Kiểm soát timesyncd với timedatectl.

Trước đây, hầu hết đồng bộ hóa thời gian mạng được xử lý bởi trình nền Giao thức Thời gian Mạng (Network Time Protocol Daemon) hoặc ntpd. Dịch vụ này kết nối với một nhóm các máy chủ NTP khác cung cấp cho nó các bản cập nhật thời gian liên tục và chính xác.

Nhưng bây giờ với cài đặt mặc định của Ubuntu, bạn có thể sử dụng timesyncd thay thế ntpd. Dịch vụ timesyncd hoạt động tương tự bằng cách kết nối với các máy chủ cùng thời gian, nhưng nhẹ hơn và được tích hợp chặt chẽ hơn với systemd trên Ubuntu.

Bạn có thể truy vấn trạng thái của timesyncd bằng cách chạy timedatectl mà không có đối số. Bạn không cần sử dụng sudo trong trường hợp này:

Mã nguồn [Chọn]
# timedatectl
Mã nguồn [Chọn]
                     Local time: Thu 2021-08-05 11:56:40 EDT
           Universal time: Thu 2021-08-05 15:56:40 UTC
                 RTC time: Thu 2021-08-05 15:56:41
                Time zone: America/New_York (EDT, -0400)
System clock synchronized: yes
              NTP service: active
          RTC in local TZ: no


Lệnh này in ra giờ địa phương, giờ quốc tế (có thể giống với giờ địa phương, nếu bạn không chuyển từ múi giờ UTC) và một số thông tin trạng thái giờ mạng.

System clock synchronized: yes phản ánh rằng thời gian được đồng bộ hóa thành công.
NTP service: active có nghĩa là thời gian timesyncd đã được thiết lập và chạy.

Nếu đầu ra của bạn cho thấy rằng dịch vụ NTP không hoạt động, hãy bật nó bằng timedatectl:

Mã nguồn [Chọn]
# sudo timedatectl set-ntp on
Sau đó, hãy chạy lại timedatectl để xác nhận trạng thái thời gian mạng. Có thể mất một phút để quá trình đồng bộ hóa diễn ra, nhưng cuối cùng System clock synchronized: sẽ đọc yesNTP service: sẽ hiển thị dưới dạng active.

3. Chuyển sang ntpd.

Dịch vụ timesyncd sẽ hoạt động trong hầu hết các trường hợp. Tuy nhiên, có những trường hợp khi một ứng dụng có thể nhạy cảm với bất kỳ sự xáo trộn nào theo thời gian. Trong trường hợp này, ntpd là một dịch vụ thời gian mạng thay thế mà bạn có thể sử dụng. Dịch vụ ntpd sử dụng các kỹ thuật phức tạp để liên tục và dần dần giữ cho thời gian của hệ thống đi đúng hướng.

Trước khi cài đặt ntpd, bạn cần tắt timesyncd để ngăn hai dịch vụ xung đột với nhau. Bạn có thể thực hiện việc này bằng cách tắt đồng bộ hóa thời gian mạng bằng lệnh sau:

Mã nguồn [Chọn]
# sudo timedatectl set-ntp no
Xác minh rằng đồng bộ hóa thời gian bị tắt:

Mã nguồn [Chọn]
# timedatectl
Kiểm tra xem đầu ra của bạn có đọc không NTP service: inactive. Điều này có nghĩa là timesyncd đã dừng lại. Bây giờ bạn đã sẵn sàng để cài đặt dịch vụ ntp với APT.

Đầu tiên, hãy chạy apt update để làm mới chỉ mục gói cục bộ của bạn:

Mã nguồn [Chọn]
# sudo apt update
Sau đó, chạy apt install ntp để cài đặt gói này:

Mã nguồn [Chọn]
# sudo apt install ntp
Dịch vụ ntpd sẽ tự động khởi động sau khi cài đặt của bạn hoàn tất. Bạn có thể xác minh rằng mọi thứ đang hoạt động chính xác bằng cách truy vấn ntpd thông tin trạng thái:

Mã nguồn [Chọn]
# ntpq -p
Mã nguồn [Chọn]
   
           remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
 0.ubuntu.pool.n .POOL.          16 p    -   64    0    0.000    0.000   0.000
 1.ubuntu.pool.n .POOL.          16 p    -   64    0    0.000    0.000   0.000
 2.ubuntu.pool.n .POOL.          16 p    -   64    0    0.000    0.000   0.000
 3.ubuntu.pool.n .POOL.          16 p    -   64    0    0.000    0.000   0.000
 ntp.ubuntu.com  .POOL.          16 p    -   64    0    0.000    0.000   0.000
+t1.time.bf1.yah 129.6.15.28      2 u   16   64    1   61.766  -20.068   1.964
+puppet.kenyonra 80.72.67.48      3 u   16   64    1    2.622  -18.407   2.407
*ntp3.your.org   .GPS.            1 u   15   64    1   50.303  -17.499   2.708
+time.cloudflare 10.4.1.175       3 u   15   64    1    1.488  -18.295   2.670
+mis.wci.com     216.218.254.202  2 u   15   64    1   21.527  -18.377   2.414
+ipv4.ntp1.rbaum 69.89.207.99     2 u   12   64    1   49.741  -17.897   3.417
+time.cloudflare 10.4.1.175       3 u   15   64    1    1.039  -16.692   3.378
+108.61.73.243   129.6.15.29      2 u   14   64    1   70.060  -16.993   3.363
+ny-time.gofile. 129.6.15.28      2 u   21   64    1   75.349  -18.333   2.763
 golem.canonical 17.253.34.123    2 u   28   64    1  134.482  -21.655   0.000
 ntp3.junkemailf 216.218.254.202  2 u   19   64    1    2.632  -16.330   4.387
 clock.xmission. .XMIS.           1 u   18   64    1   24.927  -16.712   3.415
 alphyn.canonica 142.3.100.2      2 u   26   64    1   73.612  -19.371   0.000
 strongbad.voice 192.5.41.209     2 u   17   64    1   70.766  -18.159   3.481
 chilipepper.can 17.253.34.123    2 u   25   64    1  134.982  -19.848   0.000
 pugot.canonical 145.238.203.14   2 u   28   64    1  135.694  -21.075   0.000


Dịch vụ ntpq là một công cụ truy vấn cho ntpd. Tham số -p yêu cầu thông tin về các máy chủ NTP (hoặc peers) ntpd được kết nối với. Đầu ra của bạn sẽ hơi khác một chút nhưng sẽ liệt kê các máy chủ Ubuntu mặc định cùng với một số máy chủ khác. Hãy nhớ rằng có thể mất vài phút để ntpd thiết lập kết nối.

Trong bài viết này, bạn đã xem thành công giờ hệ thống, thay đổi múi giờ, làm việc với dịch vụ timesyncd mặc định của Ubuntu và đã cài đặt ntpd. Nếu bạn có nhu cầu về giờ hiện hành nâng cao, bạn có thể tham khảo tài liệu chính thức của NTP và cũng có thể xem qua Dự án NTP Pool, một nhóm tình nguyện viên toàn cầu cung cấp phần lớn cơ sở hạ tầng của NTP trên thế giới.