参考: http://cn.linux.vbird.org/linux_server/0440ntp/0440ntp-centos4.php#client_systime
在NTP客户端机器
上执行以下命令:
# 查看ntp服务器地址
cat /etc/ntp.conf
# 测试ntp服务器是否可用
ntpdate -d ntp1.aliyun.com
# 检查系统时间同步状态
timedatectl timesync-status
在时间客户端机器
上执行
tcpdump -nni eth0 udp port 123 and host NTP服务器ip
在NTP服务器
上执行
tcpdump -nni eth0 udp port 123 and host 时间客户端IP
# 查看NTP同步情况
## -p:表示显示当前系统与NTP服务器之间的连接状态和同步情况。
### 列出所连服务器IP地址、参考时钟、当前时间、延迟、偏差等信息。
ntpq -p
## -n:表示不进行DNS解析,直接显示IP地址。
ntpq –np
*
:表示当前正在使用的。
+
:表示候选的,备用的。
ntpq -p
参数说明:
remote
:NTP服务器的地址。
refid
:给该NTP服务器提供时间的上层NTP服务器地址。
st
:当前NTP服务器的Stratum。如果显示的值是16,则表示当前NTP服务器不可用。
t
:表示ntp server的类型。有4种:b(broadcast),u(unicast),l(local)、m(multicast)
when
:最近一次与NTP服务器进行时间同步已经过去了多长时间。
poll:多长时间进行一次同步。可以通过minpoll和maxpoll进行修改。minpoll和maxpoll后面的数值为2的多少次方,minpoll默认为6,
maxpoll默认为10.
reach
:一个8进制,已经成功同步的次数。
offset
:时间补偿值。越小越好。此处显示值单位是毫秒。
# cat /etc/ntp.conf
# restrict参数
# ignore:拒绝所有类型的NTP的连线
# nomodfiy:用户端不能使用NTPC与ntpq这两支程式来修改伺服器的时间参数,但使用者端仍可透过这部主机来进行网路校时的
# noquery:用户端不能够使用ntpq,NTPC等指令来查询发表伺服器,等于不提供的NTP的网路校时幂
# notrap:不提供陷阱这个远端事件邮箱(远程事件日志)的功能
# notrust:拒绝没有认证的用户端。
# 限制默认的访问权限,禁止修改、禁止trap、禁止peer、禁止查询
restrict default kod nomodify notrap nopeer noquery
# 同上,限制IPv6的默认访问权限。
restrict -6 default kod nomodify notrap nopeer noquery
# 允许IP地址为11.107.13.100的NTP服务器进入。
restrict 11.107.13.100
# 允许IP地址为11.80.81.1的NTP客户端访问,没有任何限制
# 没有任何何參數的話,這表示『该IP或网段不受任何限制』
restrict 11.80.81.1
# 允许IP地址为202.112.1.199的NTP客户端访问,没有任何限制。
restrict 202.112.1.199
# 允许本地主机访问NTP服务。
restrict 127.0.0.1
# 同上,允许IPv6的本地主机访问NTP服务。
restrict -6 ::1
# 允许IP地址为192.168.0.0/16的NTP客户端访问,但不能修改配置
## 该网段可以进行校时
restrict 192.168.0.0 mask 255.255.0.0 nomodify
# 拒绝没有认证的NTP用户端
restrict 0.0.0.0 mask 0.0.0.0 notrust
# 使用time-nw.nist.gov作为首选的NTP服务器。
## prefer 该服务器优先
server time-nw.nist.gov prefer
## iburst 进行快速同步
server 0.rhel.pool.ntp.org iburst
server 1.rhel.pool.ntp.org iburst
server 2.rhel.pool.ntp.org iburst
# 指定本地时钟的stratum为6
fudge 127.127.1.0 stratum 6
# 指定时钟漂移文件的路径
driftfile /var/lib/ntp/drift
# 指定认证密钥文件的路径
keys /etc/ntp/keys
# 指定广播延迟时间
broadcastdelay 0.008
红帽
官方方案: https://access.redhat.com/documentation/zh-cn/red_hat_enterprise_linux/8/html/configuring_basic_system_settings/proc_migrating-to-chrony_using-chrony-to-configure-ntp
timedatectl
是一个系统工具,用于管理系统时钟和时区设置。它提供了设置时区、启用/禁用夏令时、手动设置系统时间等功能。它还可以显示系统时间和时区设置,以及NTP服务器的同步状态。timedatectl是一个简单的工具
,适用于快速检查和更改系统的基本时间设置。
相比之下,chronyc
是一个更强大和复杂的工具
,用于管理和监视NTP服务器和客户端之间的时间同步。它提供了更详细的时间同步状态信息,例如时钟偏移量、延迟、精度等指标。它还提供了更高级的功能,例如在多个NTP服务器之间进行切换、设置NTP服务器的优先级等。chronyc主要用于管理NTP时间同步,在需要更详细的时间同步状态信息和更高级的NTP管理功能时非常有用。
综上所述,timedatectl适用于快速检查和更改系统的基本时间设置,而chronyc适用于更高级的NTP管理和监视。两者都是Linux系统中非常有用的时间管理工具,可以根据需要选择使用。
# 将硬件时钟调整为与本地时钟一致
## 0 为设置为 UTC(协调世界时) 时间
## 1 为设置为 RTC(时钟芯片) 时间
timedatectl set-local-rtc 1
# 将时间写入到硬件
hwclock -w
查看所有的时区
# 查看所有可用时区
timedatectl list-timezones
# 过滤时区
timedatectl list-timezones | egrep -o "Asia/H.*"
# 查看系统的当前时区
timedatectl
# 查看时区
date -R
# 设置系统时区为 Asia/Shanghai
timedatectl set-timezone Asia/Hong_Kong
# 再次查看当前时区
timedatectl
# 将系统时区设置为美国东部时间
timedatectl set-timezone America/New_York
# 启用夏令时
timedatectl set-ntp true
# 启用/仅用时间同步
## 启动ntp时间同步
timedatectl set-ntp yes
## 禁用ntp时间同步
timedatectl set-ntp no
# 修改当前日期时间
timedatectl set-time "2019-10-31 15:50:00"
# 不考虑各个发行版的差异化, 从更底层出发的话, 修改时间时区比想象中要简单:
cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
# 使用伪图形化设置时区
tzselect