这周聊聊「NTP」。
上次,聊了「时区」,也就是时间相关的话题。
NTP是「Network Time Protocol」的简称,是为了将网络中计算机的时钟同步到正确时间的协议。
PC内部的时钟是相当不准确的,运行一个月左右就会产生几秒的误差。网络上的服务器,经常由于时钟的误差导致电子邮件的发送接收记录等出现异常。
因此,接入统一网络的主机的时钟有必要互相同步时钟。NTP就是用来解决这个问题的。
NTP是以「服务端·客户端」的方式提供的。「NTP服务器」使用原子时钟之类东西时钟保持正确的时间,然后向NTP客户端提供正确的时间。
客户端Linux通过「ntpdate」命令来和NTP服务器进行时间的同步。
ntpdate命令需要root用户来执行,通过ntpdate指定NTP服务器名来进行同步:
# ntpdate ntp.nict.jp
通过cron定期执行上面的同步,就可以保证服务器的时间正确性了。
问题在于用哪个服务器作为 NTP服务器呢?
「NICT 独立行政法人情报通信研究机构」(日本的一个机构)举办了「日本标准时间项目」,这个项目提供了公用的NTP服务器。
NICT公开的NTP服务器参见:http://www2.nict.go.jp/w/w114/stsi/PubNtp/
这个NTP服务器虽然能够胜任每秒100万次的请求,但是最好不要过度的去访问它。
最好是把网络中一定数量的主机中挑一个作为内网NTP服务器,内网NTP服务器和NICT公开的NTP服务器同步时间,而其它主机直接和这个内网的NTP服务器同步时间即可。