Linux时间同步
时间同步
⼤数据产⽣与处理系统是各种计算设备集群的,计算设备将统⼀、同步的标准时间⽤于记录各种事件发⽣时序,
如E-MAIL信息、⽂件创建和访问时间、数据库处理时间等。
⼤数据系统内不同计算设备之间控制、计算、处理、应⽤等数据或操作都具有时序性,若计算机时间不同步,
这些应⽤或操作或将⽆法正常进⾏。
⽹络时间同步协议(NTP)是时间同步的技术基础。
多主机协作⼯作时,各个主机时间同步很重要,时间不⼀致会造成很多重要应⽤的故障,如:加密协议,⽇志,集群等,利⽤NTP(NetworkTimeProtocol)协议使⽹络中的各
个计算机时间达到同步。
Linux默认情况下,系统时间和硬件时间,并不会⾃动同步。在Linux运⾏过程中,系统时间和硬件时间以异步的⽅式运⾏,互不⼲扰。硬件时间的运⾏,是靠Bios电池来维持,⽽系
统时间,是⽤CPUtick来维持的。在系统开机的时候,会⾃动从Bios中取得硬件时间,设置为系统时间。
Linux系统下,⼀般使⽤ntp服务器来同步不同机器的时间。⼀台机器,可以同时是ntp服务器和ntp客户机。在⽹络中,推荐使⽤像DNS服务器⼀样分层的时间服务器来同步时间。
时间同步实现:ntpdate,ntp,chrony
公共NTP服务器地址及IP
:项⽬是⼀个提供可靠易⽤的NTP服务的虚拟集群
,
阿⾥云公共NTP服务器
Unix/linux类:,
windows类:
中国时间:
210.72.145.44(国家授时中⼼服务器IP地址)
133.100.11.8⽇本福冈⼤学
129.6.15.28NIST,Gaithersburg,Maryland
129.6.15.29NIST,Gaithersburg,Maryland
132.163.4.101NIST,Boulder,Colorado
132.163.4.102NIST,Boulder,Colorado
132.163.4.103NIST,Boulder,Colorado
128.138.140.44UniversityofColorado,Boulder
192.43.244.18NCAR,Boulder,Colorado
131.107.1.10Microsoft,Redmond,Washington
69.25.96.13Symmetricom,SanJo,California
216.200.93.8Abovenet,Virginia
208.184.49.9Abovenet,NewYorkCity
207.126.98.204Abovenet,SanJo,California
207.200.81.113TrueTime,AOLfacility,Sunnyvale,California
64.236.96.53TrueTime,AOLfacility,Virginia
————————————————————————————————————
202.120.2.101(上海交通⼤学⽹络中⼼NTP服务器地址)
北京邮电⼤学
清华⼤学
北京⼤学
东南⼤学
清华⼤学
清华⼤学
清华⼤学
北京邮电⼤学
西南地区⽹络中⼼
西北地区⽹络中⼼
东北地区⽹络中⼼
华东南地区⽹络中⼼
四川⼤学⽹络管理中⼼
⼤连理⼯⼤学⽹络中⼼
ET桂林主节点
北京⼤学
系统时间相关⽂件
`/usr/share/zoneinfo/:在这个⽬录下的⽂件其实是规定了各主要时区的时间设定⽂件,例如北京地区的时区设定⽂件在/usr/share/zoneinfo/Asia/Beijing就是了。这个⽬录⾥⾯的
⽂件与底下要谈的两个⽂件(clock与localtime)是有关系的。
/etc/sysconfig/clock:这个是linux的主要时区设定⽂件。每次开机后,Linux会⾃动的读取这个⽂件来设定⾃⼰系统所默认要显⽰的时间。
`/etc/localtime:这个⽂件就是“本地端的时间配置⽂件”。刚刚那个clock⽂件⾥⾯规定了使⽤的时间设置⽂件(ZONE)为/usr/share/zoneinfo/Asia/Beijing,所以说,这就是
本地端的时间了,此时,Linux系统就会将Beijing那个⽂件另存为⼀份/etc/localtime⽂件,所以未来我们的时间显⽰就会以Beijing那个时间设定⽂件为准。
/etc/timezone:系统时区⽂件
时间同步原理:
Linux时间同步ntpd、ntpdate的区别
ntpd不仅仅是时间同步服务器,它还可以做客户端与标准时间服务器进⾏同步时间,⽽且是平滑同步,
并⾮ntpdate⽴即同步,在⽣产环境中慎⽤ntpdate,也正如此两者不可同时运⾏。
时钟的跃变,对于某些程序会导致很严重的问题。
许多应⽤程序依赖连续的时钟——毕竟,这是⼀项常见的假定,即,取得的时间是线性的,
⼀些操作,例如数据库事务,通常会地依赖这样的事实:时间不会往回跳跃。
不幸的是,ntpdate调整时间的⽅式就是我们所说的”跃变“:在获得⼀个时间之后,ntpdate使⽤ttimeofday(2)设置系统时间,
这有⼏个⾮常明显的问题:
【⼀】这样做不安全。
ntpdate的设置依赖于ntp服务器的安全性,攻击者可以利⽤⼀些软件设计上的缺陷,拿下ntp服务器并令与其同步的服务器执⾏某些消耗性的任务。
由于ntpdate采⽤的⽅式是跳变,跟随它的服务器⽆法知道是否发⽣了异常(时间不⼀样的时候,唯⼀的办法是以服务器为准)。
【⼆】这样做不精确。
⼀旦ntp服务器宕机,跟随它的服务器也就会⽆法同步时间。
与此不同,ntpd不仅能够校准计算机的时间,⽽且能够校准计算机的时钟。
【三】这样做不够优雅。
由于是跳变,⽽不是使时间变快或变慢,依赖时序的程序会出错
(例如,如果ntpdate发现你的时间快了,则可能会经历两个相同的时刻,对某些应⽤⽽⾔,这是致命的)。
因⽽,唯⼀⼀个可以令时间发⽣跳变的点,是计算机刚刚启动,但还没有启动很多服务的那个时候。
其余的时候,理想的做法是使⽤ntpd来校准时钟,⽽不是调整计算机时钟上的时间。
NTPD在和时间服务器的同步过程中,会把BIOS计时器的振荡频率偏差——或者说LocalClock的⾃然漂移(drift)——记录下来。
这样即使⽹络有问题,本机仍然能维持⼀个相当精确的⾛时。
Linux时间同步ntpdate时间同步尽量不要⽤这个
ntpdate同步时间,会造成时间的跳跃,对⼀些依赖时间的程序和服务会造成影响。⽐如sleep,timer等。⽽且,ntpd服务可以在修正时间的同时,修正cputick。
理想的做法为,在开机的时候,使⽤ntpdate强制同步时间,在其他时候使⽤ntpd服务来同步时间。
安装ntpdate
yum-yinstallntpdate
修改/etc/sysconfig/ntpdate
让ntpdate每次同步时间之后把时间写⼊hwclock,相当于命令hwclock-w
d-i's/SYNC_HWCLOCK=no/SYNC_HWCLOCK=yes/'/etc/sysconfig/ntpdate
使⽤ntpdate⼿动时间同步
ntpdate210.72.145.44
设置定期同步,在crontab中添加
012****/usr/sbin/ntpdate192.168.0.1
格式
ntpdate[-nv][NTPIP/hostname]Linux时间同步ntp时间同步
注意:
ntpd服务在不同时区或者时间相差太⼤⽆法同步,所以在配置ntp服务器之前需要先使⽤ntpdate⼿动同步。
ntpd服务监听UDP:123,注意防⽕墙放⾏。
ntpd服务启动后,不能⼿动运⾏ntpdate更新时间(会报端⼝被占⽤),⽆法使⽤timedatectlt-timeHH:MM:SS设置时间(想要使⽤除了关闭ntpd服
务,还要禁⽤NTP时间同步timedatectlt-ntpfal)。
将系统时钟和世界协调时UTC同步,精度在局域⽹内可达0.1ms,在互联⽹上绝⼤多数的地⽅精度可以达到1-50ms。
使⽤ntpd进⾏时钟同步,可以保证⼀个时间不经历两次,它每次同步时间的偏移量不会太陡,是慢慢来的,这正因为这样,ntpd平滑同步可能耗费的时间⽐较长。
ntpd服务运⾏后,先是每64秒与上源服务器同步⼀次,根据每次同步时测得的误差值经复杂计算逐步调整⾃⼰的时间,随着误差减⼩,逐步增加同步的间隔.每次跳动,都会重复这个调
整的过程.
配置与外部时间服务器进⾏时间同步的客户端主机
rver:10.0.0.61
client:10.0.0.31,41,51
服务端(rver)修改ntpd配置⽂件/etc/
yum-yinstallntp
#centos6启动
/etc/rc.d/init.d/ntpd
#centos78启动
systemctlstartntpd
systemctlenablentpd
#restrictdefaultnomodifynotrapnopeernoquery#注释掉此⾏,允许其他客户端主机同步此timerver主机
rver172.16.0.1iburst
#rst#注释掉此⾏
#rst#注释掉此⾏
#rst#注释掉此⾏
restrict172.16.1.0mask255.255.255.0nomodifynoztrap#允许集群所在⽹段同步此timerver主机
rver210.72.145.44prefer#这是中国国家授时中⼼的IP
rst#iburst加快时间同步
rst
rver127.0.0.1#localclock
fudge127.0.0.0stratum10**
systemctlrestartntpd
[root@centos7~]#ntpq-p#查看与172.16.0.1同步
client:10.0.0.31,41,51
客户端修改ntp配置⽂件/etc/
vim/etc/
rver10.0.0.61iburst#注释掉其他的,添加要同步时间的客户端主机ip
2、启动ntpd服务,并设置为开机启动
systemctlstartntpd
systemctlenablentpd
验证查看
[root@linux~]#ntpq-p#查看时间同步状态,查看ntp服务器有⽆和上层ntp连通
ntp服务器配置完毕后,需要等待5-10分钟才能与/etc/中配置的标准时间进⾏同步。
[root@linux~]#ntptrace–n127.0.0.1#列出⽬前NTP服务器(第⼀层)与上层NTP服务器(第⼆层)彼此之间的关系
ntpq-p查看⽹络中的NTP服务器,查看ntp服务器与上层ntp的状态
remote:本机和上层ntp的ip或主机名,“+”表⽰优先,“*”表⽰次优先
refid:参考上⼀层ntp主机地址
st:stratum阶层
when:上次更新在多少秒前,指出从轮询源开始已过去的时间(秒)。
poll:下次更新在多少秒后,指出轮询间隔时间。该值会根据本地时钟的精度相应增加。
reach:是⼀个⼋进制数字,指出源的可存取性。已经向上层ntp服务器要求更新的次数
delay:⽹络延迟
offt:时间补偿,是源时钟与本地时钟的时间差(毫秒)。
jitter:系统时间与bios时间差
/etc/配置详解
#1.先处理权限⽅⾯的问题,包括放⾏上层服务器以及开放局域⽹⽤户来源:
restrictdefaultkodnomodifynotrapnopeernoquery#拒绝所有IPv4的⽤户
restrict-6defaultkodnomodifynotrapnopeernoquery#拒绝所有IPv6的⽤户
restrict220.130.158.71#放⾏进⼊本NTP的服务器
restrict59.124.196.83#放⾏进⼊本NTP的服务器
restrict59.124.196.84#放⾏进⼊本NTP的服务器
restrict127.0.0.1#默认,放⾏本机来源
restrict-6::1#默认,放⾏本机来源IPv6
restrict192.168.100.0mask255.255.255.0nomodify#放⾏局域⽹⽤户来源,或者列出单独IP
#2.设定主机来源,请先将原本的[0|1|2].的设定批注掉:
rver220.130.158.71prefer#以这部主机为最优先的rver
rver59.124.196.83
rver59.124.196.84
#3.默认的⼀个内部时钟数据,⽤在没有外部NTP服务器时,使⽤它为局域⽹⽤户提供服务:
#rver127.127.1.0#localclock
#fudge127.127.1.0stratum10
#4.预设时间差异分析档案与暂不⽤到的keys等,不需要更动它:
driftfile/var/lib/ntp/drift#系统时间与BIOS事件的偏差记录
keys/etc/ntp/keys
===restrict选项格式===
restrict[客户端IP]mask[IP掩码][参数]
“客户端IP”和“IP掩码”指定了对⽹络中哪些范围的计算机进⾏控制,如果使⽤default关键字,则表⽰对所有的计算机进⾏控制,参数指定了具体的限制内容,没有参数表⽰该
IP(或⽹域)"没有任何限制",常见的参数如下:
ignore:拒绝连接到NTP服务器
nomodiy:客户端不能更改服务端的时间参数,但是客户端可以通过服务端进⾏⽹络校时。
noquery:不提供客户端的时间查询
notrap:不提供trap远程登录功能,trap服务是⼀种远程时间⽇志服务。
notrust:客户端除⾮通过认证,否则该客户端来源将被视为不信任⼦⽹。
nopeer:提供时间服务,但不作为对等体。
kod:向不安全的访问者发送Kiss-Of-Death报⽂。
restrict-6表⽰IPV6地址的权限设置。
===rver选项格式===
rverhost[keyn][versionn][prefer][moden][minpolln][maxpolln][iburst]
其中host是上层NTP服务器的IP地址或域名,随后所跟的参数解释如下所⽰:
key:表⽰所有发往服务器的报⽂包含有秘钥加密的认证信息,n是32位的整数,表⽰秘钥号。
version:表⽰发往上层服务器的报⽂使⽤的版本号,n默认是3,可以是1或者2。
prefer:如果有多个rver选项,具有该参数的服务器优先使⽤。
mode:指定数据报⽂mode字段的值。
minpoll:指定与查询该服务器的最⼩时间间隔为2的n次⽅秒,n默认为6,范围为4-14。
maxpoll:指定与查询该服务器的最⼤时间间隔为2的n次⽅秒,n默认为10,范围为4-14。
iburst:当初始同步请求时,采⽤突发⽅式接连发送8个报⽂,时间间隔为2秒。
===层次(stratum)===
stratum根据上层rver的层次⽽设定(+1)。
对于提供networktimerviceprovider的主机来说,stratum的设定要尽可能准确。
⽽作为局域⽹的timerviceprovider,通常将stratum设置为10
0层的服务器采⽤的是原⼦钟、GPS钟等物理设备,stratum1与stratum0是直接相连的,
往后的stratum与上⼀层stratum通过⽹络相连,同⼀层的rver也可以交互。
ntpd对下层client来说是rvicerver,对于上层rver来说它是client。
ntpd根据配置⽂件的参数决定是要为其他服务器提供时钟服务或者是从其他服务器同步时钟。所有的配置都在/etc/⽂件中。
Linux时间同步chrony时间同步
实现NTP协议的的⾃由软件。可使系统时钟与NTP服务器,参考时钟(例如GPS接收器)以及使⽤⼿表和键盘的⼿动输⼊进⾏同步。还可以作为NTPv4(RFC5905)服务器和对等
体运⾏,为⽹络中的计算机提供时间服务。设计⽤于在各种条件下良好运⾏,包括间歇性和⾼度拥挤的⽹络连接,温度变化(计算机时钟对温度敏感),以及不能连续运⾏或在虚拟机
上运⾏的系统。通过Internet同步的两台机器之间的典型精度在⼏毫秒之内,在LAN上,精度通常为⼏⼗微秒。利⽤硬件时间戳或硬件参考时钟,可实现亚微秒的精度。
chrony的优势:
更快的同步只需要数分钟⽽⾮数⼩时时间,从⽽最⼤程度减少了时间和频率误差,对于并⾮全天24⼩时运⾏的虚拟计算机⽽⾔⾮常有⽤。
能够更好地响应时钟频率的快速变化,对于具备不稳定时钟的虚拟机或导致时钟频率发⽣变化的节能技术⽽⾔⾮常有⽤。
在初始同步后,它不会停⽌时钟,以防对需要系统时间保持单调的应⽤程序造成影响。
在应对临时⾮对称延迟时(例如,在⼤规模下载造成链接饱和时)提供了更好的稳定性。
⽆需对服务器进⾏定期轮询,因此具备间歇性⽹络连接的系统仍然可以快速同步时钟。
chrony包介绍
两个主要程序:
chronyd:后台运⾏的守护进程,⽤于调整内核中运⾏的系统时钟和时钟服务器同步。它确定计算机增减时间的⽐率,并对此进⾏补偿。
chronyc:命令⾏⽤户⼯具,⽤于监控性能并进⾏多样化的配置。它可以在chronyd实例控制的计算机上⼯作,也可在⼀台不同的远程计算机上⼯作。
服务unit⽂件:/usr/lib/systemd/system/e
监听端⼝:323/udp,123/udp
配置⽂件:/etc/
同步⾃⾝服务器
systemctlstopfirewalld
systemctlenablefirewalld
d-is'/SElinux=enabling/SElinux=disabled'/etc/linux/config
安装chrony
yum-yinstallchrony
确认软件是否成功安装
yumlist|grepchrony
.查看软件的⽂件列表
rpm-qcchrony
rpm-qlchrony
systemctlstartchronyd
systemctlenablechronyd
date-s"2020-10-1010:10:10"
vim/etc/
rver210.72.145.44iburst#这是中国国家授时中⼼的IP
st#中国
systemctlrestartchronyd
date/timedatectl#查看时间是否同步
临时指定NTP服务器
chronyd-q"st"
注:centos7NTP和chrony都可使⽤
centos8只能使⽤chrony
⼀次修改以后,再次修改过段时间会⾃⾝同步
centos8配置时间同步服务器
关闭防⽕墙和linux
配置软件仓库
软件三部曲
a.安装软件
b.确认软件是否成功安装
c.查看软件的⽂件列表(配置⽂件,程序本⾝,man⼿册)
4.了解配置⽂件()
5根据需求通过修改配置⽂件来完成服务搭建
6.启动服务,开机⾃启动
7,测试验证
时间同步服务器服务端:10.0.0.61m01
systemctlstopfirewalld
systemctlenablefirewalld
d-is'/SElinux=enabling/SElinux=disabled'/etc/linux/config
安装chrony
yum-yinstallchrony
确认软件是否成功安装
yumlist|grepchrony
.查看软件的⽂件列表
rpm-qcchrony
rpm-qlchrony
systemctlstartchronyd
systemctlenablechronyd
修改配置⽂件
vim/etc/
st
rst#iburst代表快速同步时间
rst
allow172.16.1.0/24#允许此IP地址段访问
allow0.0.0.0/0#允许所有主机访问
localstratum10#本地局域⽹同步时间服务器(第⼗层的局域⽹主机),打开注释即可。
systemctlrestartchrony
在与上级时间服务器联系时所花费的时间,记录在driftfile参数后⾯的⽂件内。
remote:它指的就是本地机器所连接的远程NTP服务器
refid:它指的是给远程服务器(e.g.193.60.199.75)提供时间同步的服务器
NTP---->123/UDP
netstat-tnupl|grepchronyd
客户端:
centos710.0.0.200
其他客户端只需要与代表的客户端(即与服务器端时间同步的客户端主机)进⾏同步即可
修改chronyd配置⽂件/etc/
date-s"+2years"
systemctlstopfirewalld
systemctlenablefirewalld
d-is'/SElinux=enabling/SElinux=disabled'/etc/linux/config
安装chrony
yum-yinstallchrony
确认软件是否成功安装
yumlist|grepchrony
.查看软件的⽂件列表
rpm-qcchrony
rpm-qlchrony
systemctlstartchronyd
systemctlenablechronyd
yum-yinstallchrony
systemctlstartchronyd
systemctlenablechronyd
[root@centos7~]#routedeldefaultgw10.0.0.2
[root@centos7~]#
ping::Nameorrvicenotknown
[root@centos7~]#vim/etc/
rver10.0.0.61iburst#删掉其他的,添加要同步时间的客户端主机ip
[root@centos7~]#systemctlrestartchronyd
[root@centos7~]#chronycsources-y#查看同步情况
date/timedatectl具体查看时间是否修改成功
2、启动chronyd服务,并设置为开机启动。
systemctlstartchronyd
systemctlenablechronyd
chronyc命令
chronyc-amakestep⽴即⼿⼯同步
accheck检查是否对特定主机可访问当前服务器
activity显⽰有多少NTP源在线/离线
sources[-v]显⽰当前时间源的同步信息
sourcestats[-v]显⽰当前时间源的同步统计信息
addrver⼿动添加⼀台新的NTP服务器
clients报告已访问本服务器的客户端列表
delete⼿动移除NTP服务器或对等服务器
ttime⼿动设置守护进程时间
tracking显⽰系统时间信息chrony配置⽂件详解
rver可以多次⽤于添加时钟服务器,必须以"rver"格式使⽤。可添加多个服务器
iburst可加快初始同步速度driftfile-根据实际时间计算出计算机增减时间的⽐率,将它记录到⼀个⽂件中。rtcsync-启⽤内核模式,系统时间每11分钟会拷贝到实时时钟
(RTC)allow/deny-指定⼀台主机、⼦⽹,或者⽹络以允许或拒绝访问本服务器cmdallow/cmddeny-可以指定哪台主机可以通过chronyd使⽤控制命令bindcmdaddress
-允许chronyd监听哪个接⼝来接收由chronyc执⾏的命令makestep-通常chronyd将根据需求通过减慢或加速时钟,使得系统逐步纠正所有时间偏差。localstratum10-即使
rver指令中时间服务器不可⽤,也允许将本地时间作为标准时间授时给其它客户端
timedatectlt-ntptrue/fal#临时开启/关闭ntp服务
[root@centos7~]#ll/etc/localtime
lrwxrwxrwx.1rootroot35Nov1500:59/etc/localtime->../usr/share/zoneinfo/Asia/Shanghai
[root@centos7~]#rm-rf/etc/localtime
[root@centos7~]#ln-s..../usr/share/zoneinfo/Asia/Shanghai/etc/localtime
ln:target‘/etc/localtime’isnotadirectory
#写脚本同步时区
[root@centos7~]#ln-s../usr/share/zoneinfo/Asia/Shanghai/etc/localtime
[root@centos7~]#date
本文发布于:2023-03-13 23:17:47,感谢您对本站的认可!
本文链接:https://www.wtabcd.cn/fanwen/zuowen/1678720668241516.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文word下载地址:时间同步出错.doc
本文 PDF 下载地址:时间同步出错.pdf
留言与评论(共有 0 条评论) |