简介
Network Time Protocol(NTP)是用来使计算机时间同步化的一种协议,它可以使计算机对其服务器或时钟源(如石英钟,GPS等等)做同步化,它可以提供高精准度的时间校正(LAN上与标准间差小于1毫秒,WAN上几十毫秒),且可使用加密确认的方式来防止恶毒的协议攻击。默认使用UDP 123端口
NTP提供准确时间,首先需要一个准确的UTC时间来源,NTP获得UTC的时间来源可以从原子钟、天文台、卫星,也可从Internet上获取。时间服务器按照NTP服务器的等级传播,根据离外部UTC源的远近将所有服务器归入不用的层(Stratum)中。Stratum-1在顶层由外部UTC接入,stratum-1的时间服务器为整个系统的基础,Stratum的总数限制在15以内。下图为NTP层次图:
NTP Server安装配置
关于NTP服务器的安装,根据不同版本安装方法也不同。REDHAT系统则可以使用yum安装,Ubuntu系列可以使用apt-get安装,这里不做具体的介绍,主要详细介绍配置文件的信息。
对于Centos过滤注释和空行后,ntp配置文件内容如下
1 2 3 4 5 6 7 8 9 10 11 |
|
配置选项说明
driftfile
选项, 则指定了用来保存系统时钟频率偏差的文件。 ntpd程序使用它来自动地补偿时钟的自然漂移, 从而使时钟即使在切断了外来时源的情况下, 仍能保持相当的准确度。另外,driftfile 选项也保存上一次响应所使用的 NTP 服务器的信息。 这个文件包含了 NTP 的内部信息, 它不应被任何其他进程修改。无需更改
restrict default kod nomodify notrap nopeer noquery
默认拒绝所有NTP客户端的操作【restrict<子网掩码>|<网段> [ignore|nomodiy|notrap|notrust|nknod]】 指定可以通信的IP地址和网段。如果没有指定选项,表示客户端访问NTP服务器没有任何限制 - ignore 关闭所有NTP服务
- nomodiy 表示客户端不能更改NTP服务器的时间参数,但可以通过NTP服务器进行时间同步
- notrust 拒绝没有通过认证的客户端
- knod kod技术科阻止”Kiss of Death”包(一种DOS攻击)对服务器的破坏,使用knod开启功能
- nopeer 不与其它同一层的NTP服务器进行同步
server 【IP|FQDN|prefer】
指该服务器上层NTP Server,使用prefer的优先级最高,没有使用prefer则按照配置文件顺序由高到低,默认情况下至少15min和上层NTP服务器进行时间校对fudge
可以指定本地NTP Server层,如fudge 127.0.0.1 stratum 9
broadcast 网段 子网掩码
指定NTP进行时间广播的网段,如broadcast 192.168.1.255
logfile
可以指定NTP Server日志文件
几个与NTP相关的配置文件:/usr/share/zoneinfo/
、/etc/sysconfig/clock
、/etc/localtime
* /usr/share/zoneinfo/ 存放时区文件目录
* /etc/sysconfig/clock 指定当前系统时区信息
* /etc/localtime 相应的时区文件
如果需要修改当前时区,则可以从/usr/share/zoneinfo/目录拷贝相应时区文件覆盖/etc/localtime并修改/etc/sysconfig/clock 即可
1 2 |
|
相关命令
ntpstat
查看同步状态
1 2 3 4 |
|
ntpq
列出上层状态
1 2 3 4 |
|
输出说明:
remote
NTP Serverrefid
参考的上层ntp地址st
层次when
上次更新时间距离现在时常poll
下次更新时间reach
更新次数delay
延迟offset
时间补偿结果jitter
与BIOS硬件时间差异
ntpdate
同步当前时间
ntpdate NTP服务器地址