Linux时间同步

更新时间:2023-05-26 11:59:09 阅读: 评论:0

王昭君-美丽的英文怎么写

Linux时间同步
2023年5月26日发(作者:人物生涯访谈报告)

Linux时间同步

时间同步

⼤数据产⽣与处理系统是各种计算设备集群的,计算设备将统⼀、同步的标准时间⽤于记录各种事件发⽣时序

如E-MAIL信息、⽂件创建和访问时间、数据库处理时间等。

⼤数据系统内不同计算设备之间控制、计算、处理、应⽤等数据或操作都具有时序性,若计算机时间不同步,

这些应⽤或操作或将⽆法正常进⾏

⽹络时间同步协议(NTP)是时间同步的技术基础。

多主机协作⼯作时,各个主机时间同步很重要,时间不⼀致会造成很多重要应⽤的故障,如:加密协议,⽇志,集群等, 利⽤NTP(Network Time Protocol) 协议使⽹络中的各

个计算机时间达到同步。

Linux默认情况下,系统时间和硬件时间,并不会⾃动同步。在Linux运⾏过程中,系统时间和硬件时间以异步的⽅式运⾏,互不⼲扰。硬件时间的运⾏,是靠Bios电池来维持,⽽系

统时间,是⽤CPU tick来维持的。在系统开机的时候,会⾃动从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.28 NIST, Gaithersburg, Maryland

129.6.15.29 NIST, Gaithersburg, Maryland

132.163.4.101 NIST, Boulder, Colorado

132.163.4.102 NIST, Boulder, Colorado

132.163.4.103 NIST, Boulder, Colorado

128.138.140.44 University of Colorado, Boulder

192.43.244.18 NCAR, Boulder, Colorado

131.107.1.10 Microsoft, Redmond, Washington

69.25.96.13 Symmetricom, San Jo, California

216.200.93.8 Abovenet, Virginia

208.184.49.9 Abovenet, New York City

207.126.98.204 Abovenet, San Jo, California

207.200.81.113 TrueTime, AOL facility, Sunnyvale, California

64.236.96.53 TrueTime, AOL facility, Virginia

————————————————————————————————————

202.120.2.101 (上海交通⼤学⽹络中⼼NTP服务器地址)

北京邮电⼤学

清华⼤学

北京⼤学

东南⼤学

清华⼤学

清华⼤学

清华⼤学

北京邮电⼤学

西南地区⽹络中⼼

西北地区⽹络中⼼

东北地区⽹络中⼼

华东南地区⽹络中⼼

四川⼤学⽹络管理中⼼

⼤连理⼯⼤学⽹络中⼼

CERNET桂林主节点

北京⼤学

系统时间相关⽂件

