转自https://www.cnblogs.com/kerrycode/archive/2015/08/20/4744804.html
rpm -qa |grep ntp #检查ntp版本
service ntpd status #查询ntp服务状态
service ntpd start #启动
service ntpd stop #停止
service ntpd restart #重启
ntpq -p #查看ntp服务器与上层ntp的状态
ntpstat #命令查看时间同步状态,这个一般需要5-10分钟后才能成功连接和同步。所以,服务器启动后需要稍等下。
刚启动的时候,一般是:
# ntpstat
unsynchronised
time server re-starting
polling server every 64 s
连接并同步后:
synchronised to NTP server (202.120.2.101) at stratum 4
time correct to within 1192 ms
polling server every 64 s
ntpd根据配置文件的参数决定是要为其他服务器提供时钟服务或者是从其他服务器同步时钟。所有的配置都在/etc/ntp.conf文件中。
===/etc/ntp.conf 配置内容===
# 1. 先处理权限方面的问题,包括放行上层服务器以及开放局域网用户来源:
restrict default kod nomodify notrap nopeer noquery <==拒绝 IPv4 的用户
restrict -6 default kod nomodify notrap nopeer noquery <==拒绝 IPv6 的用户
restrict 127.0.0.1 <==放行本机来源
restrict -6 ::1
#restrict 192.168.100.0 mask 255.255.255.0 nomodify <==放行局域网用户来源
# 2. 设定主机来源,将原本的 [0|1|2].rhel.pool.ntp.org 的设定批注掉:
#server 0.rhel.pool.ntp.org iburst
#server 1.rhel.pool.ntp.org iburst
#server 2.rhel.pool.ntp.org iburst
#server 3.rhel.pool.ntp.org iburst
# 3.默认的一个内部时钟数据,用在没有外部 NTP 服务器时,使用它为局域网用户提供服务:
server 127.127.1.0 # local clock
fudge 127.127.1.0 stratum 10 #设定层次 作为局域网的time service provider,通常将stratum设置为10
# 4.预设时间差异分析档案和暂不用到的 keys 等,不需要更动它:
driftfile /var/lib/ntp/drift ##系统时间与BIOS事件的偏差记录
keys /etc/ntp/keys
===restrict选项格式===
restrict [ 客户端IP ] mask [ IP掩码 ] [参数]
“客户端IP” 和 “IP掩码” 指定了对网络中哪些范围的计算机进行控制,如果使用default关键字,则表示对所有的计算机进行控制,参数指定了具体的限制内容,常见的参数如下:
◆ ignore:拒绝连接到NTP服务器
◆ nomodiy: 客户端不能更改服务端的时间参数
◆ noquery: 不提供客户端的时间查询
◆ notrap: 不提供trap远程登录功能,trap服务是一种远程时间日志服务。
◆ notrust: 客户端除非通过认证,否则该客户端来源将被视为不信任子网 。
◆ nopeer: 提供时间服务,但不作为对等体。
◆ kod: 向不安全的访问者发送Kiss-Of-Death报文。 KOD是NTPv4提出的一种全新的访问控制技术,主要用于服务器向客户端上提供状态报告和接入控制等信息。在服务器上使能KOD功能后,服务器会根据系统的运行状态向客户端发送DENY Kiss和RATE Kiss码。
- 当客户端接收到DENY Kiss码,客户端将断开与服务器的所有连接,并停止向服务器发送报文。
- 当客户端接收到RATE Kiss码,客户端将立即缩短与该服务器的轮询时间间隔,且以后每次接收到RATE Kiss码,轮询时间间隔都会进一步缩短。
===server选项格式===
server host [ key n ] [ version n ] [ prefer ] [ mode n ] [ minpoll n ] [ maxpoll n ] [ iburst ]
其中host是上层NTP服务器的IP地址或域名,随后所跟的参数解释如下所示:
◆ key: 表示所有发往服务器的报文包含有秘钥加密的认证信息,n是32位的整数,表示秘钥号。
◆ version: 表示发往上层服务器的报文使用的版本号,n默认是3,可以是1或者2。
◆ prefer: 如果有多个server选项,具有该参数的服务器优先使用。
◆ mode: 指定数据报文mode字段的值。
◆ minpoll: 指定与查询该服务器的最小时间间隔为2的n次方秒,n默认为6,范围为4-14。
◆ maxpoll: 指定与查询该服务器的最大时间间隔为2的n次方秒,n默认为10,范围为4-14。
◆ iburst: 当初始同步请求时,采用突发方式接连发送8个报文,时间间隔为2秒。
===层次(stratum)===
stratum根据上层server的层次而设定(+1)。
对于提供network time service provider的主机来说,stratum的设定要尽可能准确。
而作为局域网的time service provider,通常将stratum设置为10。
0层的服务器采用的是原子钟、GPS钟等物理设备,stratum 1与stratum 0 是直接相连的,
往后的stratum与上一层stratum通过网络相连,同一层的server也可以交互。
ntpd对下层client来说是service server,对于上层server来说它是client。
===注意防火墙屏蔽ntp端口===
ntp服务器默认端口是123,如果防火墙是开启状态,在一些操作可能会出现错误,所以要记住关闭防火墙。
/etc/init.d/iptables status #查询防火墙状态
===同步硬件时钟===
ntp服务,默认只会同步系统时间。
如果想要让ntp同时同步硬件时间,可以设置/etc/sysconfig/ntpd文件,
在/etc/sysconfig/ntpd文件中,添加【SYNC_HWCLOCK=yes】这样,就可以让硬件时间与系统时间一起同步。在Linux中有硬件时钟与系统时钟两种时钟。硬件时钟是指主机板上的时钟设备,也就是通常可在BIOS画面设定的时钟。系统时钟则是指kernel中的时钟。所有Linux相关指令与函数都是读取系统时钟的设定。因为存在两种不同的时钟,那么它们之间就会存在差异。当Linux启动时,系统时钟会去读取硬件时钟的设定,之后系统时钟即独立运作。
使用windows自带ntp客户端进行时间同步的方法
1、开始-->运行输入gpedit.msc
2、计算机配置-->管理模板-->系统-->Windows时间服务-->时间提供程序-->右单击“配置Window NTP客户端”,选择属性。
a、选择“已启用”
b、在Ntp Server对应栏位输入时间同步服务器的地址。
c、Tpye栏位选择NTP。
d、SpecialPollInterval栏位输入需要同步的时间周期,单位:秒,如:每10分钟同步一次,输入600。
e、确定。
3、计算机配置-->管理模板-->系统-->Windows时间服务-->时间提供程序-->右单击“启用Window NTP客户端”,选择属性。
a、选择“已启用”
4、计算机配置-->管理模板-->系统-->Windows时间服务-->时间提供程序-->右单击“启用Window NTP服务端”,选择属性。
a、选择“已禁用”
5、时间和日期属性中,填入时间同步服务器地址,方便必要时进行手动同步。