关于Linux下时间同步的解决方案,其实有几种。一是使用rdate命令,同步时间到远程主机。二是运用ntp软件包。
以下主要讲使用ntpd的方式来完成时间的同步。
当然,首先得确认ntp软件包已经安装,一般使用以下命令(即是查看rpm包的ntp是否已经装到系统中):
rpm -q ntp
显示已安装的ntp的版本,表示ntp包已安装。像这样:ntp-4.2.2p1-5.el5
否则提示:package ntp is not installed
ntpd方式,不但实现本机时间与服务器的同步,而且将本机也作为服务器,可以为网内的其它主机提供时间同步服务,
在此,只说明实现本机时间同步的步骤。
重点在于三个文件的配置,分别是:/etc/ntp.conf /etc/ntp/ntpservers 及/etc/ntp/step-tickers
1. /etc/ntp.conf的配置:
其实只需改动极少的位置,其它地方保持默认:
找到server部分
加上一行:server 210.72.145.44 (国家授时中心的IP)
再加一行:server 218.21.130.42 (cn.pool.ntp.org对应IP)
2.将/etc/ntp/ntpservers清空
3.在/etc/ntp/step-tickers文件中,加入之前加入到/etc/ntp.conf中的IP,编辑后的/etc/ntp/step-tickers
文件的内容如下:
210.72.145.44
218.21.130.42
到此,ntp的配置完成。
然后,执行操作:service ntpd restart ,即是将守护进程ntpd重新启动,这一步必不可少,否则以上的配置不能生效。
这一方法,本人使用有效,想在大部分机子中都可行得通。ntp的配置只需简单的几个步骤。
(本人机器环境为:
Red Hat Enterprise Linux 5
内核为2.6.18-8
ntp版本为ntp-4.2.2p1-5.el5
)
有必要了解ntp.conf文件中restrict的语法规则,下面这一段摘自http://xu20cn.blog.51cto.com/274020/69689
“
附:相关配置参数说明
# restrict权限控制语法为:
# restrict IP mask netmask_IP parameter
# 其中 IP 可以是软件地址,也可以是 default ,default 就类似 0.0.0.0 咯!
# 至于 paramter 则有:
# ignore :关闭所有的 NTP 联机服务
# nomodify:表示 Client 端不能更改 Server 端的时间参数,不过,
# Client 端仍然可以透过 Server 端来进行网络校时。
# notrust :该 Client 除非通过认证,否则该 Client 来源将被视为不信任网域
# noquery :不提供 Client 端的时间查询
# 如果 paramter 完全没有设定,那就表示该 IP (或网域) 『没有任何限制!』
# server [IP|FQDN] [prefer]
# Server 后面接的就是我们上层 Time Server 啰!而如果 Server 参数
# 后面加上 perfer 的话,那表示我们的 NTP 主机主要以该部主机来作为
# 时间校正的对应。
”