Linux 时间同步

Linux 时间同步,第1张

在Linux系统中存在两个时钟时间,分别是

硬件时钟是指的在主板上的时钟设备,也就是通常可以在BIOS画面设置的时钟,即使关机状态也可以计算时间。

而系统时钟则是指Kernel中的时钟,其值是由1970年1月1日00:00:00 UTC时间至当前时间所经历的秒数总和。当Linux启动的时候,系统时钟会读取硬件时钟的设定,之后系统时钟独立运作。长时间运行两者可能将会产生误差。另外所有的Linux相关指令都是读取系统时钟指定的,如date。

我们这里讨论的是系统时间。

NTP,网络时间协议,使用 123/udp 端口进行网络时钟同步;NTP 是仍在使用中的最古老的网络传输协议之一(1985 年前开始)。

以前Linux时间同步基本是使用 ntpdate 和 ntpd 这两个工具实现的,但是这两个工具已经很古老了。

【注】ntpdate和ntpd是互斥的,两者不能同时使用。ntpd是步进式平滑的逐渐调整时间,而ntpdate是断点式更新时间。

RHEL/CentOS 7.x 已经将 chrony 作为默认时间同步工具了。

其他Linux (如 ubuntu) 使用 systemd-timesyncd 服务。

chrony 是 RedHat 开发的,它是网络时间协议(NTP)的另一种实现;

RHEL/CentOS 7.x 的默认时间同步工具;

chrony 可以同时做为 ntp 服务的客户端和服务端;安装完后有两个程序 chronyd、chronyc:

chronyd 是一个 daemon 守护进程,chronyc 是用来监控 chronyd 性能和配置参数的命令行工具。

系统版本:CentOS 7.5

chrony_server(relay):10.0.0.4

chrony_client:10.0.0.5

Edit file /etc/chrony.conf

默认已经启动,不需要调整

example:

配置 chrony

edit file: /etc/chrony.conf

再次用chronyc 命令检查,比较它与chronyd server的差异

systemd-timesyncd 是一个用于跨网络同步系统时钟的守护服务。它实现了一个 SNTP 客户端,但更轻量级,更集成systemd。

systemd-timesyncd 启动时会读取 /etc/systemd/timesyncd.conf 配置文件,内容如下:

你可以输入你希望使用的其它时间服务器,比如你自己的本地 NTP 服务器,在 NTP= 行上输入一个以空格分隔的服务器列表。

如果服务器可以直接连接internet,不用修改默认配置;如果在内网,需要单独指定。

在最新的 Ubuntu 版本中,timedatectl 替代了老旧的 ntpdate。默认情况下,timedatectl 在系统启动的时候会立刻同步时间,并在稍后网络连接激活后通过 socket 再次检查一次。

timesyncd 替代了 ntpd 的客户端的部分。默认情况下 timesyncd 会定期检测并同步时间。它还会在本地存储更新的时间,以便在系统重启时做时间单步调整。

通过 timedatectl 和 timesyncd 设置的当前时间状态和时间配置,可以使用 timedatectl status 命令来进行确认。

由于 timedatectl 的存在,各发行版已经弃用了 ntpdate,默认不再进行安装。

timedatectl

timedatectl status ,查看时间同步状态;

timedatectl set-ntp true ,开启网络时间同步;

timedatectl set-timezone ZONE ,设置时区。

NTP synchronized: yes 表示时间是同步状态。

查看服务状态以及从哪个ntp server同步时间。

NTP:软件层面实现,成本低。同步精度10ms左右。

PTP:需要网络接口具备在物理层提供时间戳的功能,同步精度优于100ns,局域网的节点需要使用支持PTP功能的交换机。局域网网络接点不支持PTP的话,只能同不到us,而且受网络背景流量影响。

1、首先按win+r打开运行窗口。

2、接着输入cmd打开命令窗口。

3、接着在命令窗口输入w32tm /register

4、然后敲击回车回应W32Time 成功注册。

5、接着在搜索框输入服务并进入服务界面。

6、然后找到Windows Time。

7、最后点击启动就完成了,

至少需要两台linux服务器,其中一台是NTP Server, 另一台是NTP client.

Linux NTP配置详解 (Network Time Protocol)

