使用Linux服务器实现时间同步方法及步骤
本文将介绍如何使用Linux服务器来实现时间同步。准确的时间同步对于许多计算机应用非常重要,例如日志记录、安全管理和数据分析等。本文将分为四个方面,分别介绍NTP服务、配置NTP、使用Chrony管理NTP和使用systemd-timesyncd同步系统时间。
1、NTP服务
网络时间协议(NTP)是一个用于同步计算机的时钟的协议,它可以在全球时间服务器之间传递时间数据以实现准确同步。许多Linux系统都默认安装了NTP服务,但需要确保该服务已在系统中启用。可以通过以下命令检查NTP服务是否安装:
```
ntp --version
```
如果返回版本信息,则NTP服务已在系统上安装。如果未安装,则可以使用以下命令安装:
```
sudo apt-get install ntp
```
2、配置NTP
配置NTP服务需要编辑ntp.conf文件。可以使用以下命令打开该文件:```
sudo nano /etc/ntp.conf
```
以下是ntp.conf文件的示例:
```
# /etc/ntp.conf, configuration for ntpd; see ntp.conf(5) for help
driftfile /var/lib/ntp/drift
# Enable this if you want statistics to be logged.
#statsdir /var/log/ntpstats/
statistics loopstats peerstats clockstats
filegen loopstats file loopstats type day enable
filegen peerstats file peerstats type day enable
filegen clockstats file clockstats type day enable
# Specify one or more NTP servers.
# Use servers from the NTP Pool Project. Approved by Ubuntu Technical Board
# on 2011-02-08 (LP: #104525). See http://www.pool.ntp.org/join.html for
# more information.
server 0.ubuntu.pool.ntp.org
server 1.ubuntu.pool.ntp.org
server 2.ubuntu.pool.ntp.org
server 3.ubuntu.pool.ntp.org
# Use Ubuntus ntp server as a fallback.
server ntp.ubuntu.com
# Access control configuration; see /usr/share/doc/ntp-doc/html/accopt.html
# for details. The web page
# Note that "restrict" applies to both servers and clients, so a configuration
# that might be intended to block requests from certain clients could also end
# up blocking replies from your own upstream servers.
# By default, exchange time with everybody, but dont allow configuration.
restrict -4 default kod notrap nomodify nopeer noquery limited
restrict -6 default kod notrap nomodify nopeer noquery limited
# Local users may interrogate the ntp server more closely.
restrict 127.0.0.1
restrict ::1
# Needed for adding pool entries
restrict source notrap nomodify noquery
```
在NTP配置文件中,我们可以指定时钟偏移的文件位置、使用的NTP服务器列表、日志选项和访问控制代码等设置。在使用NTP服务器之前,我们需要确保服务器已开始工作。可以使用以下命令启动NTP服务:
```
sudo service ntp start
```
3、使用Chrony管理NTP
Chrony是一个轻量级、更快速的替代品,也可用于NTP。如果您使用的是Ubuntu 18.04或更高版本,则可能默认使用Chrony而不是NTP。可以使用以下命令安装Chrony:```
sudo apt-get install chrony
```
与NTP类似,Chrony也有一个配置文件,位于/etc/chrony/chrony.conf。以下是chrony.conf文件的示例:
```
# Welcome to the chrony configuration file. See chrony.conf(5) for more
# information about usuable directives.
# Use public servers from the pool.ntp.org project.
# Please consider joining the pool (http://www.pool.ntp.org/join.html).
#pool 2.debian.pool.ntp.org offline iburst
pool pool.ntp.org iburst
# Record the rate at which the system clock gains/losses time.
driftfile /var/lib/chrony/drift
# Allow the system clock to be stepped in the first three updates
# if its offset is larger than 1 second.
makestep 1.0 3
# Enable kernel synchronization of the real-time clock (RTC).
rtcsync
# Enable hardware timestamping on all interfaces that support it.
#hwtimestamp *
# Increase the minimum number of selectable sources required to adjust
# the system clock.
#minsources 2
# Allow NTP client access from local network.
#allow 192.168.0.0/16
# Serve time even if not synchronized to a time source.
#local stratum 10
# Specify file containing keys for NTP authentication.
#keyfile /etc/chrony/chrony.keys
# Specify directory for log files.
logdir /var/log/chrony
# Select which information is logged.
#log measurements statistics tracking
```
与NTP相比,Chrony具有更多配置选项,例如“local stratum”选项,可指定本地时钟与系统时钟之间的差异。
您可以使用以下命令启动Chrony服务:
```
sudo service chrony start
```
4、使用systemd-timesyncd同步系统时间
systemd-timesyncd是一个轻量级的系统守护程序,用于同步系统时间。如果您使用的是Ubuntu 16.04或更高版本,则可能默认使用systemd-timesyncd而不是NTP或Chrony。您可以使用以下命令配置systemd-timesyncd:```
sudo timedatectl set-ntp true
```
如果需要手动配置NTP服务器,请使用以下命令编辑配置文件:
```
sudo nano /etc/systemd/timesyncd.conf
```
以下是systemd-timesyncd.conf文件的示例:
```
[Time]
NTP=ntp.ubuntu.com
FallbackNTP=ntp.ubuntu.com 1.ubuntu.pool.ntp.org 0.ubuntu.pool.ntp.org
```
可以使用以下命令启动systemd-timesyncd:
```
sudo systemctl start systemd-timesyncd
```
如果您想检查同步状态,请使用以下命令:
```
timedatectl
```
您应该看到上述命令返回的输出,其中显示了系统的时间设置和同步状态。如果同步成功,您将看到类似以下内容的输出:
```
Local time: Tue 2021-12-21 05:27:36 UTC
Universal time: Tue 2021-12-21 05:27:36 UTC
RTC time: n/a
Time zone: Etc/UTC (UTC, +0000)
NTP enabled: yes
NTP synchronized: yes
RTC in local TZ: no
DST active: n/a
Last DST change: n/a
```
如果同步失败,则可以通过使用以下命令轻松重启服务来解决此问题:
```
sudo systemctl restart systemd-timesyncd
```
这就是使用Linux服务器实现时间同步的全部内容。
总结:
在本文中,我们介绍了如何使用Linux服务器来实现准确的时间同步。我们首先介绍了NTP服务和Chrony,它们是实现时间同步的两个常见选择,然后介绍了使用systemd-timesyncd同步系统时间。无论您选择哪种方法,确保时间同步是关键,特别是对于需要准确时间戳的应用程序。
本文皆由ntptimeserver.com作者独自创作为原创,如有侵权请联系我们,转载请注明出处!