网络时间协议(NTP)用来同步网络上不同主机的系统时间。你管理的所有主机都可以和一个指定的被称为NTP服务器的时间服务器同步它们的时间。而另一方面,一个NTP服务器会将它的时间和任意公共NTP服务器,或者你选定的服务器同步。由NTP管理的所有系统时钟都会同步精确到毫秒级。
  在公司环境中,如果他们不想为NTP传输打开防火墙,有必要设置一个内部NTP服务器,然后让员工使用内部服务器而不是公共NTP服务器。在这个指南中,我们会介绍如何将一个CentOS系统配置为NTP服务器。在介绍详细内容之前,让我们先来简单了解一下NTP的概念。
  为什么我们需要NTP?
  由于制造工艺多种多样,所有的(非原子)时钟并不按照完全一致的速度行走。有一些时钟走的比较快而有一些走的比较慢。因此经过很长一段时间以后,一个时钟的时间慢慢的和其它的发生偏移,这是常说的“时钟漂移”或“时间漂移”。为了将时钟漂移的影响小化,使用NTP的主机应该周期性地和指定的NTP服务器交互以保持它们的时钟同步。
  在不同的主机之间进行时间同步对于计划备份、入侵检测记录、分布式任务调度或者事务订单管理来说是很重要的事情。它甚至应该作为日常任务的一部分。
  NTP的层次结构
  NTP时钟以层次模型组织。层级中的每层被称为一个stratum(阶层)。stratum的概念说明了一台机器到授权的时间源有多少NTP跳。
 

  Stratum 0由没有时间漂移的时钟组成,例如原子时钟。这种时钟不能在网络上直接使用。Stratum N(N>1)层服务器从Stratum N-1层服务器同步时间。Stratum N时钟能通过网络和彼此互联。
  NTP支持多达15个stratum的层级。Stratum 16被认为是未同步的,不能使用的。
  准备CentOS服务器
  现在让我们来开始在CentOS上设置NTP服务器。
  首先,我们需要保证正确设置了服务器的时区。在CentOS 7中,我们可以使用timedatectl命令查看和更改服务器的时区(比如,”Australia/Adelaide”,LCTT译注:中国可设置为Asia/Shanghai)
  #timedatectl list-timezones|grep Australia
  #timedatectl set-timezone Australia/Adelaide
  #timedatectl
 

  继续并使用yum安装需要的软件
  #yum install ntp
  然后我们会添加全球NTP服务器用于同步时间。
  #vim/etc/ntp.conf
  server 0.oceania.pool.ntp.org
  server 1.oceania.pool.ntp.org
  server 2.oceania.pool.ntp.org
  server 3.oceania.pool.ntp.org
  默认情况下,NTP服务器的日志保存在/var/log/messages。如果你希望使用自定义的日志文件,那也可以指定。
  logfile/var/log/ntpd.log
  如果你选择自定义日志文件,确保更改了它的属主和SELinux环境。
  #chown ntp:ntp/var/log/ntpd.log
  #chcon-t ntpd_log_t/var/log/ntpd.log
  现在初始化NTP服务并确保把它添加到了开机启动。
  #systemctl restart ntp
  #systemctl enable ntp