
如果你的linux系统根本没有ntpdate这个命令
yum install ntp
安装完了之后,你不要做什么配置,也不需要,直接测试一下
[root@localhost ~]# ntpdate timenistgov
22 Oct 21:11:43 ntpdate[5014]: adjust time server 20720081113 offset -0018788 sec
如果出去上面的内容说明,同步成功了。然后在crontab里面加上以下内容。
/10 ntpdate timenistgov #域名或IP
每隔十分钟同步一次。推荐几个时间服务器。
timenistgov
timenurinet
asiapoolntporg
asiapoolntporg
asiapoolntporg
asiapoolntporg
二,用ntp搭建自己的时间服务器
上面我们是利用别人的时间服务器来同步时间,这些时间服务器都是比较权威的。当我们自己搭建时间服务器就不用crontab来定时去跑。
1,安装时间服务器ntp
yum install ntp
2,配置ntp
查看复制打印
[root@localhost ~]# cat /etc/ntpconf |awk '{if($0 !~ /^$/ && $0 !~ /^#/) {print $0}}'
restrict default ignore //默认不允许修改或者查询ntp,并且不接收特殊封包
restrict 127001 //给于本机所有权限
restrict 19216810 mask 2552552550 notrap nomodify //给于局域网机的机器有同步时间的权限
server timenistgov prefer //设置时间服务器,加prefer表示优先
server 0asiapoolntporg
server 1asiapoolntporg
server 2asiapoolntporg
server 12712710 # local clock
fudge 12712710 stratum 10
driftfile /var/lib/ntp/drift
keys /etc/ntp/keys
3,启动 ntp
[root@localhost ~]# /etc/initd/ntpd start
4,查看并测试
[root@localhost ~]# netstat -upnl |grep ntpd //查看时程
[root@localhost ~]# ntpq -pn //查看同步的服务器IP
remote refid st t when poll reach delay offset jitter
==============================================================================
5077217185 INIT 16 u - 64 0 0000 0000 0000
202901584 INIT 16 u - 64 0 0000 0000 0000
2027110089 INIT 16 u - 64 0 0000 0000 0000
202134110 INIT 16 u - 64 0 0000 0000 0000
12712710 LOCL 10 l 18 64 377 0000 0000 0001
[root@localhost ~]# ntpstat //同步的结果
synchronised to local net at stratum 11
time correct to within 12 ms
polling server every 512 s
remote:即NTP主机的IP或主机名称。注意最左边的符号,如果由“+”则代表目前正在作用钟的上层NTP,如果是“”则表示也有连上线,不过是作为次要联机的NTP主机。
refid:参考的上一层NTP主机的地址
st:即stratum阶层
when:几秒前曾做过时间同步更新的 *** 作
poll:下次更新在几秒之后
reach:已经向上层NTP服务器要求更新的次数
delay:网络传输过程钟延迟的时间
offset:时间补偿的结果
jitter:Linux系统时间与BIOS硬件时间的差异时间
需要两台计算机间同步时间,其实就是局域网同步时间,找到命令
net time \19216801 /set /y
但是会出现“发生系统错误 5”。出现这样的错误是因为客户端还没有登录进时间源服务器,客户机需要登录进服务器才能取得时间。使用Guest用户登录进时间源服务器就可以
net use \19216801 “123” /user:”Guest”
net use后面跟服务器ip,再后面是Guest用户的密码123,然后加user参数填上用户名,如果Guest没有设定密码,双引号不填内容。需要注意的是,很多进过360安全卫士优化过的系统禁用了Guest用户,需要手动打开用户,或者在服务器上新建一个用户专门用来同步时间。
可以建一个批处理来同步时间,保存为timesyncbat文件:
net use \19216801 “” /user:”Guest”
net time \19216801 /set /y
net use /del /y
exit
把这个批处理添加到计划任务里面,设定为每天运行,即可每天在指定的时间同步。运行计划任务需要Task Scheduler服务开启,同样的,有些优化过的系统会关闭此项服务,在服务中设定为自动启动即可。
计划任务运行时会有命令窗口闪过,如果不要d出命令窗口,可以在timesyncbat文件的同一目录里面新建runvbe文件:
set ws=wscriptcreateobject(“wscriptshell”)
wsrun “timsyncbat /start”,0
将计划任务中的批处理换成runvbe就可以了,为了防止有时连不上服务器,造成命令一直无法终止,可以在计划任务的设置选项卡中,将任务的运行时间设为5分钟,防止任务卡壳。至少需要两台linux服务器,其中一台是NTP Server, 另一台是NTP client
Linux NTP配置详解 (Network Time Protocol)
LINUX绝大多数的发行版本都已经自带了NTP程序,只须按以下配置即可。
相关配置文件
/etc/ntpconf
NTP服务的主要配置文件,所有的更改全部在这里。
/usr/share/zoneinfo
由 tzdata 所提供,规定了各主要时区的时间设定文件,例如中国的时区设置文件是/usr/share/zoneinfo/Asia/Chongqing。
/etc/sysconfig/clock
Linux的主要时区设定文件。每次启动后Linux *** 作系统会自动读取这个文件来设定系统预设要显示的时间。如这个文件内容为”ZONE=Asia/Chongqing”,则表示Linux *** 作系统的时间设定使用/usr/share/zoneinfo/Asia/Chongqing这个文件。
/etc/localtime
本地系统的时间设定文件,如果clock文件中规定了使用的时间设定文件为/usr/share/zoneinfo/Asia/Chongqing,Linux *** 作系统就会将Chongqing那个文件复制一份为/etc/localtime,所以系统的时间显示就会以Chongqing那个时间设定文件为准。
相关的命令
/bin/date
这个我们最经常使用了,更改及输出日期与时间命令。
/sbin/hwclock
使用hwclock才能将修改过后的时间写入BIOS 。
/usr/sbin/ntpd
NTP服务的守护进程,配置文件为/etc/ntpconf 。
/usr/sbin/ntpdate
用来连接NTP服务器命令,比如ntpdate 192168651 。
/usr/sbin/ntpq
NTP查询命令。
设置NTP服务器
就如前边说的NTP配置文档只有一个 /etc/ntpconf,看看我的ntpconf
#红字的是我添加的,其它为默认!
grep -Ev '^$|^#' /etc/ntpconf
restrict default kod nomodify notrap nopeer noquery
restrict -6 default kod nomodify notrap nopeer noquery
restrict 13110713100 //允许该NTP服务器进入
restrict 11480811 //没有任何何参数的话,这表示『该 IP或网段不受任何限制』
restrict 2021181199
restrict 127001
restrict -6 ::1
restrict 19216800 mask 25525500 nomodify //该网段可以进行校时
restrict 0000 mask 0000 notrust //拒绝没有认证的用户端
server time-nwnistgov prefer //prefer 该服务器优先
server 0rhelpoolntporg
server 1rhelpoolntporg
server 2rhelpoolntporg
fudge 12712710 stratum 10
driftfile /var/lib/ntp/drift
keys /etc/ntp/keys
别忘了启动NTP服务器
/etc/initd/ntp start
客户端测试
对了客户端只需要是用ntpdate命令即可,192168651 为ntp 服务器ip 地址,就这么就简单!
相关命令
ntpstat //列出我们的NTP 服务器是否与上层连接。
synchronised to NTP server (13110713100) at stratum 2
time correct to within 461 ms
polling server every 64 s
ntpq -p //列出目前我们的NTP服务器 与上层NTP服务器 的状态, 代表目前正在使用的上层 NTP服务器
remote refid st t when poll reach delay offset jitter
==============================================================================
13110713100 ACTS 1 u 30 64 67 237165 1539 20382
2021181199 20211231197 2 u 33 64 63 163526 91844 10208
上边只是简单设置,没有考虑安全方面如认证等等,如需更详细请参考这里。
权限管理使用 restrict 公式如下:
restrict IP mask [参数] / restrict 19216800 mask 25525500 nomodify
其中参数主要有底下这些:
ignore:拒绝所有类型的NTP的连线;
nomodfiy:用户端不能使用NTPC与ntpq这两支程式来修改伺服器的时间参数,但使用者端仍可透过这部主机来进行网路校时的;
noquery:用户端不能够使用ntpq,NTPC等指令来查询发表伺服器,等于不提供的NTP的网路校时幂;
notrap:不提供陷阱这个远端事件邮箱(远程事件日志)的功能。
notrust:拒绝没有认证的用户端。 保持时钟同步,是一个网络稳定、可靠运行的前提,比如SDH(同步数字体系)网络中必须要精确的做到时钟同步,才有可能保证网间数据的准确传输,但是这些运行在网络底层的规范对一般用户来说太遥远了,对于局域网用户来说,最常用的时间同步 *** 作就是“自动与Internet时间服务器同步”
那么我们在局域网中设置时间同步有什么意义呢又是如何实现的呢内外网中时间服务器的设置又有何区别下面我们结合实际局域网中设置实例来详细说明一下。
一、局域网内由于时间不同步造成的问题
作为网络管理员,既要保证网络设备的稳定运行,又要及时处理网络中随时出现的故障,而如果无法实现时间同步,就会增加处理故障的难度,比如:
(一)有时候需要设置CISCO交换机设备定时重启,但每次执行该 *** 作前都要先对时,这样才能保证执行reload命令时的准确性,更要命的是重启后以后,交换机的时间又变回默认的1994年了。
(二)局域内有几十台交换机,虽然大多可以实现远程网管,但由于时间不一致,造成无法准备网络故障发生的确切时间。
(三)最近单位实现指纹机考勤了,同事们也习惯于看电脑上的时间去按指纹,但微机上的时间老不准,结果往往赞成不是去早了就是去晚了,还有在进行文件传输时,不准确的时间信息也影响了检索结果,甚至会引起不必要的误会。
那么如何在局域网内实现时间同步呢
二、时间同步的方法
(一)外网(办公局域网)时间同步的方法
外网,也就是办公局域网,这个局域网的网络设备都可以接入互联网,一个简化的网络拓扑
外网使用了一台CISCO3550交换机作为核心交换机,下面级联了若干台CISCO的29系列交换机,局域网内还有多台微机。
在这种网络模式中,我们不能保证每台网络设备都可以快速的与互联网上时间服务器进行时间同步(比如由于网速或是时间服务器本身的问题),能够保证的是局域网内有一个比较稳定可靠的网络质量,这样的话,我们就选定了CISCO3550作为局域网内的时间服务器,CISCO3550交换机肩负着两个作用,一、它要与互联网上的时间服务器进行同步(保证自身时钟准确),二、它要将时钟信息在局域内广播出去,从而使得局域网内的网络设备(交换机、PC机)都可以与它进行时钟同步,从而保证全网内的时钟同步,下面我分别说明一下实现步骤。
1、设置CISCO3550交换机与互联网上的时间服务器进行同步
3550#conf t
Enter configuration commands, one per line End with CNTL/Z
3550(config)#ntp peer 2107214544 (peer的含义为本设备既可以接受时钟同步,也可以给远端设备提供时钟,双向 2107214544是中科院国家授时中心的IP地址 )
clock timezone gmt 8 (即设置为北京时区)
是的,只需在CISCO3550交换机中敲这么简单的两条命令,过一段时间(前提是CISCO3550交换机可以访问互联网),就可以实现与与互联网上的时间服务器同步了,用直观的感受可以用show clock命令看出来,如下所示:
3550#show clock
22:18:45667 gmt Sat May 23 2009
也就是说明本机的时间已经与互联网上的时间服务器同步了。
小提示
为了更好的理解以上的两步设置,还是有一些知识是需要了解的
(1) 如何得到互联网上的时间服务器的地址
很多方法可以得到,一是XP自身就带了两个时间服务器:timewindowscom和timenistgov,我们只需要DOS模式下执行一下ping *** 作,就可以得到它们对应的IP地址,分别为20746232182和1924324418,二是中科院有一个标准的授时服务器,地址为2107214544,三可以从网上查,可以得到更为丰富的信息,比如我们访问>1、手动修改PC现在的时间
2、服务器和 PC,通过Windows 自带的系统自带的internet时间同步功能 微软时间服务器同步
3、如果你只想在内网让你的PC和 你们自己的服务器同步时间,就比较麻烦了。需要付费帮你研究下ntpdate -u 2107214544
2107214544:中国国家授时中心的官方服务器。
如果你想跟另一台服务器时间同步,ip换成对应服务器的ip即可
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)