如何使两台linux服务器时间同步
Linux自带了ntp服务 -- /etc/initd/ntpd,这个服务不仅可以设置让本机和某台/某些机器做时间同步,他本身还可以扮演一个time server的角色,让其他机器和他同步时间。
配置文件就是/etc/ntpconf。
为了测试,设置让node2 -- 1921681102和node1 -- 1921681101做时间同步。
第一步,node1做time server,node1本身不和其他机器时间同步,就是取本地时间。
所以,先把node1机器的时间调准了:
[root@node1 ~]date -s 08/03/2011
[root@node1 ~]date -s 11:12:00
[root@node1 ~]clock -w
[root@node1 ~]hwclock --systohc
后两个命令是把设置的时间写到硬件时间中去(也就是CMOS里面的时间)。
第二步,然后将node1配置成一个time server,修改/etc/ntpconf,
[root@node1 ~]vi /etc/ntpconf
其他的配置不怎么需要改,只需要关注restrict的配置:
1 注释掉原来的restrict default ignore这一行,这一行本身是不响应任何的ntp更新请求,其实也就是禁用了本机的ntp server的功能,所以需要注释掉。
2 加入:restrict 19216810 mask 2552552550 -- 让19216810/24网段上的机器能和本机做时间同步
3 这样就可以了,记得下面的:
server 12712710 # local clock
fudge 12712710 stratum 10
这两行需要,这是让本机的ntpd和本地硬件时间同步。
当然,我们也可以添加server xxxxxxxxxxxx,让他和其他的time server时间同步。
4 /etc/initd/ntpd restart
5 chkconfig ntpd on
6 修改iptables配置,将tcp和udp 123端口开放,这是ntp需要的端口,在/etc/services中可以查到这个端口。
第三步,这样node1就成为一台time server了,现在我们配置node2这台机器,也是修改/etc/ntpconf ,
[root@node2 ~]vi /etc/ntpconf
1 restrict default ignore这行保留为注释状态,因为sales不需要做time server
2 注释掉server 12712710, fudge 12712710 stratum 10这两行,因为这台机器不需要和本地硬件时钟同步了。
3 加入server 1921681101这行,和node1机器同步。
这样就OK了。看看时间,已经和node1同步了。往后默认配置好像是5分钟和time server同步一次。ntpdate命令是显式的和某台机器做时间同步,以前将ntpdate放到crontab中定期同步也是可以的,但是既然ntpd本身就可以做这个时间
第四步,将ntpdate放到crontab中定期步也是可以的
[root@node2 ~]#vi ntpupdatesh
/usr/sbin/ntpdate 1921681101
[root@node2 ~]#chmod 755 ntpupdatesh
[root@node2 ~]#crontab -e
/1 /root/ntpupdatesh
[root@node2 ~]#/etc/initd/crond restart
1时间服务器经常会碰到客户端机器需要和服务器在时间上保持同步,否则会出现各种问题,特别是有时间相关的触发功能的时候。为解决各设备间时间统一的问题,我们可在网络中设置一台服务器使其作为基准时间,其它设备通过NTP协议与其同步时间。这样很容易做到各设备时间差异小于1s。NTP-----NetworkTimeProtocol2服务端配置适用于WindowsServer2003以及WindowsSever20081)开放防火墙123UDP端口;2)运行中输入“gpeditmsc”;3)“策略”下的“计算机配置”中的“管理模板\系统\Windows时间服务\全局配置设置”;4)将其状态改变为“已启用”;5)改变AnnounceFlags参数值为5,6)“策略”下的“计算机配置”中的“管理模板\系统\Windows时间服务\时间提供程序\启用WindowsNTP服务器”7)将其状态改变为“已启用”;8)在Windows服务中启动WindowsTime服务,并设置启动类型为“自动”;9)完成。3客户端配置适用于WindowsXP、WindowsServer2003、WindowsVista、Windows7以及WindowsSever2008。1)运行中输入“gpeditmsc”;2)“策略”下的“计算机配置”中的“管理模板\系统\Windows时间服务\时间提供程序\启用WindowsNTP客户端”3)将其状态改变为“已启用”;4)“策略”下的“计算机配置中的“管理模板\系统\Windows时间服务\时间提供程序\配置WindowsNTP客户端”5)将其状态改变为“已启用”;6)改变NtpServer参数中的IP为时间服务器地址:xxxxxxxxxxxx,0x9;7)改变Type参数NTP;8)在Windows服务中启动WindowsTime服务,并设置启动类型为“自动”;9)双击任务栏右下角“时间”,打开[时间和日期属性]设置对话框10)选择[Internet时间]标签11)选中[自动与Internet时间服务器同步]选项,在[服务器]中填入“xxxxxxxxxxxx”。点击[应用]并按[立即更新]可直接同步。看是否出现“windows在于XXX进行同步时出错”的信息,还是出现“时钟在2013/8/2712:12:00与XXX同步成功”12)点击[应用]并按[立即更新]可直接同步。看是否出现“windows在于XXX进行同步时出错”的信息,还是出现“时钟在2013/8/2712:12:00与XXX同步成功”
使用浏览器打开百度在搜索框中搜索“ntp服务器地址”
然后找到一个有internet时间服务器的网页,或者有该信息的网页。
然后我们在系统托盘区的时间上面双击,打开时间设置面板。
现在,我们在时间设置的面板上把我们得到的那个时间服务器地址,如下图的粘贴到“服务器:”后面的框中。
然后点击“应用”保存一下设置
如果你现在的电脑时间本来就不正确,而又连接了互联网,那么可以点击一下“立即同步”来与NTP服务器时间同步。
如果同步出错,那么我们先按:WIN+r键调出运行窗口
在窗口中输入“servicesmsc”,然后点击“确定”
在服务窗口中
找到windows time 这个服务,然后查看6它是否被启动。
如果没有启动,那么我们该服务上面点击鼠标右键---->单击“启动”即可。
如果经过第五第六步都还会出错,那么你得更换一下这个internet时间服务器的地址啦
因为很多internet时间服务器并不能长久存在。可能已经过期,那么就得换掉。
那么我们点击那个“服务器:”后面的框,展开它的下拉框,在里面找到windows time这些时间服务器,看是否现在能使用官方的更新时间。
8
需要更改日期和更换NTP服务器地址的错误解决方法如下。
对于要把日期更改为当天的日期的错误,是因为时间服务器是无法更改你的日期的,它仅仅能在日期一致的情况下,同步一个正确的时间。
方法一:采用系统自带的时间同步功能
1、单击系统托盘下方的时间,单击弹出窗口里的“更改日期和时间设置”
2、弹出“日期和时间”对话框,选择“Internet时间”选项卡,单击 “更改设置”按钮,弹出“Internet时间设置”对话框,在服务器地址栏输入国家授时中心服务器的IP地址:2107214544,单击“立即更新”按钮,同步完成后点击“确定”按钮退出,OK
方法二:修改注册表,提高时间同步精度
由于系统默认的时间同步间隔是7天,我们无法自由选择,使得这个功能在灵活性方面大打折扣。其实,我们也可以通过修改注册表来手动修改它的自动同步间隔以提高同步精度,以下以Vista系统为例。
1、在“开始”菜单→“运行”项下(或按Win+R)输入“Regedit”进入注册表编辑器。
2、展开
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Parameters]分支,双击NtpServer将键值修改为国家授时中心服务器的IP地址:2107214544,然后点击“确定”按钮保存。(注:若已用过方法一,此步可以省略)
3、展开
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders \NtpClient]分支,并双击SpecialPollInterval键值,将对话框中的“基数栏”选择到“十进制”上,输入框中显示的数字正是自动对时的间隔(以秒为单位),比如默认的604800就是由7(天)×24(时)×60(分)×60(秒)计算来的。设定时间同步周期(建议设为900= 15分钟或3600=1小时等周期值),填入对话框,点击确定保存关闭对话框。
0条评论