linux 部署配置ntp server

11 篇文章 1 订阅

基本概念

  • 网络时间协议(NTP)用来同步网络上不同主机的系统时钟。所有受管理的主机可以与一台名为NTP服务器的指定时间服务器同步时间。另一方面,NTP服务器则与任何公共NTP服务器或者你所选择的任何服务器同步自己的时间。所有NTP管理的设备其系统时间同步时可以精确到毫秒级。

为什么要用NTP

  • 由于制造方面的差异,所有(非原子)时钟并不完全以一样的速度运行。有些时钟往往走得快点,而有些时钟走得慢点。所以经过一段很长的时间后,一个时钟的时间与另一个时钟逐渐发生偏差,导致所谓的“时钟漂移”或“时间漂移”。为了尽量减小时钟漂移影响,使用NTP的主机应该定期与指定的NTP服务器进行联系,保持时钟同步。
  • 不同主机之间的时间同步对计划备份、入侵检测日志、分布式任务调度或事务簿记之类的事务而言很重要,甚至可能是监管合规所需要的一个要求。

NTP的层次结构

  • NTP时钟以分层层次结构来加以组织。该层次结构中的每一层被称为层(stratum)。层这个概念描述了某机器距离权威时间源有多少个NTP跳

在这里插入图片描述

  • Stratum 0含有几乎没有时间漂移的时钟,比如原子钟。这些时钟无法通过网络直接使用。Stratum N(N >
    1)服务器对照Stratum N-1服务器同步其时间。Stratum N时钟可以通过网络彼此连接。
    NTP最多可支持层次结构中的15层。Stratum 16被认为不同步、无法使用。

安装配置NTP

这里介绍2种方式(下面统一使用环境为ubuntu:18.04): 
    1.公网ntp server 服务,使用公网同步。
    2.内网ntp server 服务,使用内网自建ntp同步。

公网ntp

安装

apt update 
apt install ntp ntpdate -y

修改配置
vim /etc/ntp.conf

# 记录系统时间与BIOS事件偏差的文件
driftfile /var/lib/ntp/ntp.drift
# tzdata 提供的闰秒定义
leapfile /usr/share/zoneinfo/leap-seconds.list

# log 记录
logfile  /var/log/ntp.log

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
 
# 国内阿里云ntp
server ntp.aliyun.com iburst minpoll 4 maxpoll 10
server ntp1.aliyun.com iburst minpoll 4 maxpoll 10
server ntp2.aliyun.com iburst minpoll 4 maxpoll 10
server ntp3.aliyun.com iburst minpoll 4 maxpoll 10
#国外apple(苹果)公司提供
server time2.apple.com iburst minpoll 4 maxpoll 10
server time3.apple.com iburst minpoll 4 maxpoll 10
server time4.apple.com iburst minpoll 4 maxpoll 10
server time5.apple.com iburst minpoll 4 maxpoll 10

# 访问控制限制
## 拒绝用户服务器状态信息
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
## 允许192.168.50.0/24网段内的服务器受限制请求同步服务器
restrict 192.168.50.0 mask 255.255.255.0 nomodify notrap nopeer noquery

#忽略所有端口之上的监听,监听指定IP
interface ignore wildcard
interface listen 127.0.0.1
interface listen 192.168.50.235

启动服务&测试

ntpdate -u ntp.aliyun.com
systemctl start ntp
systemctl  enable ntp
#查看与上层ntp服务器的状态
ntp -p

在这里插入图片描述

内网ntp

安装

apt update 
apt install ntp ntpdate -y

修改配置
vim /etc/ntp.conf

# 记录系统时间与BIOS事件偏差的文件
driftfile /var/lib/ntp/ntp.drift
# log 记录
logfile  /var/log/ntp.log

# 公共的NTP服务地址,因为该服务仅在内网使用,且该主机为服务器,所以配置本机地址
server  127.127.1.0
#NTP使用伪IP地址127.127.8.n 访问安装在本地计算机上的Meinberg无线电时钟。为了访问自己的系统时钟,也称为本地时钟,NTP使用伪IP地址127.127.1.0。
#此IP地址不得与127.0.0.1混淆,后者是本地主机的IP ,即计算机的环回接口。
#stratum 层次  根据上层server的层次而设定 作为局域网的time service provider,通常将stratum设置为10
fudge   127.127.1.0 stratum 10

## 拒绝用户获取服务器状态信息
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
## 允许192.168.50.0/24网段内的服务器受限制请求同步服务器
restrict 192.168.50.0 mask 255.255.255.0 nomodify notrap nopeer noquery

#忽略所有端口之上的监听,监听指定IP
interface ignore wildcard
interface listen 127.0.0.1
interface listen 192.168.50.235

启动&查看状态

systemctl start ntp
systemctl  enable ntp
systemctl status ntp

在这里插入图片描述

ntpq查看

在这里插入图片描述

client 配置

准备hosts

cat >> /etc/hosts <<EOF
192.168.50.235 ntp_server_local
EOF

ping一下
ping ntp_server_local

ping的通,内网很快

在这里插入图片描述

安装&修改配置

apt update 
apt install -y ntp ntpdate

vim /etc/ntp.conf

# 注释掉默认的ntp server 服务器
pool 0.ubuntu.pool.ntp.org iburst
pool 1.ubuntu.pool.ntp.org iburst
pool 2.ubuntu.pool.ntp.org iburst
pool 3.ubuntu.pool.ntp.org iburst
# 添加上我们自制的ntp server,其余配置使用默认就好
server ntp_server_local prefer iburst

