时间同步服务

加密和安全当前都离不开时间的同步,否则各种网络服务可能不能正常运行

一次性时间同步服务

ntpdate
`ntpdate ntp.aliyun.com`

ubuntu
    systemctl status time-set.target
    systemctl status time-sync.target

时间同步服务chrony

配置文件chrony.conf

server  #可用于时钟服务器,iburst 选项当服务器可达时,发送一个八个数据包而不是通常的一个数据包。 包间隔通常为2秒,可加快初始同步速度
pool     #该指令的语法与server 指令的语法相似,不同之处在于它用于指定NTP服务器池而不是单个NTP服务器。池名称应解析为随时间可能会变化的多个地址
driftfile #根据实际时间计算出计算机增减时间的比率,将它记录到一个文件中,会在重启后为系统时钟作出补偿
rtcsync  #启用内核模式,系统时间每11分钟会拷贝到实时时钟(RTC)
allow / deny #指定一台主机、子网,或者网络以允许或拒绝访问本服务器

例如
allow 192.168.0.0/16
allow 0.0.0.0/0  

cmdallow / cmddeny #可以指定哪台主机可以通过chronyd使用控制命令
bindcmdaddress #允许chronyd监听哪个接口来接收由chronyc执行的命令
makestep # 通常chronyd将根据需求通过减慢或加速时钟,使得系统逐步纠正所有时间偏差。在某些特定情况下,系统时钟可能会漂移过快,导致该调整过程消耗很长的时间来纠正系统时钟。该指令强制chronyd在调整期大于某个阀值时调整系统时钟
local stratum 10  #即使server指令中时间服务器不可用,也允许将本地时间作为标准时间授时给其它客户端

客服端命令 chronyc 可以运行在交互式和非交互式两种方式,支持以下子命令

help 命令可以查看更多chronyc的交互命令
accheck 检查是否对特定主机可访问当前服务器
activity 显示有多少NTP源在线/离线
sources [-v]   显示当前时间源的同步信息
sourcestats [-v]显示当前时间源的同步统计信息
add server 手动添加一台新的NTP服务器
clients 报告已访问本服务器的客户端列表
delete 手动移除NTP服务器或对等服务器
settime 手动设置守护进程时间
tracking 显示系统时间信息

公共NTP服务

pool.ntp.org:项目是一个提供可靠易用的NTP服务的虚拟集群cn.pool.ntp.org,0-3.cn.pool.ntp.org

阿里云公共NTP服务器
    Unix/linux类:ntp.aliyun.com,ntp1-7.aliyun.com
    windows类: time.pool.aliyun.com

腾讯公共NTP
    time1-5.cloud.tencent.com

大学ntp服务

    s1a.time.edu.cn 北京邮电大学
    s1b.time.edu.cn 清华大学
    s1c.time.edu.cn 北京大学

国家授时中心服务器:210.72.145.44 

美国标准技术院: time.nist.gov

时间工具

#查看日期时间、时区及NTP状态:
timedatectl
#查看时区列表:
timedatectl list-timezones
#修改时区:
timedatectl set-timezone Asia/Shanghai
#修改时区
root@ubuntu2004:~# rm -f /etc/localtime
root@ubuntu2004:~# ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
#修改日期时间:
timedatectl set-time "2017-01-23 10:30:00"
#开启NTP:
timedatectl set-ntp true/false

搭建私有时间同步服务器

yum -y install chrony
apt install chrony -y


vim /etc/chrony.conf
server ntp.aliyun.com iburst
server ntp1.aliyun.com iburst
server ntp2.aliyun.com iburst

#allow 192.168.0.0/16
allow 0.0.0.0/0  #加此行,指定允许同步的网段


# Serve time even if not synchronized to a time source.
local stratum 10 #删除此行注释,当互联网无法连接,仍然可以为客户端提供时间同步服务

systemctl restart chronyd


#客户端配置
vim /etc/chrony.conf
server 10.0.0.8 iburst
systemctl restart chronyd.service 


#确认同步成功与否
chronyc sources -v

注意:

chrony的时间同步策列:
    默认的行为是在系统启动后的第一个时间段内,如果系统时间偏差超过1秒,它会立即调整(跳步)时间。一旦超过这个时间窗口,chronyd 将改为逐渐调整时间(拖曳),以避免影响正在运行的服务和进程。如果偏差非常大,如10分钟,这种逐渐的调整可能会非常慢

    这个行为由配置文件中 makestep 控制
    makestep 1 3   #1表示,超过1s  3表示服务启动后3秒内,也就说3秒后大的时间偏差就不会跳步而是拖曳