NTP Configuration

NETWORK TIME PROTOCOL

在Windwos中,系统时间的设置很简单,界面操作,通俗易懂,而且设置后,重启,关机都没关系。系统时间会自动保存在BIOS时钟里面,启动计算机的时候,系统会自动在BIOS里面取硬件时间,以保证时间的不间断。但在Linux里面,默认情况下,系统时间和硬件时间并不会自动同步。在Linux运行过程中,系统时间和硬件时间以异步的方式运行,互不干扰。硬件时间的运行,是靠BIOS电池来维持,而系统时间,是用CPU Tick来维持的。在系统开机的时候,会自动从BIOS中取得硬件时间,设置为系统时间。

时间相关命令
#查看系统时间
date [+'%Y-%m-%d %H:%M:%S']

#查看硬件时间
hwclock/clock [--show]

#设置系统时间,FORMAT:yyyymmdd hh:mm:ss
date -s "20200409 10:32:00"

#设置硬件时间,FORMAT:yyyymmdd hh:mm:ss
hwclock --set --date "20200409 10:32:00" 
系统时间与硬件时间同步
  • 系统 >> 硬件:hwclock --systohc <== sys 或者 hwclock -w

  • 硬件 >> 系统:hwclock -s 或者 --systohc

NTP服务
  • NTPD配置:
cat > /etc/ntp.conf <<EOF
#-----1,权限设置
#restrict IP MASK PARAMETER
#IP可以是IPv4地址,也可以是default,default就类似于0.0.0.0
#PARAMETER的值有以下情况
#ignore: 关闭所有的 NTP 联机服务
#nomodify: 表示 Client 端不能更改 Server 端的时间参数,不过Client 端仍然可以透过 Server 端来进行网络校时。
#notrust: 该 Client 除非通过认证,否则该 Client 来源将被视为不信任网域
#noquery: 不提供 Client 端的时间查询
#notrap: 不提供trap这个远程事件登入
#NONE: 那就表示该 IP (或网域)"没有任何限制"
#-----Configuration
#关闭所有的NTP要求封包
restrict default nomodify notrap noquery
#允许本机查询 
restrict 127.0.0.1
#哪个网段内的机器可以同步本机时间 				  
restrict 192.168.0.1 mask 255.255.255.0 nomodify

#-----2,时间服务器设置
#server [IP|HOST Name] [prefer]
#perfer表示主要以当前主机的时间来作时间校正

#-----3,其它设置
#server 127.127.1.0     # local clock
#fudge  127.127.1.0 stratum 10
#driftfile 系统时间与BIOS事件的偏差记录

driftfile /var/lib/ntp/drift
broadcastdelay 0.008
keys /etc/ntp/keys
logfile /var/log/ntp.log
includefile /etc/ntp/crypto/pw
EOF
  • 注意事项:

ntpd 有一个自我保护的机制:如果本机与上源时间相差太大,ntpd 不会运行时间同步操作,所以第一次配置时一定要先用ntpdate从上源取得时间初值, 然后再启动 ntpd服务。

  • 附1:NTPD常用命令

    #查看ntpd同步状态
    ntpstat
    #列出当前NTP主机与相关的上层NTP的状态
    ntpq -p
    #将本机时间与目标时间同步
    ntpdate 192.168.0.1
    
  • 附2:配置文件说明

文件用途
/etc/ntp.conf NTPD配置文件
/usr/share/zoneinfo/ 各时区设定文件目录
/etc/sysconfig/clock 系统时区配置文件(指定某一时区设定文件)
/etc/localtime 系统时区设定文件的软连接
/etc/ntp/step-tickers 用于初始同步的服务器列表
   

参考:https://www.cnblogs.com/williamjie/p/10768657.html

Write by harry in 20200410.

原文地址:https://www.cnblogs.com/xqisui/p/12675549.html