实验环境centos 6.5
配置文件就是/etc/ntp.conf。
为了测试,设置让node2 -- 192.168.1.102和node1 -- 192.168.1.101做时间同步。
第一步, node1做time server,node1本身不和其他机器时间同步,就是取本地时间。 所以,先把node1机器的时间调准了:[root@node1 ~]date --set "01/23/2011 10:49"(可选)
[root@node1 ~]clock -w [root@node1 ~]hwclock --systohc后两个命令是把设置的时间写到硬件时间中去(也就是CMOS里面的时间)。
第二步,
然后将node1配置成一个time server,修改/etc/ntp.conf, [root@node1 ~]vi /etc/ntp.conf 其他的配置不怎么需要改,只需要关注restrict的配置:1. 注释掉原来的restrict default ignore这一行,这一行本身是不响应任何的ntp更新请求,其实也就是禁用了本机的ntp server的功能,所以需要注释掉。(centos 6.5上没有)
2. 加入:restrict 10.10.246.0 mask 255.255.255.0 -- 让10.10.246、24网段上的机器能和本机做时间同步. 这样就可以了,记得下面的:(根据自己的具体环境调整)
server 127.127.1.0 # local clock
fudge 127.127.1.0 stratum 10以上为ntp服务器的配置,下面是需同步的机器的配置。
这两行需要,这是让本机的ntpd和本地硬件时间同步。
当然,我们也可以添加server xxx.xxx.xxx.xxx,让他和其他的time server时间同步。
需要注意的是server要开ntpd服务,slave不需要开。
然后crontab -e加入*/30 * * * * /usr/sbin/ntpdate mon0>/dev/null
4. /etc/init.d/ntpd restart
5. chkconfig ntpd on
6. 修改iptables配置,将tcp和udp 123端口开放,这是ntp需要的端口,在/etc/services中可以查到这个端口。
第三步, 这样node1就成为一台time server了,现在我们配置node2这台机器,也是修改/etc/ntp.conf , [root@node2 ~]vi /etc/ntp.conf
1. restrict default ignore这行保留为注释状态,因为sales不需要做time server(没有)
2. 注释掉server 127.127.1.0, fudge 127.127.1.0 stratum 10这两行,因为这台机器不需要和本地硬件时钟同步了。(没有)
3. 加入server 10.10.246.187这行,和node1机器同步。
这样就OK了。看看时间,已经和node1同步了。往后默认配置好像是5分钟和time server同步一次。ntpdate命令是显式的和某台机器做时间同步,以前将ntpdate放到crontab中定期同步也是可以的。
此时也可以手动:ntpdate 10.10.246.187
补充:
ntp同步时间实验
服务端IP 192.168.1.101 客户端 192.168.1.88
一.登录server端
1.首先配置ntpd服务
vi /etc/ntp.conf
配置文件中一般有restrict default语句,#掉后选择,以下2种的一种
restrict default nomodify notrap noquery # 默认允许所有可连接客户端ntpdate到本机
restrict default ignore # 默认所有客户端禁止ntpdate到本机
#与上级服务端连续性同步时间,prefer表示优先,如无可不设置
server 上级ntp服务器IP或者域名 [prefer]
#当之前设置了restrict default ignore的情况下,可以设置哪些客户可以ntpdate到本机
restrict 192.168.1.88 mask 255.255.255.255 nomodify notrap
真实环境中加入了restrict 192.168.5.0 mask 255.255.255.0
server 127.127.1.0 fudge 127.127.1.0 stratum 10
要加入以上两行,否则出现以下错误:
ntpdate[12573]: no server suitable for synchronization found
原因是,如果想使用一个服务器的时间,该服务器必须已经进行了自身同步。server 192.168.5.220 perfer
其它不变
在部署openstack时,用controller节点做ntp server,加入了以上内容,但每次packstack --answer-file后都会自动修改ntp.conf文件去掉加入的内容,只保留文件中指定的server ip。所以用另一台机器做了server。
#其余为可选设置,以默认值即可
2.开启ntpd服务
service ntpd start
chkconfig ntpd on #设置为默认启动,关掉使用off
二.登录客户端
此时有2种办法,一种是客户端使用ntpdate + crontab的组合,另一种是客户端也开启ntpd服务
1.第一种办法ntpdate + crontab
1)#先确保网络通
ping 192.168.1.10
2)#使用ntpdate同步一次时间,查看是否有正确回显
ntpdate 192.168.1.101
#如为以下报错,一般是因为服务端才开启,需要等5分钟左右就好了
[root@test ~]# ntpdate 192.168.1.101
5 Nov 05:25:51 ntpdate[3892]: no server suitable for synchronization found#如显示以下信息表示成功
[root@test ~]# ntpdate 192.168.1.101
7 Nov 22:34:59 ntpdate[4546]: step time server 192.168.1.101 offset 2.946644 sec3)#这样就可以将ntpdate命令放入crontab中,定期执行
crontab -e
添加一条,如
* 1 * * * * ntpdate 192.168.1.101 #每天1点执行ntpdate命令进行同步
保存即可
这里可能碰见的其他问题:
服务端开启了防火墙,没有允许ntpd的端口123被访问
执行 service iptables stop 可以关闭防火墙
2.第二种方法ntpd
1)#先确保网络通
ping 192.168.1.101
2)#使用ntpdate同步一次时间,查看是否有正确回显
ntpdate 192.168.1.101
3)#设置ntpd服务
vi /etc/ntp.conf
方法同上,但注意将设置的上级ntp server端需要设置为
server 192.168.1.101 prefer
#设置开启服务后自动同步上级ntp server时间
vi /etc/ntp/step-tickers 加入一条
192.168.1.101
4)#开启ntpd服务
service ntpd start