LINUX绝大多数的发行版本都已经自带了NTP程序,只须按以下配置即可。

相关配置文件

/etc/ntp.conf

NTP服务的主要配置文件,所有的更改全部在这里。

/usr/share/zoneinfo

由 tzdata 所提供,规定了各主要时区的时间设定文件,例如中国的时区设置文件是/usr/share/zoneinfo/Asia/Chongqing。

/etc/sysconfig/clock

Linux的主要时区设定文件。每次启动后Linux *** 作系统会自动读取这个文件来设定系统预设要显示的时间。如这个文件内容为”ZONE=Asia/Chongqing”,则表示Linux *** 作系统的时间设定使用/usr/share/zoneinfo/Asia/Chongqing这个文件。

/etc/localtime

本地系统的时间设定文件,如果clock文件中规定了使用的时间设定文件为/usr/share/zoneinfo/Asia/Chongqing,Linux *** 作系统就会将Chongqing那个文件复制一份为/etc/localtime,所以系统的时间显示就会以Chongqing那个时间设定文件为准。

相关的命令

/bin/date

这个我们最经常使用了,更改及输出日期与时间命令。

/sbin/hwclock

使用hwclock才能将修改过后的时间写入BIOS 。

/usr/sbin/ntpd

NTP服务的守护进程,配置文件为/etc/ntp.conf 。

/usr/sbin/ntpdate

用来连接NTP服务器命令,比如ntpdate 192.168.6.51 。

/usr/sbin/ntpq

NTP查询命令。

设置NTP服务器

就如前边说的NTP配置文档只有一个 /etc/ntp.conf,看看我的ntp.conf

#红字的是我添加的,其它为默认!

grep -Ev '^$|^#' /etc/ntp.conf

restrict default kod nomodify notrap nopeer noquery

restrict -6 default kod nomodify notrap nopeer noquery

restrict 131.107.13.100 //允许该NTP服务器进入

restrict 114.80.81.1//没有任何何参数的话,这表示『该 IP或网段不受任何限制』

restrict 202.118.1.199

restrict 127.0.0.1

restrict -6 ::1

restrict 192.168.0.0 mask 255.255.0.0 nomodify //该网段可以进行校时

restrict 0.0.0.0 mask 0.0.0.0 notrust //拒绝没有认证的用户端

server time-nw.nist.gov prefer //prefer 该服务器优先

server 0.rhel.pool.ntp.org

server 1.rhel.pool.ntp.org

server 2.rhel.pool.ntp.org

fudge 127.127.1.0 stratum 10

driftfile /var/lib/ntp/drift

keys /etc/ntp/keys

别忘了启动NTP服务器

/etc/init.d/ntp start

客户端测试

对了客户端只需要是用ntpdate命令即可,192.168.6.51 为ntp 服务器ip 地址,就这么就简单!

相关命令

ntpstat //列出我们的NTP 服务器是否与上层连接。

synchronised to NTP server (131.107.13.100) at stratum 2

time correct to within 461 ms

polling server every 64 s

ntpq -p //列出目前我们的NTP服务器 与上层NTP服务器 的状态,* 代表目前正在使用的上层 NTP服务器

remote refid st t when poll reach delay offset jitter

==============================================================================

*131.107.13.100 .ACTS. 1 u 30 64 67 237.1651.539 20.382

202.118.1.199 202.112.31.197 2 u 33 64 63 163.526 91.844 10.208

上边只是简单设置,没有考虑安全方面如认证等等,如需更详细请参考这里。

权限管理使用 restrict 公式如下:

restrict IP mask [参数] / restrict 192.168.0.0 mask 255.255.0.0 nomodify

其中参数主要有底下这些:

* ignore:拒绝所有类型的NTP的连线

* nomodfiy:用户端不能使用NTPC与ntpq这两支程式来修改伺服器的时间参数,但使用者端仍可透过这部主机来进行网路校时的

* noquery:用户端不能够使用ntpq,NTPC等指令来查询发表伺服器,等于不提供的NTP的网路校时幂

* notrap:不提供陷阱这个远端事件邮箱(远程事件日志)的功能。

* notrust:拒绝没有认证的用户端。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/8896540.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-22
下一篇 2023-04-22

发表评论

登录后才能评论

评论列表(0条)

保存