1.1 NTP简介
NTP(Network Time Protocol,网络时间协议)是用来使网络中的各个计算机时间同步的一种协议。它的用途是把计算机的时钟同步到世界协调时UTC,其精度在局域网内可达0.1ms,在互联网上绝大多数的地方其精度可以达到1-50ms。
NTP服务器就是利用NTP协议提供时间同步服务的。
1.2 环境准备
主机名 服务器/客户端 外网IP 内网IP
ntp-s S 10.0.0.77 172.16.1.77
ntp-c C 10.0.0.78 172.16.1.78

系统环境:
[root@ntp-s ~]# cat /etc/redhat-release
CentOS release 6.7 (Final)
[root@ntp-s ~]# uname -r
2.6.32-573.el6.x86_64
[root@ntp-s ~]# getenforce
Disabled
[root@ntp-s ~]# /etc/init.d/iptables status
iptables:未运行防火墙。
1.3 安装NTP服务
安装ntp服务软件,CentOS6.7默认安装ntp服务。
[root@ntp-s ~]# rpm -qa ntp
ntp-4.2.6p5-5.el6.centos.x86_64
如果没有安装,可以通过如下命令安装:
yum install -y ntp

1.4 配置NTP
ntp服务,默认配置文件在/etc/ntp.conf
操作前备份:
[root@ntp-s ~]# cp /etc/ntp.conf{,.ori}
[root@ntp-s ~]# ls -l /etc/ntp.conf{,.ori}
-rw-r--r--. 1 root root 1778 4月 28 2015 /etc/ntp.conf
-rw-r--r-- 1 root root 1778 7月 20 20:21 /etc/ntp.conf.ori

配置完成如下:

[root@ntp-s ~]# grep -vE "^$|#" /etc/ntp.conf
driftfile /var/lib/ntp/drift
restrict 127.0.0.1
restrict -6 ::1
restrict default nomodify #<==允许那些机器可以同步,全部
server ntp1.aliyun.com #<==同步的时间服务器
server time.nist.gov
includefile /etc/ntp/crypto/pw
keys /etc/ntp/keys

1.5 NTP配置重要参数详解
driftfile /var/lib/ntp/drift
记录上次的NTP server与上层NTP server联接所花费的时间。
server 210.72.145.44 prefer
prefer表示优先。
restrict default nomodify
允许所有主机进行时间同步。
1.6 启动NTP服务
注:如果有ntpdate定时任务,需要关闭;两者会有冲突。
[root@ntp-s ~]# /etc/init.d/ntpd start
正在启动 ntpd: [确定]
[root@ntp-s ~]# chkconfig ntpd on
[root@ntp-s ~]# chkconfig --list ntpd
ntpd 0:关闭 1:关闭 2:启用 3:启用 4:启用 5:启用 6:关闭

扩展:
ntpq -p #查看本机和上层服务器的时间同步结果
ntptrace #可以用來追踪某台时间服务器的时间对应关系
ntpdate IP #客户端要和NTP server进行时钟同步。
/var/log/ntp/ntp.log #查看ntp日志

1.7 客户端同步
客户机要等几分钟再与新启动的ntp服务器进行时间同步,否则会提示no server suitable for synchronization found错误。
[root@ntp-c ~]# date -s 20111111 #<==修改当前时间,便于查看效果
2011年 11月 11日 星期五 00:00:00 CST
[root@ntp-c ~]# ntpdate 172.16.1.77
20 Jul 20:36:22 ntpdate[18850]: step time server 172.16.1.77 offset 148077344.266571 sec
[root@ntp-c ~]# date
2016年 07月 20日 星期三 20:36:23 CST
可以将同步命令放入定任务,每5分钟执行一次。

1.8 故障:ntp时间服务器,自动断开!
原因:
ntp本地时间与上级ntp时间差超过1000s,那么ntp进程就会退出并在系统日志文件中记录。

解决方法
在配置文件/etc/ntp.conf的第一行加上这么一句
tinker panic 0