使用Linux NTP服务器同步外部时钟源,确保时间准确性 (linux ntp服务器外部时钟源)
随着计算机技术的不断发展,互联网已经成为了人们日常生活中必不可少的一部分。在网络中,时间是至关重要的,无线通讯,金融交易,电子邮件等功能都与时间紧密相关。因此,在网络中将时间同步是非常必要的。同时,在计算机网络中,由于网络延迟等因素的影响,当不同计算机计算时采用不同的系统时间,会导致数据同步问题,影响数据的准确性。因此,在计算机网络中必须使用合适的同步时间的工具来确保网络中各个节点的时间准确性。
Linux系统中自带的NTP(Network Time Protocol,网络时间协议)就是一种同步时间的工具,它可以自动从外部的时间服务器上获取时间,并同步本地计算机的时间,确保计算机时钟的准确性。
本文将着重介绍如何。
一、使用NTP同步时间
在Linux系统中,默认安装有NTP服务。NTP服务可以通过两个不同的方式来使用:NTP客户端和NTP服务器。
1. NTP客户端
NTP客户端是指向外部时间服务器请求时间的计算机。Linux下的ntp客户端命令为:ntpdate。
在终端中输入以下命令:
“`
sudo ntpdate ntp.nict.jp
“`
通过上述命令,将系统时间改为ntp.nict.jp服务器的时间。
此外,可以通过添加 crontab 自动更新系统时钟。在终端中输入以下命令:
“`
sudo nano /etc/crontab
“`
在该文件中的最后一行添加以下命令,进行计划任务设置:
“`
0 */3 * * * root ntpdate ntp.nict.jp
“`
以上命令的意思是,每3个小时自动更新一次系统时钟。其中 root 是指定执行用户,ntpdate ntp.nict.jp 是更新系统时钟的命令。
2. NTP服务器
NTP服务器是在网络中提供NTP协议服务的计算机。通过配置NTP服务器,可以在内部网络中同步时间。
1. 安装和配置ntp服务
在终端中输入以下命令,安装ntp服务:
“`
sudo apt-get install ntp
“`
安装成功后,可以通过以下命令查询ntp是否在运行:
“`
sudo service ntp status
“`
如果ntp没有在运行,输入以下命令来启动ntp服务:
“`
sudo service ntp start
“`
在配置ntp服务之前,需要先备份ntp.conf文件:
“`
sudo cp /etc/ntp.conf /etc/ntp.conf.bak
“`
然后编辑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/ntp.drift
# Specify one or more NTP servers.
server 0.jp.pool.ntp.org iburst
server 1.jp.pool.ntp.org iburst
server 2.jp.pool.ntp.org iburst
# Use servers from the NTP Pool Project. Approved by Ubuntu Technical Board
# on 2023-02-08 (LP: #104525). See http://www.pool.ntp.org/join.html for
# more information.
# Use Ubuntu’s ntp server as a fallback.
pool ntp.ubuntu.com
# Access control configuration; see /usr/share/doc/ntp-doc/html/accopt.html for
# detls. The web page
# might also be helpful.
#
# Note that “restrict” applies to both servers and clients, so a configuration
# that might be intended to block requests from certn clients could also end
# up blocking replies from your own upstream servers.
# By default, exchanges between the local host and all remote hosts are
# allowed. If you want to allow all traffic, just set this line to ‘any’.
#
# Use ‘restrict -4
‘ and ‘restrict -6 ‘ for versions before# 4.1.1.
restrict default kod nomodify notrap nopeer noquery
restrict -6 ::1
# Local users may interrogate the ntp server more closely.
restrict 127.0.0.1
restrict ::1
“`
在以上配置中,server设置需要同步的ntp服务器,同时需要在restrict中设置访问权限。如果默认设置不适合自己的需求,可以根据实际情况更改。
2. 启动服务并测试
完成ntp服务的配置后,需要启动服务。在配置文件保存后,通过以下命令启动ntp服务:
“`
sudo service ntp restart
“`
通过输入以下命令查看是否同步成功:
“`
ntpq -p
“`
在终端中输出的结果中,确保打钩的服务器为同步目标,并且refid中显示了正确的IP地址。
二、防止ntp偏移
ntp服务的同步时间会受到多种因素的影响,如带宽、延迟等。在NTP同步下,不同机器之间产生的时间偏移可能会在每个周期中根据计算机的使用而改变。
解决办法是在ntp.conf文件中配置tinker和minpoll等参数。tinker和minpoll等参数可以防止ntp同步机制的偏移。以下是ntp.conf文件的示例内容:
“`
tinker panic 0
tos minclock 3
minpoll 6 maxpoll 8
“`
其中,tinker panic 0表示:如果存在错误,则需要启动ntp服务。 minpoll 6 和maxpoll 8则表示,在6 ~ 8秒之间自动同步时间。
三、使用GUI程序配置ntp服务器
如果能够使用GUI程序,可以使用ntp设置工具ntp-config。
1. 安装ntp-config
在终端中输入以下命令,安装ntp-config工具:
“`
sudo apt-get install ntp-config
“`
2. 打开ntp-config
在终端中输入ntp-config命令,打开ntp配置工具。随后,根据工具中的指示进行配置。
按照指示进行配置之后,ntp-server已经设置好。
四、结论