《鸟哥的Linux私房菜 服务器架设篇(第三版)》 第15章 时间服务器:NTP服务器 笔记...

目录

时间介绍

NTP

NTP需要的软件

端口为123

时间误差不可超过 1000 

配置文件 /etc/ntp.conf

restrict 管理权限控制

server 设定上层 NTP 服务器

driftfile 记录时间差异

keys 客户端认证

实例

其他相关文件

/usr/share/zoneinfo/

/etc/sysconfig/clock

/etc/localtime

命令

ntpd

ntpstat

ntpq

date

hwclock

ntpdate

另一个时间服务器chronyd

/etc/chrony.conf

chronyc

时间介绍

格林威治时间为标准时间 (Greenwich Mean Time, GMT 时间)

 

在计算时间的时候,最准确的计算应该是使用『原子震荡周期』所计算的物理时钟了 (Atomic Clock, 也被称为原子钟),这也被定义为标准时间 (International AtomicTime)。而我们常常看见的UTC 也就是 Coordinated Universal Time (协和标准时间)就是利用这种 Atomic Clock 为基准所定义出来的正确时间。例如 1999 年在美国启用的原子钟 NIST F-1, 他所产生的时间误差每两千年才差一秒钟! 

原子钟主要是利用计算芯片 (crystal) 的原子震荡周期去计时的,这是因为每种芯片都有自己的独特的震荡周期之故。

 

计算机内部所记录的时钟是记载于 BIOS (CMOS) 内的,但如果你的计算机上面的电池没电了,或者是某些特殊因素导致 BIOS 数据被清除此时计算机的时间就会不准。

 

『网络校时』(Network Time Protocol, NTP)

 

时间同步 (synchronize)

 

Digital Time Synchronization Protocol (DTSS)

 

Linux 操作系统当中其实有两个时间,分别是:

软件时钟: Linux 自己的系统时间,由 1970/01/01 开始记录的时间参数

硬件时钟计算机系统在 BIOS 记录的实际时间,这也是硬件所记录的

 

如果 Client 到 Server 的讯息传送时间过长怎么办?

为了这些延迟的问题,有一些 program 已经开发了自动计算时间传送过程的误差,以更准确的校准自己的时间!

 

NTP 

NTP需要的软件

ntp:就是 NTP 服务器的主要软件啦,包括配置文件以及执行档等等。

tzdata:软件名称为『 Time Zone data 』的缩写,提供各时区对应的显示格式。

端口为123

时间误差不可超过 1000 

NTP 服务器之间的时间误差不可超过 1000 ,否则 NTP 服务会自动关闭。启动ntp前先手动进行时间同步,然后再设定与启动时间服务器!

 

配置文件/etc/ntp.conf

/etc/ntp.conf,NTP 服务器的主要配置文件,也是唯一的一个;

 

restrict 管理权限控制

restrict [你的 IP] mask [netmask_IP] [parameter]

 

parameter 的参数主要有底下这些:

ignore: 拒绝所有类型的 NTP 联机;

nomodify: 客户端不能使用 ntpc 与 ntpq 这两支程序来修改服务器的时间参数但客户端仍可透过这部主机来进行网络校时的;

noquery: 客户端不能够使用 ntpq, ntpc 等指令来查询时间服务器,等于不提供 NTP 的网络校时啰;

notrap: 不提供 trap 这个远程事件登录 (remote event logging) 的功能。

notrust: 拒绝没有认证的客户端。那如果你没有在 parameter 的地方加上任何参数的话,这表示『该 IP 或网段不受任何限制』的意思喔!一般来说,我们可以先关闭 NTP 的权限,然后再一个一个的启用允许登入的网段。

 

server 设定上层 NTP 服务器

server [IP or hostname] [prefer]

在 server 后端可以接 IP 或主机名,鸟哥个人比较喜欢使用 IP 来设定说!至于那个perfer 表示『优先使用』的服务器

 

driftfile 记录时间差异

driftfile [可以被 ntpd 写入的目录与文件]

因为预设的 NTP Server 本身的时间计算是依据 BIOS 的芯片震荡周期频率来计算的,但是这个数值与上层 Time Server 不见得会一致啊!所以 NTP 这个 daemon (ntpd) 会自动的去计算我们自己主机的频率与上层 Time server 的频率,并且将两个频率的误差记录下来,记录下来的文件就是在 driftfile 后面接的完整档名当中了!关于档名你必须要知道:

driftfile 后面接的文件需要使用完整路径文件名;

该文件不能是连结档;

该文件需要设定成 ntpd 这个 daemon 可以写入的权限。

该文件所记录的数值单位为:百万分之一秒 (ppm)

driftfile 后面接的文件会被 ntpd 自动更新,所以他的权限一定要能够让 ntpd写入才行。在 CentOS 6.x 预设的 NTP 服务器中,使用的 ntpd 的 owner 是 ntp ,这部份可以查阅 /etc/sysconfig/ntpd 就可以知道啦!

 

keys客户端认证

keys [key_file] 

 

 

实例

[root@www ~]# vim /etc/ntp.conf

# 1. 先处理权限方面的问题,包括放行上层服务器以及开放区网用户来源:

restrict default kod nomodify notrap nopeer noquery <==拒绝 IPv4的用户

restrict -6 default kod nomodify notrap nopeer noquery <==拒绝 IPv6的用户

restrict 220.130.158.71 <==放行 tock.stdtime.gov.tw 进入本 NTP 服务器

restrict 59.124.196.83 <==放行 tick.stdtime.gov.tw 进入本 NTP 服务器

