简介
网络时间协议(NTP)是一种网络协议,用于通过数据包交换的可变延迟数据网络在计算机系统之间进行时钟同步。NTP从1985年开始运行,是目前使用的最古老,最稳定的Internet协议之一。
NTP旨在将在公共Internet上运行的所有参与计算机同步到协调世界时(UTC)的几毫秒内。使用NTS-x000系列产品,可以在本地网络内部将精度提高到十几微秒。本文将详细介绍在linux和windows下如何配置NTP。
安装
ubuntu 安装:
sudo apt-get install ntp ntpstat ntpdate
CentOS 安装:
sudo apt-get install ntp ntpstat ntpdate
编写配置文件
配置文件:/etc/ntp.conf
restrict 管理权限:
在 ntp.conf 内可以利用『 restrict 』来控管权限,这个参数的设定方式为:
restrict [你的 IP] mask [netmask_IP] [parameter]
例如:
restrict 192.168.0.0 mask 255.255.255.0 nomodify
其中 parameter 的参数主要有底下这些:
-
ignore:拒绝所有类型的 NTP 连接;
-
nomodify:客户端不能使用 ntpc 与 ntpq 来修改服务器的时间参数,但客户端仍可通过过这部主机来进行网络校时的;
-
noquery:客户端不能够使用 ntpq, ntpc 等指令来查询时间服务器,等于不提供 NTP 的网路校时啰;
-
notrap:不提供 trap 这个远端事件登录(remote event logging)的功能;
-
notrust:拒绝没有认证的客户端。 那如果你没有在 parameter 的地方加上任何参数的话,这表示『该 IP
或网段不受任何限制』的意思喔!一般来说,我们可以先关闭 NTP 的使用权限,然后再一个一个的启用允许登入的网段。
设定上级服务器:
利用 server 设定上层 NTP 服务器
上层 NTP 服务器的设定方式为:server [IP or hostname] [prefer] 。例如:
server ntp.ntsc.ac.cn prefer
在 server 后端可以接 IP 或主机名称,prefer 表示优先使用。
driftfile用来记录时间差异
driftfile配置:
设定的方式如下:
driftfile /var/lib/ntp/ntp.drift
因为预设的NTP Server 本身的时间计算是依据BIOS 的晶片震荡周期频率来计算的,但是这个数值与上层 Time Server 不一定一致。所以NTP 这个daemon (ntpd) 会自动的去计算我们自己主机的频率与上层 Time server 的频率,并且将两个频率的误差记录下来,记录下来的档案就是在driftfile 后面接的完整档名当中了!关于档名你必须要知道:driftfile 后面接的文件路径需要使用完整路径档名。
完整示例:
# /etc/ntp.conf, configuration for ntpd;
#driftfile 文件
driftfile /var/lib/ntp/ntp.drift
# 日志文件
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
#配置上级服务器
server ntp.ntsc.ac.cn prefer
# 下面两行默认是拒绝所有来源的任何访问
restrict -4 default kod notrap nomodify nopeer noquery limited
restrict -6 default kod notrap nomodify nopeer noquery limited
#允许192.168.0.0/24网段主机进行同步
restrict 192.168.0.0 mask 255.255.255.0 nomodify
#开放本机的任何访问
restrict 127.0.0.1
restrict ::1
#外部时间服务器不可用时,以本地时间作为时间服务
server 127.127.1.0
fudge 127.127.1.0 stratum 5
重启ntp服务
首先手动同步时间。
ntpdate ntp.ntsc.ac.cn
重启ntp服务。
systemctl restart ntp
同步查询状态
ntpq -p
remote:即是NTP主机的IP或主机名称啰~注意最左边的符号
状态统计码:
" " – 无状态,表示:没有远程通信的主机
“LOCAL” 即本机
“x” – 已不再使用
“-” – 已不再使用
“#” – 良好的远程节点或服务器但是未被使用 (不在按同步距离排序的前六个节点中,作为备用节点使用)
“+” – 良好的且优先使用的远程节点或服务器(包含在组合算法中)
“*” – 当前作为优先主同步对象的远程节点或服务器
“o” – PPS 节点 (当优先节点是有效时)。实际的系统同步是源于秒脉冲信号(pulse-per-second,PPS),可能通过PPS 时钟驱动或者通过内核接口。
- refid:参考的上一层NTP主机的位址
- st:就是stratum阶层
- when:几秒钟前曾经做过时间同步化更新的动作
- poll:下一次更新在几秒钟之后
- reach:已经向上层NTP伺服器要求更新的次数
- delay:网路传输过程当中延迟的时间,单位为10^(-3)秒
- offset:时间补偿的结果,单位为10^(-3)秒
- jitter:Linux系统时间与BIOS硬体时间的差异时间,单位为10^(-3)秒。
同步服务器查询
ntpstat

windows NTP 配置
Win32Time
W32Time是内置的微软SNTP(不是NTP),因此它和完全的NTP相比是有限制rfc5905-09。所以相对于完全NTP。SNTP同步的准确性和多源性受到限制。所以为了达到更高精度需要使用完全的NTP软件。
NTP软件下载地址:https://elpromatime.com/downloads/
安装NTP软件
下载NTP软件包后安装后自动启动NTP服务,同时自动关闭W32Time。客户可以自行修改C:\WINDOWS\system32\drivers\etc\ntp.conf配置文件,后重新启动服务即可。

更改配置文件
ntp.conf的编写方法参考前文。在此处通常只需要更改本地NTP服务器地址即可。
查看同步状态
在命令行窗口使用ntpq命令查询,查询方式如下:

联系我们
我们是广州虹科,我们提供世界领先的时间同步解决方案。
本文详细介绍了如何在Linux(Ubuntu和CentOS)及Windows系统中配置NTP服务,包括安装NTP软件、设置权限、指定上级服务器、调整配置文件以及重启和检查服务的状态。NTP的主要目标是实现不同计算机系统间的时间同步,确保精度在几毫秒内。对于Linux,重点讲解了`/etc/ntp.conf`的配置,而在Windows中,由于内置的Win32Time精度有限,建议使用第三方NTP软件以提高准确性。

209

被折叠的 条评论
为什么被折叠?



