硬件时钟是指的在主板上的时钟设备,也就是通常可以在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:拒绝没有认证的用户端。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)