linux下NTP服务的配置.docx
《linux下NTP服务的配置.docx》由会员分享,可在线阅读,更多相关《linux下NTP服务的配置.docx(17页珍藏版)》请在冰豆网上搜索。
linux下NTP服务的配置
NetworkTimeProtocol(NTP,网络时间协议)用于同步它所有客户端时钟的服务。
NTP服务器将本地系统的时钟与一个公共的NTP服务器同步然后作为时间主机提供服务,使本地网络的所有客户端能同步时钟。
同步时钟最大的好处就是相关系统上日志文件中的数据,如果网络中使用中央日志主机集中管理日志,得到的日志结果就更能反映真实情况。
在同步了时钟的网络中,集中式的性能监控、服务监控系统能实时的反应系统信息,系统管理员可以快速的检测和解决系统错误。
安装配置NTP服务
下面将介绍NTP服务器的简单配置:
第一步,安装NTP服务
一般的Linux发行版都会带ntp软件包,如果你的系统中还没有安装,就使用rpm命令安装此包
,以下以centos系统为例配置一台时间服务器:
查找当前系统是否已安装ntp
[root@localhost~]#rpm-qa|grepntp
chkfontpath-1.10.1-1.1
ntp-4.2.2p1-8.el5.centos.1 (这个就是已经安装的RPM包)
如果没有安装,可用下例命令安装:
[root@localhost~]#rpm-ivhntp-4.2.2p1-8.el5.centos.1.rpm
第二步,配置NTP服务器
NTP服务器配置如下:
编辑配置文件/etc/ntp.conf
restrictdefaultkodnomodifynotrapnopeernoquery
restrict-6defaultkodnomodifynotrapnopeernoquery
restrict127.0.0.1
restrict-6:
:
1
restrict192.168.1.0mask255.255.255.0nomodifynotrap
server 192.168.146.225
server0.centos.pool.ntp.org
server1.centos.pool.ntp.org
server2.centos.pool.ntp.org
server 127.127.1.0 #localclock
fudge 127.127.1.0stratum10
配置文件说明如下:
第一行restrict、default定义默认访问规则,nomodify禁止远程主机修改本地服务器配置,notrap拒绝特殊的ntpdq捕获消息,noquery拒绝btodq/ntpdc查询(这里的查询是服务器本身状态查询)。
restrict192.168.1.0mask255.255.255.0nomodifynotrap
这句是手动增加的,意思是从192.168.1.1-192.168.1.254的服务器都可以使用我们的NTP服务器来同步时间。
server192.168.146.225
这句也是手动增加的,指明局域网中作为NTP服务器的IP;
配置文件的最后两行作用是当服务器与公用的时间服务器失去联系时以本地时间为客户端提供时间服务。
端口
ntp使用udp协议,记得开放其123端口。
启动NTPD
为了使NTP服务可以在系统引导的时候自动启动,执行:
#chkconfigntpdon
启动ntpd:
servicentpdstart
NTP客户端配置:
在客户端手动执行“ntpdate服务器IP”来同步时间;
另可以使用crond来定时同步时间:
以root身份运行周期性任务:
[root@supersunroot]#crontab-e
添加以下内容,每15分钟更新一下时间:
15****ntpdate服务器IP
此处的ntpdate命令包含在ntp软件包中,记得确认系统中是否已安装。
第三步,检查时间服务器是否正确同步
使用下面的命令检查时间服务器同步的状态:
#ntpq-p
一个可以证明同步有问题的证据是:
所有远程服务器的jitter值是4000并且delay和reach的值是0。
可能的原因有:
有防火墙阻断了与server之间的通讯,即123端口是否正常开放;
此外每次重启NTP服务器之后大约要3-5分钟客户端才能与server建立正常的通讯连接,否则你在客户端执行“ntpdate服务器ip”的时候将返回:
27Jun10:
20:
17ntpdate[21920]:
noserversuitableforsynchronizationfound
Linux下NTP服务器的配置
Linux下的ntp软件不但能自动与互联网上的时钟保持同步,同时本身已经是一台SNTP服务器了,可以供局域网内的电脑校对时间。
服务配置如下:
第一步安装软件包
我用的是RPM包安装的,或者到http:
//www.eecis.udel.edu/~ntp/去下载xntp重新编译一个新的。
#rpm-qa|grepntp
ntp-4.2.0-7
chkfontpath-1.10.0-1
第二步 让LAN的时间服务器(第三级)与互联网上的时间服务器(第一或者第二级)同步
修改/etc/ntp.conf
这是NTP的主要配置文件,里面设置了你用来同步时间的时间服务器的域名或者IP地址,下面是到互联网同步时间的最基本的配置:
首先定义我们喜欢的时间服务器:
serverntp.research.gov
serverotherntp.research.gov
接下来,我们设置上面两台服务器的访问权限,在这个例子中我们不允许它们修改或者查询我们配置在Linux上的NTP服务器
restrict ntp.research.gov mask255.255.255.255nomodifynotrapnoquery
restrict otherntp.research.gov mask255.255.255.255nomodifynotrapnoquery
掩码255.255.255.255是用来限制远程NTP服务器的掩码地址。
接下来设置允许访问我们时间服务器的客户机地址,通常这些服务器都应该位于我们自己局域网内。
请注意,配置中noquery已经去掉了:
restrict192.168.0.0mask255.255.255.0notrustnomodifynotrap
在上例中,掩码地址扩展为255,因此从192.168.0.1-192.168.0.254的服务器都可以使用我们的NTP服务器来同步时间。
最后,也是最重要的是默认的限制配置要从你配置文件中删除,否则它将覆盖你所有的配置选项,你将发现如果不删除该配置,你的时间服务器将只能和自己通讯。
如果ntp.conf中有以下一行,请将它注释:
#restrictdefaultignore
保存你的配置文件,然后对每个你在ntp.conf里配置的时间服务器执行2编查询命令:
#ntpdate ntp.research.gov
27Jun10:
12:
01ntpdate[25475]:
adjusttimeserver ntp.research.gov offset-0.127154sec
#ntpdate ntp.research.gov
27Jun10:
12:
06ntpdate[25478]:
adjusttimeserver ntp.research.gov offset0.010008sec
第三步启动NTP进程
为了使NTP服务可以在系统引导的时候自动启动,执行:
#chkconfigntpdon
启动/关闭/重启NTP/查看状态的命令是:
#/etc/init.d/ntpdstart
#/etc/init.d/ntpdstop
#/etc/init.d/ntpdrestart
#/etc/init.d/ntpdstatus
切记每次修改了配置文件后都需要重新启动服务来使配置生效。
可以使用下面的命令来检查NTP服务是否启动,你应该可以得到一个进程ID号:
#pgrepntpd
第四步检查时间服务器是否正确同步
使用下面的命令检查时间服务器同步的状态:
#ntpq-p
一个可以证明同步问题的证据是所有远程服务器的jitter值是4000并且delay和reach的值是0。
可能的原因有:
配置文件中的restrictdefaultignore没有被注释
有防火墙阻断了与server之间的通讯
此外每次重启NTP服务器之后大约要3-5分钟客户端才能与server建立正常的通讯连接,否则你执行ntpdateip的时候将返回:
27Jun10:
20:
17ntpdate[21920]:
noserversuitableforsynchronizationfound
第五步客户端与ntp服务器同步时间
在客户端安装NTP,安装过程同NTP在服务器端。
客户端开启ntp服务
#servicentpdstart
与ntp服务器同步
#ntpdate(ntp服务器地址)
接下来编辑/etc/ntp.conf
ntp.conf
#############################################################################################
server127.127.1.0#localclock
fudge127.127.1.0stratum10
serverstdtime.gov.hk#Astratum1serveratserver.org
server192.168.x.y#x.y为你前面所装机器在局域网里的IP
driftfile/etc/ntp/drift
broadcastdelay0.008
authenticateno
keys/etc/ntp/keys
restrict192.168.x.0mask255.255.255.0notrustnomodifynotrap//x.0为你
所在局域网段
restrict127.0.0.1
restrict192.168.x.y#x.y为你前面所装机器在局域网里的IP
#restrictdefaultignore
#############################################################################################
同时配置
#/sbin/servicentpdstart//启动ntpd参数可为restartstartstop
#/sbin/chkconfig--addntpd
#/sbin/chkconfig--level234ntpdon//配置在开机时运行
如何检查?
#netstat-unl|grep123//查看123端口
#ndptrace192.168.x.y//看校对时间过程,出现offset即为正常否则为timeout
#ntpq-p
如果出现jitter的值为4000则是防火墙或者网络问题
正常为
remoterefidsttwhenpollreachdelayoffsetjitter
==============================================================================
*clock.nc.fukuok.GPS.1u43643719.067-6.88410.339
+clock.tl.fukuok.GPS.1u36643519.670-3.2592.341
LOCAL(0)LOCAL(0)5l4564370.0000.0000.001
几点注意:
1.虽然ntp溢出问题较少,但建议配置大型网罗的时候,不要装在重要数据库服务
器或者Web主机上(Ntp是root权限)
2.在遇到问题之前,先看看ntp自带的文档。
3.防火墙问题的话,送一句配置
$TMP-tfilter-AINPUT-pudp--destination-port123-jACCEPT
也就是123udpin全部接受。
如果子网IP仍然提示4000错误,可以把
restrict192.168.0.0mask255.255.255.0notrustnomodifynotrap
改为
restrict192.168.0.0mask255.255.255.0nomodify
对于权限参数的说明可以参考台湾鸟哥的文章的说明:
[root@root]#vi/etc/ntp.conf
#1.關於權限設定部分
# 權限的設定主要以restrict這個參數來設定,主要的語法為:
#
# restrictIPmasknetmask_IPparameter
#
# 其中IP可以是軟體位址,也可以是default,default就類似0.0.0.0咯!
# 至於paramter則有:
# ignore:
關閉所有的NTP連線服務
# nomodify:
表示Client端不能更改Server端的時間參數,不過,
# Client端仍然可以透過Server端來進行網路校時。
# notrust:
該Client除非通過認證,否則該Client來源將被視為不信任網域
# noquery:
不提供Client端的時間查詢
# 如果paramter完全沒有設定,那就表示該IP(或網域)『沒有任何限制!
』
#
# 在我們這個例子當中,因為拒絕所有,僅開放192.168.0.0/24,
# 並且讓127.0.0.1以及本機IP192.168.0.2可以不受限制,所以:
restrictdefaultignore #關閉所有的NTP要求封包
restrict127.0.0.1 #開啟內部遞迴網路介面lo
restrict192.168.0.2 #主機本身的IP也同時開啟!
restrict192.168.100.20
mask255.255.255.255nomodify
#針對另一個IP開放讓他可以更新時間!
restrict192.168.0.0
mask255.255.255.0nomodify
#在網域裡面的client可以進行網路校時,但不會影響Server!
#2.上層主機的設定
# 上層主機我們選擇time.stdtime.gov.tw,要設定上層主機主要以server
# 這個參數來設定,語法為:
#
# server[IP|FQDN][prefer]
#
# Server後面接的就是我們上層TimeServer囉!
而如果Server參數
# 後面加上perfer的話,那表示我們的NTP主機主要以該部主機來作為
# 時間校正的對應。
另外,為了解決更新時間封包的傳送延遲動作,
# 所以可以使用driftfile來規定我們的主機
# 在與TimeServer溝通時所花費的時間,可以記錄在driftfile
# 後面接的檔案內,例如下面的範例中,我們的NTPserver與
# time.stdtime.gov.tw連線時所花費的時間會記錄在/etc/ntp/drift檔案內
#先輸入第二層主機的IP
server210.59.157.10prefer
server210.59.157.30prefer
server202.39.157.155prefer
#第一層的主機就列為參考用!
server210.59.157.40
server210.59.157.41
server202.39.157.151
#當然要讓Server可以進入我們的NTP主機啦!
權限要開放啊!
restrict210.59.157.10
restrict210.59.157.30
restrict202.39.157.155
restrict210.59.157.40
restrict210.59.157.41
restrict202.39.157.151
driftfile/etc/ntp/drift
最后附上我的修改过后的/etc/ntp.conf文件。
参考了以下几篇文章:
在RedHat9下配置时间服务器
[时间同步]NTP服务器的配置
[原创]linuxNTP配置
簡易NTP伺服器設定
#Prohibitgeneralaccesstothisservice.
#restrictdefaultignore
restrict66.187.224.4mask255.255.255.255nomodifynotrapnoquery
restrict66.187.224.4mask255.255.255.255nomodifynotrapnoquery
restrict66.187.224.4mask255.255.255.255nomodifynotrapnoquery
restrict66.187.233.4mask255.255.255.255nomodifynotrapnoquery
#Permitallaccessovertheloopbackinterface.Thiscould
#betightenedaswell,buttodosowouldeffectsomeof
#theadministrativefunctions.
restrict127.0.0.1
#--CLIENTNETWORK-------
#Permitsystemsonthisnetworktosynchronizewiththis
#timeservice.Donotpermitthosesystemstomodifythe
#configurationofthisservice.Also,donotusethose
#systemsaspeersforsynchronization.
restrict192.168.28.0mask255.255.255.0nomodify
#---OURTIMESERVERS-----
#orremovethedefaultrestrictline
#Permittimesynchronizationwithourtimesource,butdonot
#permitthesourcetoqueryormodifytheserviceonthissystem.
#restrictmytrustedtimeserveripmask255.255.255.255nomodifynotrapnoquery
#servermytrustedtimeserverip
#---NTPMULTICASTCLIENT---
#multicastclient#listenondefault224.0.1.1
#restrict224.0.1.1mask255.255.255.255notrustnomodifynotrap
#restrict192.168.1.0mask255.255.255.0notrustnomodifynotrap
#---GENERALCONFIGURATION---
#
#UndisciplinedLocalClock.Thisisafakedriverintendedforbackup
#andwhennooutsidesourceofsynchronizedtimeisavailable.The
#defaultstratumisusually3,butinthiscaseweelecttousestratum
#0.Sincetheserverlinedoesnothavethepreferkeyword,thisdriver
#isneverusedforsynchronization,unlessnootherother
#synchronizationsourceisavailable.Incasethelocalhostis
#controlledbysomeexternalsource,suchasanexternaloscillatoror
#anotherprotocol,thepreferkeywordwouldcausethelocalhostto
#disregardallothersynchronizationsources,unlessthekernel
#modificationsareinuseanddeclareanunsynchronizedcondition.
#
server66.187.224.4
fudge127.127.1.0stratum10
#
#Driftfile.Putthisinadirectorywhichthedaemoncanwriteto.
#Nosymboliclinksallowed