restrict 59.124.196.84 <==放行 time.stdtime.gov.tw 进入本 NTP 服务器

restrict 127.0.0.1 <==底下两个是默认值,放行本机来源

restrict -6 ::1

restrict 192.168.100.0 mask 255.255.255.0 nomodify <==放行区网来源

# 2. 设定主机来源,请先将原本的 [0|1|2].centos.pool.ntp.org 的设定批

注掉:

server 220.130.158.71 prefer <==以这部主机为最优先

server 59.124.196.83

server 59.124.196.84

# 3.预设时间差异分析文件与暂不用到的 keys ,不需要更动它:

driftfile /var/lib/ntp/dr

其他相关文件

/usr/share/zoneinfo/

 由 tzdata 所提供,为各时区的时间格式对应档。例如台湾地区的时区格式对应文件在 /usr/share/zoneinfo/Asia/Taipei 就是了!这个目录里面的文件与底下要谈的两个文件 (clock 与 localtime) 是有关系的喔!

/etc/sysconfig/clock

设定时区与是否使用 UTC 时间钟的配置文件。 每次开机后 Linux 会自动的读取这个文件来设定自己系统所默认要显示的时间说!举个例子来说在我们台湾地区的本地时间设定中,这个文件内应该会出现一行『ZONE="Asia/Taipei"』的字样这表示我们的时间配置文件案『要取用/usr/share/zoneinfo/Asia/Taipei 那个文件』的意思!

/etc/localtime

这个文件就是『本地端的时间配置文件』啦!刚刚那个clock 文件里面规定了使用的时间配置文件 (ZONE) /usr/share/zoneinfo/Asia/Taipei ,所以说这就是本地端的时间了,此时Linux 系统就会将 Taipei 那个文件复制一份成为 /etc/localtime ,所以未来我们的时间显示就会以 Taipei 那个时间配置文件案为准。

命令

ntpd

主要提供 NTP 服务的程序。

 

ntpd  启动:

[root@www ~]# /etc/init.d/ntpd start

 

 

ntpstat

show network time synchronisation status

 

[root@www ~]# ntpstat

synchronised to NTP server (220.130.158.71) at stratum 3

time correct to within 538 ms

polling server every 128 s

 

ntpq

standard NTP query program

[root@www ~]# ntpq -p

这个 ntpq -p 可以列出目前我们的 NTP 与相关的上层 NTP 的状态,上头的几个字段的意义为:

remote:亦即是 NTP 主机的 IP 或主机名啰~注意最左边的符号

如果有『 』代表目前正在作用当中的上层 NTP

如果是『 』代表也有连上线,而且可作为下一个提供时间更新的候选者。

refid:参考的上一层 NTP 主机的地址

st:就是 stratum 阶层啰!

when:几秒钟前曾经做过时间同步化更新的动作;

poll:下一次更新在几秒钟之后;

reach:已经向上层 NTP 服务器要求更新的次数

delay:网络传输过程当中延迟的时间,单位为 10^(-6) 

offset:时间补偿的结果,单位与 10^(-3) 

jitter:Linux 系统时间与 BIOS 硬件时间的差异时间单位为 10^(-6)秒。

 

date

用于 Linux 时间 (软件时钟的修改与显示的指令。

 

查看当前时间

date

 

修改日期 时间

date -s "2019-05-5 15:00:00"

 

取得总秒数

date +%s

 

hwclock

用于 BIOS 时钟 (硬件时钟的修改与显示的指令。 这是一个 root 才能执行的指令,因为 Linux 系统上面 BIOS 时间与 Linux 系统时间是分开的,所以使用 date 这个指令调整了时间之后,还需要使用 hwclock才能将修改过后的时间写入 BIOS 当中!

 

hwclock [-rw]

选项与参数:

-r :亦即 read ,读出目前 BIOS 内的时间参数;

-w :亦即 write ,将目前的 Linux 系统时间写入 BIOS 当中啊!

 

ntpdate

用于客户端的时间校正,如果你没有要启用 NTP 而仅想要使用 NTP Client 功能的话,那么只会用到这个指令而已啦! 

 

 NTP 服务器本来就会与上层时间服务器进行时间的同步化所以在预设的情况下,NTP 服务器不可以使用 ntpdate !也就是说 ntpdate 与 ntpd 不能同时启用的,使用ntpdate前需要停止ntpd

 

ntpdate [-dv] [NTP IP/hostname]

选项与参数:

-d :进入除错模式 (debug) ,可以显示出更多的有效信息。

-v :有较多讯息的显示。

 

[root@clientlinux ~]# ntpdate 192.168.100.254

28 Jul 17:19:33 ntpdate[3432]: step time server 192.168.100.254 offset -2428.396146 sec

 

另一个时间服务器chronyd

/etc/chrony.conf

[root@desktop ~]#vim /etc/chrony.conf

server server.group8.example.com iburst

 

chronyc

[root@desktop ~]# chronyc <‐‐‐‐ 手工让其马上同步时间

chrony version 2.1.1

Copyright (C) 19972003, 2007, 20092015 Richard P. Curnow and others chrony comes with ABSOLUTELY NO WARRANTY. This is free software, and you are welcome to redistribute it under certain conditions. See the GNU General Public License version 2 for details.

chronyc> waitsync <‐‐‐‐ 手工让其马上同步时间

try: 1, refid: 172.24.8.254, correction: 0.000001454, skew: 1000000.000 <‐‐‐‐ 看到类似的返回,说明已经成功同步了 

转载于:https://www.cnblogs.com/shoubituling/p/11210425.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值