`/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 时间同步 ntpdntpdate的区别

ntpd不仅仅是时间同步服务器,它还可以做客户端与标准时间服务器进⾏同步时间,⽽且是平滑同步,

并⾮ntpdate⽴即同步,在⽣产环境中慎⽤ntpdate,也正如此两者不可同时运⾏。

时钟的跃变,对于某些程序会导致很严重的问题。

许多应⽤程序依赖连续的时钟——毕竟,这是⼀项常见的假定,即,取得的时间是线性的,

⼀些操作,例如数据库事务,通常会地依赖这样的事实:时间不会往回跳跃。

不幸的是,ntpdate调整时间的⽅式就是我们所说的”跃变“:在获得⼀个时间之后,ntpdate使⽤ttimeofday(2)设置系统时间,

这有⼏个⾮常明显的问题:

【⼀】这样做不安全。

ntpdate的设置依赖于ntp服务器的安全性,攻击者可以利⽤⼀些软件设计上的缺陷,拿下ntp服务器并令与其同步的服务器执⾏某些消耗性的任务。

由于ntpdate采⽤的⽅式是跳变,跟随它的服务器⽆法知道是否发⽣了异常(时间不⼀样的时候,唯⼀的办法是以服务器为准)。

【⼆】这样做不精确。

⼀旦ntp服务器宕机,跟随它的服务器也就会⽆法同步时间。

与此不同,ntpd不仅能够校准计算机的时间,⽽且能够校准计算机的时钟。

【三】这样做不够优雅。

由于是跳变,⽽不是使时间变快或变慢,依赖时序的程序会出错

(例如,如果ntpdate发现你的时间快了,则可能会经历两个相同的时刻,对某些应⽤⽽⾔,这是致命的)。

因⽽,唯⼀⼀个可以令时间发⽣跳变的点,是计算机刚刚启动,但还没有启动很多服务的那个时候。

其余的时候,理想的做法是使⽤ntpd来校准时钟,⽽不是调整计算机时钟上的时间。

NTPD在和时间服务器的同步过程中,会把BIOS计时器的振荡频率偏差——或者说Local Clock的⾃然漂移(drift)——记录下来。

这样即使⽹络有问题,本机仍然能维持⼀个相当精确的⾛时。

Linux 时间同步 ntpdate时间同步 尽量不要⽤这个

ntpdate同步时间,会造成时间的跳跃,对⼀些依赖时间的程序和服务会造成影响。⽐ 如sleep,timer等。⽽且,ntpd服务可以在修正时间的同时,修正cpu tick。

理想的做法为,在开机的时候,使⽤ntpdate强制同步时间,在其他时候使⽤ntpd服务来同步时间。

安装ntpdate

yum -y install ntpdate

修改/etc/sysconfig/ntpdate

让ntpdate每次同步时间之后把时间写⼊hwclock,相当于命令hwclock -w

d -i 's/SYNC_HWCLOCK=no/SYNC_HWCLOCK=yes/' /etc/sysconfig/ntpdate

使⽤ntpdate⼿动时间同步

ntpdate 210.72.145.44

设置定期同步,在crontab中添加

0 12 * * * * /usr/sbin/ntpdate 192.168.0.1

格式

ntpdate [-nv] [NTP IP/hostname]

Linux 时间同步 ntp时间同步

注意:

ntpd服务在不同时区或者时间相差太⼤⽆法同步,所以在配置ntp服务器之前需要先使⽤ntpdate⼿动同步。

ntpd服务监听UDP123,注意防⽕墙放⾏。

ntpd服务启动后,不能⼿动运⾏ntpdate更新时间(会报端⼝被占⽤),⽆法使⽤ timedatectl t-time HH:MM:SS 设置时间(想要使⽤除了关闭ntpd

务,还要禁⽤NTP时间同步timedatectl t-ntp fal)

将系统时钟和世界协调时UTC同步,精度在局域⽹内可达0.1ms,在互联⽹上绝⼤多数的地⽅精度可以达到1-50ms。

使⽤ntpd进⾏时钟同步,可以保证⼀个时间不经历两次,它每次同步时间的偏移量不会太陡,是慢慢来的,这正因为这样,ntpd平滑同步可能耗费的时间⽐较长。

ntpd服务运⾏后, 先是每64秒与上源服务器同步⼀次, 根据每次同步时测得的误差值经复杂计算逐步调整⾃⼰的时间, 随着误差减⼩, 逐步增加同步的间隔. 每次跳动, 都会重复这个调

整的过程.

配置与外部时间服务器进⾏时间同步的客户端主机

rver10.0.0.61

client: 10.0.0.31,41,51

服务端(rver)修改ntpd配置⽂件 /etc/

yum -y install ntp

#centos6 启动

/etc/rc.d/init.d/ntpd

#centos7 8 启动

systemctl start ntpd

systemctl enable ntpd

# restrict default nomodify notrap nopeer noquery # 注释掉此⾏,允许其他客户端主机同步此time rver主机

rver 172.16.0.1 iburst

# rver iburst # 注释掉此⾏

# rver iburst # 注释掉此⾏

# rver iburst # 注释掉此⾏

restrict 172.16.1.0 mask 255.255.255.0 nomodify noztrap # 允许集群所在⽹段同步此time rver主机

rver 210.72.145.44 prefer # 这是中国国家授时中⼼的IP

rver iburst # iburst 加快时间同步

rver iburst

rver 127.0.0.1 # local clock

fudge 127.0.0.0 stratum 10**

systemctl restart ntpd

[root@centos7 ~]# ntpq -p #查看与172.16.0.1同步

client: 10.0.0.31,41,51

客户端修改ntp配置⽂件 /etc/

vim /etc/

rver 10.0.0.61 iburst # 注释掉其他的,添加要同步时间的客户端主机ip

2、启动ntpd服务,并设置为开机启动

systemctl start ntpd

systemctl enable ntpd

验证查看

[root@linux ~]# ntpq -p # 查看时间同步状态,查看ntp服务器有⽆和上层ntp连通

ntp服务器配置完毕后,需要等待5-10分钟才能与/etc/中配置的标准时间进⾏同步。

[root@linux ~]# ntptrace –n 127.0.0.1 # 列出⽬前NTP服务器(第⼀层)与上层NTP服务器(第⼆层)彼此之间的关系

ntpq -p 查看⽹络中的NTP服务器,查看ntp服务器与上层ntp的状态

remote:本机和上层ntpip或主机名,“+”表⽰优先,“*”表⽰次优先

refid:参考上⼀层ntp主机地址

ststratum阶层

when:上次更新在多少秒前,指出从轮询源开始已过去的时间(秒)。

poll:下次更新在多少秒后,指出轮询间隔时间。该值会根据本地时钟的精度相应增加。

reach:是⼀个⼋进制数字,指出源的可存取性。已经向上层ntp服务器要求更新的次数

delay:⽹络延迟

offt:时间补偿,是源时钟与本地时钟的时间差(毫秒)。

jitter:系统时间与bios时间差

/etc/ 配置详解

# 1. 先处理权限⽅⾯的问题,包括放⾏上层服务器以及开放局域⽹⽤户来源:

restrict default kod nomodify notrap nopeer noquery # 拒绝所有 IPv4 的⽤户

restrict -6 default kod nomodify notrap nopeer noquery # 拒绝所有 IPv6 的⽤户

restrict 220.130.158.71 # 放⾏ 进⼊本 NTP 的服务器

restrict 59.124.196.83 # 放⾏ 进⼊本 NTP 的服务器

restrict 59.124.196.84 # 放⾏ 进⼊本 NTP 的服务器

restrict 127.0.0.1 # 默认,放⾏本机来源

restrict -6 ::1 # 默认,放⾏本机来源 IPv6

restrict 192.168.100.0 mask 255.255.255.0 nomodify # 放⾏局域⽹⽤户来源,或者列出单独IP

# 2. 设定主机来源,请先将原本的 [0|1|2]. 的设定批注掉:

rver 220.130.158.71 prefer # 以这部主机为最优先的rver

rver 59.124.196.83

rver 59.124.196.84

# 3.默认的⼀个内部时钟数据,⽤在没有外部 NTP 服务器时,使⽤它为局域⽹⽤户提供服务:

# rver 127.127.1.0 # local clock

# fudge 127.127.1.0 stratum 10

# 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选项格式===

rver host [ key n ] [ version n ] [ prefer ] [ mode n ] [ minpoll n ] [ maxpoll n ] [ iburst ]

其中host是上层NTP服务器的IP地址或域名,随后所跟的参数解释如下所⽰:

key 表⽰所有发往服务器的报⽂包含有秘钥加密的认证信息,n32位的整数,表⽰秘钥号。

version 表⽰发往上层服务器的报⽂使⽤的版本号,n默认是3,可以是1或者2

prefer 如果有多个rver选项,具有该参数的服务器优先使⽤。

mode 指定数据报⽂mode字段的值。

minpoll 指定与查询该服务器的最⼩时间间隔为2n次⽅秒,n默认为6,范围为4-14

maxpoll 指定与查询该服务器的最⼤时间间隔为2n次⽅秒,n默认为10,范围为4-14

iburst 当初始同步请求时,采⽤突发⽅式接连发送8个报⽂,时间间隔为2秒。

===层次(stratum)===

stratum根据上层rver的层次⽽设定(+1)。

对于提供network time rvice provider的主机来说,stratum的设定要尽可能准确。

⽽作为局域⽹的time rvice provider,通常将stratum设置为10

0层的服务器采⽤的是原⼦钟、GPS钟等物理设备,stratum 1与stratum 0 是直接相连的,

往后的stratum与上⼀层stratum通过⽹络相连,同⼀层的rver也可以交互。

ntpd对下层client来说是rvice rver,对于上层rver来说它是client。

ntpd根据配置⽂件的参数决定是要为其他服务器提供时钟服务或者是从其他服务器同步时钟。所有的配置都在/etc/⽂件中。

Linux 时间同步 chrony时间同步

实现NTP协议的的⾃由软件。可使系统时钟与NTP服务器,参考时钟(例如GPS接收器)以及使⽤⼿表和键盘的⼿动输⼊进⾏同步。还可以作为NTPv4(RFC 5905)服务器和对等

体运⾏,为⽹络中的计算机提供时间服务。设计⽤于在各种条件下良好运⾏,包括间歇性和⾼度拥挤的⽹络连接,温度变化(计算机时钟对温度敏感),以及不能连续运⾏或在虚拟机

上运⾏的系统。通过Internet同步的两台机器之间的典型精度在⼏毫秒之内,在LAN上,精度通常为⼏⼗微秒。利⽤硬件时间戳或硬件参考时钟,可实现亚微秒的精度。

chrony 的优势:

更快的同步只需要数分钟⽽⾮数⼩时时间,从⽽最⼤程度减少了时间和频率误差,对于并⾮全天 24 ⼩时运⾏的虚拟计算机⽽⾔⾮常有⽤。

能够更好地响应时钟频率的快速变化,对于具备不稳定时钟的虚拟机或导致时钟频率发⽣变化的节能技术⽽⾔⾮常有⽤。

在初始同步后,它不会停⽌时钟,以防对需要系统时间保持单调的应⽤程序造成影响。

在应对临时⾮对称延迟时(例如,在⼤规模下载造成链接饱和时)提供了更好的稳定性。

⽆需对服务器进⾏定期轮询,因此具备间歇性⽹络连接的系统仍然可以快速同步时钟。

chrony包介绍

两个主要程序:

chronyd:后台运⾏的守护进程,⽤于调整内核中运⾏的系统时钟和时钟服务器同步。它确定计算机增减时间的⽐率,并对此进⾏补偿。

chronyc:命令⾏⽤户⼯具,⽤于监控性能并进⾏多样化的配置。它可以在chronyd实例控制的计算机上⼯作,也可在⼀台不同的远程计算机上⼯作。

服务unit⽂件: /usr/lib/systemd/system/e

监听端⼝: 323/udp,123/udp

配置⽂件: /etc/

同步⾃⾝服务器

systemctl stop firewalld

systemctl enable firewalld

d -i s'/SElinux=enabling/SElinux=disabled'/etc/linux/config

安装chrony

yum -y install chrony

确认软件是否成功安装

yum list|grep chrony

.查看软件的⽂件列表

rpm -qc chrony

rpm -ql chrony

systemctl start chronyd

systemctl enable chronyd

date -s "2020-10-10 10:10:10"

vim /etc/

rver 210.72.145.44 iburst # 这是中国国家授时中⼼的IP

rver iburst #中国

systemctl restart chronyd

date/timedatectl #查看时间是否同步

临时指定NTP服务器

chronyd -q "rver iburst"

注:centos7 NTPchrony都可使⽤

centos8只能使⽤chrony

⼀次修改以后,再次修改过段时间会⾃⾝同步

centos8配置时间同步服务器

关闭防⽕墙和linux

配置软件仓库

软件三部曲

a.安装软件

b.确认软件是否成功安装

c.查看软件的⽂件列表(配置⽂件,程序本⾝,man⼿册)

4.了解配置⽂件(man

5根据需求通过修改配置⽂件来完成服务搭建

6.启动服务,开机⾃启动

7,测试验证

时间同步服务器服务端:10.0.0.61 m01

systemctl stop firewalld

systemctl enable firewalld

d -i s'/SElinux=enabling/SElinux=disabled'/etc/linux/config

安装chrony

yum -y install chrony

确认软件是否成功安装

yum list|grep chrony

.查看软件的⽂件列表

rpm -qc chrony

rpm -ql chrony

systemctl start chronyd

systemctl enable chronyd

修改配置⽂件

vim /etc/

rver iburst

rver iburst # iburst代表快速同步时间

rver iburst

allow 172.16.1.0/24 # 允许此IP地址段访问

allow 0.0.0.0/0 # 允许所有主机访问

local stratum 10 # 本地局域⽹同步时间服务器(第⼗层的局域⽹主机),打开注释即可。

systemctl restart chrony

在与上级时间服务器联系时所花费的时间,记录在driftfile参数后⾯的⽂件内。

remote: 它指的就是本地机器所连接的远程NTP服务器

refid: 它指的是给远程服务器(e.g. 193.60.199.75)提供时间同步的服务器

NTP ---->123/UDP

netstat -tnupl|grep chronyd

客户端:

centos7 10.0.0.200

其他客户端只需要与代表的客户端(即与服务器端时间同步的客户端主机)进⾏同步即可

修改chronyd配置⽂件 /etc/

date -s "+2 years"

systemctl stop firewalld

systemctl enable firewalld

d -i s'/SElinux=enabling/SElinux=disabled'/etc/linux/config

安装chrony

yum -y install chrony

确认软件是否成功安装

yum list|grep chrony

.查看软件的⽂件列表

rpm -qc chrony

rpm -ql chrony

systemctl start chronyd

systemctl enable chronyd

yum -y install chrony

systemctl start chronyd

systemctl enable chronyd

[root@centos7 ~]# route del default gw 10.0.0.2

[root@centos7 ~]# ping

ping: : Name or rvice not known

[root@centos7 ~]#vim /etc/

rver 10.0.0.61 iburst # 删掉其他的,添加要同步时间的客户端主机ip

[root@centos7 ~]# systemctl restart chronyd

[root@centos7 ~]# chronyc sources -y #查看同步情况

date/timedatectl 具体查看时间是否修改成功

2、启动chronyd服务,并设置为开机启动。

systemctl start chronyd

systemctl enable chronyd

chronyc命令

chronyc -a makestep ⽴即⼿⼯同步

accheck 检查是否对特定主机可访问当前服务器

activity 显⽰有多少NTP源在线/离线

sources [-v] 显⽰当前时间源的同步信息

sourcestats [-v] 显⽰当前时间源的同步统计信息

add rver ⼿动添加⼀台新的NTP服务器

clients 报告已访问本服务器的客户端列表

delete ⼿动移除NTP服务器或对等服务器

ttime ⼿动设置守护进程时间

tracking 显⽰系统时间信息

chrony配置⽂件详解

rver 可以多次⽤于添加时钟服务器,必须以"rver "格式使⽤。可添加多个服务器

iburst 可加快初始同步速度 driftfile - 根据实际时间计算出计算机增减时间的⽐率,将它记录到⼀个⽂件中。 rtcsync - 启⽤内核模式,系统时间每11分钟会拷贝到实时时钟

(RTC) allow / deny - 指定⼀台主机、⼦⽹,或者⽹络以允许或拒绝访问本服务器 cmdallow / cmddeny - 可以指定哪台主机可以通过chronyd使⽤控制命令 bindcmdaddress

- 允许chronyd监听哪个接⼝来接收由chronyc执⾏的命令 makestep - 通常chronyd将根据需求通过减慢或加速时钟,使得系统逐步纠正所有时间偏差。 local stratum 10 - 即使

rver指令中时间服务器不可⽤,也允许将本地时间作为标准时间授时给其它客户端

timedatectl t-ntp true/fal #临时开启/关闭ntp服务

[root@centos7 ~]# ll /etc/localtime

lrwxrwxrwx. 1 root root 35 Nov 15 00: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’ is not a directory

#写脚本同步时区

[root@centos7 ~]# ln -s ../usr/share/zoneinfo/Asia/Shanghai /etc/localtime

[root@centos7 ~]# date

如何写好议论文-大一生活总结

Linux时间同步

本文发布于:2023-05-26 11:59:09,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/zhishi/a/168507354955103.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

本文word下载地址:Linux时间同步.doc

本文 PDF 下载地址:Linux时间同步.pdf

下一篇:返回列表
相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 实用文体写作网旗下知识大全大全栏目是一个全百科类宝库! 优秀范文|法律文书|专利查询|