NTP(Network Time Protocol) 网络时间协议,工作在UDP的123端口上

是用来使计算机时间同步化的一种协议,它可以使计算机对其服务器或时钟源(如石英钟,GPS等等)做同步化, 它可以提供高精准度的时间校正(局域网上与标准间差小于1毫秒,互联网上几十毫秒), 且可介由加密确认的方式来防止恶毒的协议攻击。

NTP服务器

NTP服务器提供准确时间,首先要有准确的时间来源,这一时间应该是国际标准时间UTC。 NTP获得UTC的时间来源可以是原子钟、天文台、卫星,也可以从Internet上获取。

NTP校时方式

时间服务器有三种方式与其他服务器对时:broadcast/multicast,client/server和symmetric。

  • broadcast/multicast 方式主要适用于局域网的环境,时间服务器周期性的以广播的方式,将时间信息传送给其他网路中的时间服务器,其时间仅会有少许的延迟,而且配置非常的简单。但是此方式的精确度并不高,对时间精确度要求不是很高的情况下可以采用。

  • symmetric 方式得一台服务器可以从远端时间服务器获取时钟,如果需要也可提供时间信息给远端的时间服务器。此一方式适用于配置冗余的时间服务器,可以提供更高的精确度给主机。

  • client/server 方式与symmetric方式比较相似,只是不提供给其他时间服务器时间信息,此方式适用于一台时间服务器接收上层时间服务器的时间信息,并提供时间信息给下层的用户。

NTP服务器配置

安装ntp

1
yum install ntp -y

配置ntp

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
vim /etc/ntp.conf

# 允许172.16.*.*的IP使用该时间服务器;
restrict 172.16.0.0 mask 255.255.0.0 nomodify

#允许任何人来同步;
restrict default nomodify notrap

# 屏蔽其他IP过来更新时间;
restrict 0.0.0.0 mask 0.0.0.0 nomodify notrap noquery notrust 
#ignore:关闭所有的NTP联机服务;
#nomodify:表示Client端不能更改Server端的时间参数;不过Client端仍然可以透过Server端来进行网络校时;
#notrust:该Client除非通过认证否则该Client来源将被视为不信任网域;
#noquery:不提供Client端的时间查询;
#notrap:允许任何人来查询;

# 同步的上层服务器(210.72.145.44国家时间服务器),NTP服务器默认也有同步的时间服务器;
# 可以设置为127.0.0.1,即本地是时间源,然后同步给其他机器;
server 210.72.145.44

# 同步本地时间
# 127.0.0.1是本地回环地址(127.网段中所有ip实际上都是本地回环地址)
server 127.127.1.0 prefer

# 本地服务器的stratum大小不能超过16, 设置时间层级为8;
fudge 127.127.1.0 stratum 8

启动NTP服务器

1
2
chkconfig ntpd on    
service ntpd start

查看NTP信息

1
ntpq -p

将时间同步到硬件时钟

1
2
> vi /etc/sysconfig/ntpd    
SYNC_HWCLOCK=yes

客户端配置

同步上面配置的ntp服务器时间

1
ntpdate 172.16.16.1

定时同步时间

1
2
crontab -e    
*/1 * * * * ntpdate 172.16.16.1