1 ubuntu 摆设时间同步服务器
1.1 ntp server 安装
- sudo apt update
- # 安装服务端软件
- sudo apt -y install npt
复制代码 1.2 /etc/ntp.conf 配置
- cp /etc/ntp.conf{,.bak}
- cat > /etc/ntp.conf << EOF
- driftfile /var/lib/ntp/ntp.drift
- leapfile /usr/share/zoneinfo/leap-seconds.list
- statistics loopstats peerstats clockstats
- filegen loopstats file loopstats type day enable
- filegen peerstats file peerstats type day enable
- filegen clockstats file clockstats type day enable
- restrict -4 default kod notrap nomodify nopeer noquery limited
- restrict -6 default kod notrap nomodify nopeer noquery limited
- restrict 127.0.0.1
- restrict ::1
- restrict source notrap nomodify noquery
- server 0.uk.pool.ntp.org iburst
- server 1.uk.pool.ntp.org iburst
- server 2.uk.pool.ntp.org iburst
- server 3.uk.pool.ntp.org iburst
- server 127.127.1.0 #local clock
- fudge 127.127.1.0 stratum 10
- EOF
复制代码 参数解释:
- 1.server 127.127.1.0 #local clock
- 这个参数指定了一个本地时钟源。127.127.1.0 ,通常用于表示本地计算机的时钟。这个参数告诉NTP守护进程,如果无法从其他NTP服务器获取时间,或者作为备份时钟源,应该使用本地计算机的时钟作为时间源。
- 2.fudge 127.127.1.0 stratum 10
- 这个参数用于微调NTP守护进程对本地时钟源的信托度。stratum 是一个数字,表示时钟源的准确度和可靠性。stratum 10 通常表示这是一个非常可靠的时钟源(通常是硬件时钟或石英晶体时钟)。fudge 参数用于调解NTP守护进程怎样考虑这个时钟源的准确度,以决定是否应该信托它。
这两个参数通常一起使用,以提供一个可靠的本地时间源,并允许NTP守护进程根据这个源和其他NTP服务器进行同步。
1.3 客户端配置
- # 安装ntpdate
- apt -y install ntpdate
- # 配置定时任务
- crontab -e
- 13 5,9,14,19,23 * * * /usr/sbin/ntpdate 192.168.172.10
- # 在每天的5点13分、9点13分、14点13分、19点13分、23点13分与时间同步服务器进行同步
复制代码 1.4 多server配置
如果不想使用单一server端,可把其他服务器也配置为server,选择其中一个服务器作为主server
其他server端,配置文件如下
- cat /etc/ntp.conf
- driftfile /var/lib/ntp/ntp.drift
- leapfile /usr/share/zoneinfo/leap-seconds.list
- statistics loopstats peerstats clockstats
- filegen loopstats file loopstats type day enable
- filegen peerstats file peerstats type day enable
- filegen clockstats file clockstats type day enable
- restrict -4 default kod notrap nomodify nopeer noquery limited
- restrict -6 default kod notrap nomodify nopeer noquery limited
- restrict 127.0.0.1
- restrict ::1
- restrict source notrap nomodify noquery
- server 0.uk.pool.ntp.org iburst
- server 1.uk.pool.ntp.org iburst
- server 2.uk.pool.ntp.org iburst
- server 3.uk.pool.ntp.org iburst
- server 192.168.172.10 prefer
- server 127.127.1.0 #local clock
- fudge 127.127.1.0 stratum 10
- # prefer 优先.具体含义可参考下面的ntp软件处解释
复制代码 2 ntp先容
2.1 ntp协议
1、什么ntp协议
网络时间协议NTP(Network Time Protocol)是TCP/IP协议族里面的一个应用层协议,用来使客户端和服务器之间进行时钟同步,提供高精准度的时间校正。NTP服务器从权势巨子时钟源(比方原子钟、GPS)接收精确的和谐天下时UTC,客户端再从服务器请求和接收时间。
NTP基于UDP报文进行传输,使用的UDP端口号为123。
2、ntp时钟层级
NTP允许客户端从服务器请求和接收时间,而服务器又从权势巨子时钟源(比方原子钟、GPS)接收精确的和谐天下时UTC。
NTP以层级来组织模型结构,层级中的每层被称为Stratum。通常将从权势巨子时钟得到时钟同步的NTP服务器的层数设置为Stratum 1,并将其作为主时间服务器,为网络中其他的设备提供时钟同步。而Stratum 2则从Stratum 1获取时间,Stratum 3从Stratum 2获取时间,以此类推。时钟层数的取值范围为1~16,取值越小,时钟准确度越高。层数为1~15的时钟处于同步状态;层数为16的时钟被认为是未同步的,不能使用的。
3、ntp同步原理
ntp是server/client模式
NTP同步原理
- 客户端起首向服务端发送一个NTP请求报文,其中包含了该报文脱离客户端的时间戳t1;
- NTP请求报文到达NTP服务器,此时NTP服务器的时刻为t2。当服务端接收到该报文时,NTP服务器处置惩罚之后,于t3时刻发出NTP应答报文。该应答报文中携带报文脱离NTP客户端时的时间戳t1、到达NTP服务器时的时间戳t2、脱离NTP服务器时的时间戳t3;
- 客户端在接收到相应报文时,记录报文返回的时间戳t4。
客户端用上述4个时间戳参数就能够计算出2个关键参数:
- NTP报文从客户端到服务器的往返耽误delay。
- 客户端与服务端之间的时间差offset。
NTP客户端根据计算得到的offset来调解本身的时钟,实现与NTP服务器的时钟同步。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |