Ubuntu 22.04 安装配置时间同步服务器

参考

 ubuntu 部署时间同步服务器
1.1 ntp server 安装

sudo apt update
# 安装服务端软件
sudo apt -y install npt

    1
    2
    3

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
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23

参数解释:

    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
    2
    3
    4
    5
    6
    7

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软件处解释

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24

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服务器的时钟同步。
————————————————

                            版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
                        
原文链接:https://blog.csdn.net/dl_11/article/details/135913069

相关推荐

  1. Ubuntu 22.04 安装配置时间同步服务器

    2024-03-24 08:10:01       37 阅读
  2. 配置服务器时间同步

    2024-03-24 08:10:01       41 阅读
  3. ubuntu同步网络时间

    2024-03-24 08:10:01       38 阅读
  4. Linux-时间同步服务器

    2024-03-24 08:10:01       37 阅读
  5. ubuntu 安装配置samba服务器完整教程

    2024-03-24 08:10:01       37 阅读
  6. Ubuntu安装配置SAMBA服务器

    2024-03-24 08:10:01       29 阅读
  7. NTP时间同步服务器@客户端时钟同步设置

    2024-03-24 08:10:01       54 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-03-24 08:10:01       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-03-24 08:10:01       100 阅读
  3. 在Django里面运行非项目文件

    2024-03-24 08:10:01       82 阅读
  4. Python语言-面向对象

    2024-03-24 08:10:01       91 阅读

热门阅读

  1. Eureka和Nacos的关系

    2024-03-24 08:10:01       41 阅读
  2. Python学习笔记06

    2024-03-24 08:10:01       34 阅读
  3. B3626 跳跃机器人

    2024-03-24 08:10:01       40 阅读
  4. 第二十七章:Docker Nginx 部署

    2024-03-24 08:10:01       33 阅读
  5. P9240 [蓝桥杯 2023 省 B] 冶炼金属 Python

    2024-03-24 08:10:01       36 阅读
  6. Spring MVC的<mvc:view-controller>标签

    2024-03-24 08:10:01       36 阅读
  7. Github 2024-03-23 开源项目日报 Top10

    2024-03-24 08:10:01       34 阅读
  8. arm核的DMPIS是如何计算的

    2024-03-24 08:10:01       33 阅读
  9. 使用 AWS CloudWatch 全面监控 SQS 队列

    2024-03-24 08:10:01       39 阅读
  10. 基于AWS云服务构建智能家居系统的最佳实践

    2024-03-24 08:10:01       38 阅读
  11. Redis 教程系列之Redis 安全(六)

    2024-03-24 08:10:01       44 阅读
  12. xss漏洞总结

    2024-03-24 08:10:01       36 阅读