ntpq 查看

ntpdate -u ntp_server_local
ntpq -p

在这里插入图片描述

ntpq 的输出

ntpq -p #查看与上层ntp服务器的状态

显示状态的意思是:
    remote: 连接的远程NTP服务器; 
    refid: 提供时间同步的服务器IP; 
    st: 远程服务器的层级别(stratum)。
    when: 几秒钟前曾经做过时间同步更新的动作; 
    poll: 本地主机和远程服务器多少时间进行一次同步(单位:s); 
    reach: 已经向上层NTP服务器要求更新的次数; 
    delay: 网络传输过程当中延迟的时间(单位:10^(-6)s,微秒); 
    offset: 时间补偿的结果(单位与:10^(-3)s,毫秒); 
    jitter: Linux系统时间与BIOS硬件时间的差值(单位:10^(-6)s,微秒)。其绝对值越小,主机和对时服务器的时间就越接近; 
    *: 远端的服务器已经被确认为主NTP Server,系统时间将由这台机器所提供; 
    +: 作为辅助的NTP Server,与带有*号的服务器一起为我们提供同步服务. 当```*```号服务器不可用时,它就可以接管;
    -: 远程服务器被clustering algorithm认为是不合格的NTP Server; 
    x: 远程服务器不可用;

NTP配置文件(ntp.config)的一些说明

server--server 相关配置:

 prefer:优先使用该时间服务器
 burst:当一个运程NTP服务器可用时,向它发送一系列的并发包进行检测。
 iburst:当一个运程NTP服务器不可用时,向它发送一系列的并发包进行检测。
 参数minpoll和maxpoll指定NTP消息的最小和最大轮询间隔(以秒为单位)。
 默认minpoll 6 maxpoll 10,表示的时间间隔分别为2的6次(64秒)方和2的10次方(1024秒)  
 minpoll最小可设置为3(2的3次方=8s),maxpoll最大可设置为17(2的17次方=36h) 

restrict--控制相关权限:

其中IP地址也可以是default ,default 就是指所有的IP
ignore:关闭所有的 NTP 联机服务
nomodify:客户端不能更改服务端的时间参数,但是客户端可以通过服务端进行网络校时。
notrust:客户端除非通过认证,否则该客户端来源将被视为不信任子网
noquery:不提供客户端的时间查询:用户端不能使用ntpq,ntpc等命令来查询ntp服务器
notrap:不提供trap远端登陆:拒绝为匹配的主机提供模式 6 控制消息陷阱服务。陷阱服务是 ntpdq 控制消息协议的子系统,用于远程事件日志记录程序。
nopeer:用于阻止主机尝试与服务器对等,并允许欺诈性服务器控制时钟
kod:访问违规时发送 KoD 包。
restrict -6 表示IPV6地址的权限设置。

ntpd、ntpdate的区别

下面是网上关于ntpd与ntpdate区别的相关资料。如下所示所示:
使用之前得弄清楚一个问题,ntpd与ntpdate在更新时间时有什么区别。ntpd不仅仅是时间同步服务器,他还可以做客户端与标准时间服务器进行同步时间,而且是平滑同步,并非ntpdate立即同步,在生产环境中慎用ntpdate,也正如此两者不可同时运行。

时钟的跃变,对于某些程序会导致很严重的问题。许多应用程序依赖连续的时钟——毕竟,这是一项常见的假定,即,取得的时间是线性的,一些操作,例如数据库事务,通常会地依赖这样的事实:时间不会往回跳跃。不幸的是,ntpdate调整时间的方式就是我们所说的”跃变“:在获得一个时间之后,ntpdate使用settimeofday(2)设置系统时间,这有几个非常明显的问题:

第一,这样做不安全。ntpdate的设置依赖于ntp服务器的安全性,攻击者可以利用一些软件设计上的缺陷,拿下ntp服务器并令与其同步的服务器执行某些消耗性的任务。由于ntpdate采用的方式是跳变,跟随它的服务器无法知道是否发生了异常(时间不一样的时候,唯一的办法是以服务器为准)。

第二,这样做不精确。一旦ntp服务器宕机,跟随它的服务器也就会无法同步时间。与此不同,ntpd不仅能够校准计算机的时间,而且能够校准计算机的时钟。

第三,这样做不够优雅。由于是跳变,而不是使时间变快或变慢,依赖时序的程序会出错(例如,如果ntpdate发现你的时间快了,则可能会经历两个相同的时刻,对某些应用而言,这是致命的)。

因而,唯一一个可以令时间发生跳变的点,是计算机刚刚启动,但还没有启动很多服务的那个时候。其余的时候,理想的做法是使用ntpd来校准时钟,而不是调整计算机时钟上的时间。

NTPD 在和时间服务器的同步过程中,会把 BIOS 计时器的振荡频率偏差——或者说 Local Clock 的自然漂移(drift)——记录下来。这样即使网络有问题,本机仍然能维持一个相当精确的走时。

参考文章
https://www.cnblogs.com/kerrycode/p/4744804.html
http://support.ntp.org/bin/view/Support/AccessRestrictions#Section_6.5.1.
https://wiki.ubuntu.com.cn/NTP

  • 1
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值