环境:Win10_lstc_2019_x64
归类:software/ntp
简介:整理记录ntp软件安装使用的一些知识点,包括ntp服务端、ntp客户端、ntp监控。
重点:ntp服务端做权限控制的时候,发现鸟哥linux私房菜服务器架设篇中关于ntp配置描述是错误的。
1.NTP服务端
1.1.简介
在CentOS7,通过yum install ntp,即可(CentOS8移除了ntp,使用chrony)。
注意:ntp与ntpdate的区别,两者不能共存。ntp既可以配置成服务端又可以配置为客户端。ntpdate仅仅作为客户端对时指令,通过设置定时任务进行对时。ntp对时是平缓、圆滑的,逐步过渡的对时,不会像ntpdate一样突然变动,这样突变的时间可能会对某些服务造成损坏。
1.2.Windows
Windows上的专业ntp服务端软件并不多,虽然通过配置Windows的注册表和服务能够开启授时,但是并不建议这样做。下面将通过软件进行设置:ntp-4.2.8p15-v2,软件仅有win32版本,但是可以用在64位系统上。还有Windows对应的监控ntp-time-server-monitor-1.04
1.2.1.安装步骤
官网已经提供了具体的安装指导,下面仅仅是简单的翻译了一下(安装的操作系统:Win10_lstc_2019_x64):
-
协议说明
- 版权,主要是对软件包含的NTP、OpenSSL、Nullsoft等软件的协议进行了复述,最后表示本软件可以免费获取,免费使用,但是没有书面许可不允许打广告或者对软件进行分发,提醒用户由于免费,软件开发者不对软件的使用后果做任何担保。
选择 I Agree
- 安装路径
-
安装路径可以自由选择,路径尽量不带中文
选择合适的路径后,点击Next
-
选择安装组件
- NTP Daemon 必选,NTP的(守护)进程
- NTP Tools:NTP的一些工具,比如对NTP启动,停止,查询状态等可视化页面或指令
- NTP documentation:NTP帮助文档
- Create StartMenu:创建【开始菜单】
全部选择,点击Next
-
配置
①配置文件放置位置,尽量放在软件安装包下,不要修改
②创建一个初始化配置文件,可以根据地区自动选择公共的上层 NTP Servers,这里选择None
③可以手动输入9个NTP Servers,这里空着,后期再手动调整配置文件
④是否使用快速初始同步模式(iburst模式),当初始与上层NTP Servers同步请求时,采用突发方式接连发送8个报文,时间间隔为2秒。
-
⑤是否将本地时钟(127.127.1.0)作为最后一个关联的引用,设置权重12(默认值最大值15,权重最低)
可以默认不动,直接Next,也可以勾选⑤
-
提示
- 提醒没有设置有效的NTP Server,NTP将依赖本地时钟
选择是
-
提示
- 是否预览基础配置文件
选择是
预览文件如下:
# NTP Network Time Protocol
# **** ATTENTION ****: *You have to restart the NTP service when you change this file to activate the changes*
# PLEASE CHECK THIS FILE CAREFULLY AND MODIFY IT IF REQUIRED
# Configuration File created by Windows Binary Distribution Installer Rev.: 1.27 mbg
# please check http://www.ntp.org for additional documentation and background information
# restrict access to avoid abuse of NTP for traffic amplification attacks
# see http://news.meinberg.de/244 for details
restrict default noquery nopeer nomodify notrap
restrict -6 default noquery nopeer nomodify notrap
# allow status queries and everything else from localhost
restrict 127.0.0.1
restrict -6 ::1
# if you need to allow access from a remote host, you can add lines like this:
# restrict <IP OF REMOTE HOST>
# Use drift file
driftfile "C:\NTP\etc\ntp.drift"
# your local system clock, should be used as a backup
# (this is only useful if you need to distribute time no matter how good or bad it is)
server 127.127.1.0
# but it operates at a high stratum level to let the clients know and force them to
# use any other timesource they may have.
fudge 127.127.1.0 stratum 12
# End of generated ntp.conf --- Please edit this to suite your needs
不用修改,关闭txt即可
-
设置NTP服务
- 使用拥有系统管理权限的用户
- 设置开机自动启动NTP服务
- 关闭其他的时间服务
- 安装完毕后立即启动NTP服务
- 允许大的初始时间戳(翻译不准)
- 允许开始时启动多媒体定时器,可以提供毫秒级精度
选择Next,最后Finished
1.2.2.ntp.conf配置
注意:修改了ntp.conf文件以后需要重启ntp服务,才能生效。
NTP服务启动后需要几分钟左右的时间才会对外提供服务。
1.默认权限设定
restrict default noquery nopeer nomodify notrap
- 默认权限设置,关闭所有的NTP要求封包
restrict -6 default noquery nopeer nomodify notrap
- 忽略ipv6的所有请求
restrict参数主要用来设定权限的,语法:
restrict IP mask network_ip parameter
其中IP可以普通IP也可以是default,指所有地址,如果是网关IP,则对整个网关下的IP全部生效,network_ip是子网掩码parameter参数如下
ignore :关闭所有的 NTP 联机服务
nomodify:客户端不能更改服务端的时间参数,但是客户端可以通过服务端进行网络校时。
notrust :客户端除非通过认证,否则该客户端来源将被视为不信任子网。配置keys认证关键在于notrust参数,该参数的意思是只有trust的才可以访问该ntp服务。如果不加该参数就是表示既允许keys认证的访问,也允许不加keys的访问。
noquery :不提供客户端的时间查询:用户端不能使用ntpq,ntpc等命令来查询ntp服务器
notrap :不提供trap远端登陆:拒绝为匹配的主机提供模式 6 控制消息陷阱服务。陷阱服务是 ntpdq 控制消息协议的子系统,用于远程事件日志记录程序。
nopeer :用于阻止主机尝试与服务器对等,并允许欺诈性服务器控制时钟。不与其他同一层的ntp服务器进行时间同步
kod : 访问违规时发送 KoD 包。
2.本地信任
restrict 127.0.0.1
restrict -6 ::1
3.授权远程服务权限
restrict [ 客户端IP ] mask [ IP掩码 ] [参数]
restrict 192.168.0.1 mask 255.255.255.0 noquery nomodify
192.168.0.1-192.168.0.255 这个网段的IP,都可以对时。单个IP只需要mask 255.255.255.255即可,192.168.0.1是网关地址。255.255.255.0是子网掩码。
经过实验发现:
restrict default noquery nopeer nomodify notrap
restrict -6 default noquery nopeer nomodify notrap
如果default设置成上面,是默认所有的IP都可以对时,也允许上层授时服务器的时间传递,下面再加入的restrict限制只允许某些IP与该服务器进行对时,是没有意义的,权限不再生效(注意:此处经过实践证明,鸟哥linux私房菜服务器架设篇中关于ntp配置描述是错误的)。下面再加入的放松后的restrict是有效果的,如restrict 127.0.0.1,等于将上面的noquery nopeer nomodify notrap 对本机取消了。
如果需要对特定的IP或者IP段进行授时,需要以下配置:
restrict default ignore
restrict -6 default ignore
restrict 120.25.115.20
restrict 192.168.0.1 mask 255.255.255.0 nomodify notrap
server 120.25.115.20
首先限制所有的IP不能连接,然后再放开上层授时服务器的IP,最后放开需要对外提供授时的服务器IP段。120.25.115.20=s1b.time.edu.cn
4.上层授时服务器
server host [ key n ] [ version n ] [ prefer ] [ mode n ] [ minpoll n ] [ maxpoll n ] [ iburst ]
server IP1/Domain Name1 iburst minpoll 4 maxpoll 6 prefer
server IP2/Domain Name2
key: 表示所有发往服务器的报文包含有秘钥加密的认证信息,n是32位的整数,表示秘钥号。
version: 表示发往上层服务器的报文使用的版本号,n默认是3,可以是1或者2。
prefer: 如果有多个server选项,具有该参数的服务器优先使用。
mode: 指定数据报文mode字段的值。
minpoll: 指定与查询该服务器的最小时间间隔为2的n次方秒,n默认为6,范围为4-17。
maxpoll: 指定与查询该服务器的最大时间间隔为2的n次方秒,n默认为10,范围为4-17。
iburst: 当初始同步请求时,采用突发方式接连发送8个报文,时间间隔为2秒。
NTP消息的最大轮询间隔默认为10(1024秒=17分钟),可以通过maxpoll增加到17(36.4小时)的上限。最小轮询间隔默认为6(64秒),但可以通过minpoll降低到4(16秒的)下限。
server 120.25.115.20 prefer minpoll 4 maxpoll 6 iburst
5.本地时钟源
server 127.127.1.0
fudge 127.127.1.0 stratum 12
当没有时间同步来源的时候以自身的硬件时钟为准,这里的stratum是代表层级,创建时默认是12,0-15层。
ntpd 对下层 client 来说是 service server,对于上层 server 来说它是 client,也就是说新版的 NTP 服务程序已经不对服务端和客户端进行区分了,统一叫做 ntpd。ntpd 根据配置文件的参数决定是要为其他服务器提供时钟服务或者是从其他服务器同步时钟。
所以只需要将本机的stratum设置成server数+1即可。
6.其他
driftfile "C:\NTP\etc\ntp.drift"
用于记录主机在与上层授时服务器之间沟通时所花费的时间
ntpd 服务并不是在任何情况下都会进行同步的。当时钟服务器时间和本地时间相差大于1024s 时,ntp 服务就会认为是人为调整了时钟或出现了硬件故障,例如 CMOS 电池损坏等。此时,NTP服务就会退出,需要人工使用 ntpdate进行时钟同步。
采用 -g 选项可以让 ntpd 忽略 1000s 或更大误差
7.本地防护墙
ntp服务器默认UDP协议,123端口,需要在入站防火墙上进行端口UDP协议123的允许访问即可。
1.2.3.ntp状态监控
ntpq -p
列出本机与所有的server的状态
remote:远程时间服务器的 IP 地址或主机名,LOCAL本机
左边符号表示:
• [ ] 无状态
• [ x ] 已不再使用,代表远程服务器不可用
• [ - ] 已不再使用,代表远程服务器被认为是不合格的 NTP Server
• [ # ] 良好的远程节点或服务器但是未被使用 (不在按同步距离排序的前六个节点中,作为备用节点使用)
• [ + ] 良好的且优先使用的远程节点或服务器(包含在组合算法中)
• [ * ] 当前作为优先主同步对象的远程节点或服务器
• [ o ] PPS 节点 (当优先节点是有效时)。实际的系统同步是源于秒脉冲信号(pulse-per-second,PPS),可能通过PPS 时钟驱动或者通过内核接口。refid:远程时间服务器的上一层服务器IP地址
• 一个IP地址 – remote的上层时间来源 IP 地址
• .LOCL. – 本机 (当没有远程节点或服务器可用时)
• .PPS. – 时间标准中的“Pulse Per Second”(秒脉冲)
• .IRIG. – Inter-Range Instrumentation Group 时间码
• .ACTS. – 美国 NIST 标准时间 电话调制器
• .NIST. –美国 NIST 标准时间电话调制器
• .PTB. – 德国 PTB 时间标准电话调制器
• .USNO. – 美国 USNO 标准时间 电话调制器
• .CHU. – CHU (HF, Ottawa, ON, Canada) 标准时间无线电接收器
• .DCFa. – DCF77 (LF, Mainflingen, Germany) 标准时间无线电接收器
• .HBG. – HBG (LF Prangins, Switzerland) 标准时间无线电接收器
• .JJY. – JJY (LF Fukushima, Japan) 标准时间无线电接收器
• .LORC. – LORAN-C station (MF) 标准时间无线电接收器,注: 不再可用 (被 eLORAN 废弃)
• .MSF. – MSF (LF, Anthorn, Great Britain) 标准时间无线电接收器
• .TDF. – TDF (MF, Allouis, France)标准时间无线电接收器
• .WWV. – WWV (HF, Ft. Collins, CO, America) 标准时间无线电接收器
• .WWVB. – WWVB (LF, Ft. Collins, CO, America) 标准时间无线电接收器
• .WWVH. – WWVH (HF, Kauai, HI, America) 标准时间无线电接收器
• .GOES. – 美国静止环境观测卫星;
• .GPS. – 美国 GPS;
• .GAL. – 伽利略定位系统欧洲 GNSS;
• .ACST. – 选播服务器
• .AUTH. – 认证错误
• .AUTO. – Autokey (NTP 的一种认证机制)顺序错误
• .BCST. – 广播服务器
• .CRYPT. – Autokey 协议错误
• .DENY. – 服务器拒绝访问;
• .INIT. – 关联初始化,还没有开始同步,处于初始状态还没建立同步
• .MCST. – 多播服务器
• .RATE. – (轮询) 速率超出限定
• .TIME. – 关联超时
• .STEP. – 间隔时长改变,偏移量比危险阈值小(1000ms) 比间隔时间 (125ms)大st:stratum 阶层,表示与顶层参考时钟(原子时钟、GPS 或者其他无线电时钟)的距离,顶层为第 0 层。距离顶层越近,时间越准确。
t:类型,本地 ntp 服务与远程时间服务的通信方式
• u:单播或者多播
• b:广播
• l:本地when:最后一次时间同步到现在的时间,没有单位表示秒
poll:同步的频率,下次更新在多少秒后
reach:和远程时间服务的连接成功次数,每成功一次就增加,以8进制显示
delay:从本地到远程时间服务器通信往返时间,单位毫秒
offset:本机与远程时间服务器的时间偏移量,该值越接近0越好,单位毫秒
jitter:本机与远程时间服务器的时间平均偏差,该值越小越好,单位毫秒
2.monitor用法
- NTP Service
需要以管理员启动才能执行 start,restart,stop操作。
- Settings操作
Allow initial big time step:大于1024秒,作为客户端是否还同步NTP的时间。不建议勾上,作为对外授时的服务器,使用来自上层授时服务器的时间,如果时间与上层时间超过了1024秒,还是需要人员手动检查。
Set multimedia timer to highest resolution:多媒体定时器优化,使其最优能提供1ms延迟
Restart NTP service if stopped:如果NTP服务挂了是否自动重启。守护进程
- NTP Status
`ntpq -p`执行的效果可视化
NTP Configuration File
配置文件,修改后提示是否重启NTP服务-
Statistic
统计页面,会自动在ntp.conf中添加配置,这是静态的历史的统计########################################################### #Section insert by NTP Time Server Monitor 2021/6/12 enable stats statsdir "C:\NTP\etc\" statistics loopstats ###########################################################
-
Advanced Statistic
动态统计
-
Configuration
勾选上,Run at System Start:开机自启
Service changes remain consistent after reboot:重新启动后服务更改保持一致
Statistic,静态统计文件配置
Advanced Statistic:动态统计,调试的时候可以打开,调试完建议关闭。 -
NTP Event Log
建议管理员重点关注,Filter中 Only Errors 的条目。
Notification
发邮件提醒,定制提醒信息
3.NTP客户端软件安装
计算机本地带的“调整日期/时间”,其频率是一周。如果需要更改,需要改注册表,不建议这样操作。
推荐使用NTP客户端软件NetTime - Network Time Synchronization Tool (timesynctool.com)
本次安装的版本是“NetTimeSetup-320a3_NTP客户端”,安装步骤较简单,省略。
3.1.点击Settings进入设置
- Time Servers:时间服务器,从上到下优先级越来越低
- Update Interval:多久更新一次时间
- Retry Interval:失败后多久再次尝试向时间服务器获取时间
- Demote Servers after 4 failure:连接失败4次后将对应时间服务器降权,优先级下降
- 【重要】Allow other computers to sync to this computer:是否允许时间服务器修改本计算机时间,务必勾选上,否则本地计算机无法完成对时。
- Always provide time(NOT recommended):是否对外提供授时服务,即将本计算机设置为时间服务器
- Show NetTime icon in the system tray at login:是否在计算机右下角托盘中显示客户端图标
- Run NetTime as a system services:是否将客户端作为一个系统服务存在,建议勾选上,在计算机服务中设置为开机自动启动
- Max Free Run:指示在认为本地时间不再准确之前,程序在没有获得有效同步的情况下将运行多长时间。一旦这段时间到期,托盘图标将变成一个十字,如果它被配置为时间服务器,它将停止响应请求的时间。
- if Time adjustment greater than 2 minus Adjust System Time:如果与时间服务器差值超过2分钟,怎么办,是自动调整本计算机时间?不更新本计算机时间?询问用户?
- Use adaptative clock speed to smoothly adjust system time
Max offset to drift 5 minutes:是否在5分钟内,将时间平滑的过渡到与时间服务器时间保持一致,不跳跃的变动时间。(比如本计算机时间慢了时间服务器2分钟,则在未来5分钟内,本计算机时间将逐渐将差值2分钟追平时间服务器),建议勾选上 - Automatically Check For Updates every 7 days:每隔7天自动检测一次更新,生产环境不建议勾选
- Logging Level:Normal 日志等级,View查看日志
3.2.运行
- Time:计算机日期时间
- Last Attempt:最后一次尝试同步日期
- Last Sync:最后一次同步日期时间
- Next Attempt:下一次同步时间
- Time is being corrected:显示时间同步状态的区域,这里表示同步正常
- Mode:是否作为一个服务启动,Error acting as time server!注意win10需要以管理员运行,再设置勾选上面的run as a system server。
每次设置完,点击一次Update Now.确认运行状态