linux · 2021年7月21日 0

Centos7搭建时间服务器 chronyd


一,chrony和ntp

ntp:

将系统时钟和世界协调时UTC同步,精度在局域网内可达0.1ms,在互联网上绝大多数的地方精度可以达到1-50ms,项目官网:http://www.ntp.org

chrony:

实现NTP协议的的自由软件。可使系统时钟与NTP服务器,参考时钟(例如GPS接收器)以及使用手表和键盘的手动输入进行同步。还可以作为NTPv4(RFC 5905)服务器和对等体运行,为网络中的计算机提供时间服务。设计用于在各种条件下良好运行,包括间歇性和高度拥挤的网络连接,温度变化(计算机时钟对温度敏感),以及不能连续运行或在虚拟机上运行的系统。通过Internet同步的两台机器之间的典型精度在几毫秒之内,在LAN上,精度通常为几十微秒。利用硬件时间戳或硬件参考时钟,可实现亚微秒的精度.

chrony 的优势:

  1. 更快的同步,从而最大程度减少了时间和频率误差,对于并非全天 24 小时运行的虚拟计算机而言非常有用
  2. 能够更好地响应时钟频率的快速变化,对于具备不稳定时钟的虚拟机或导致时钟频率发生变化的节能技术而言非常有用
  3. 在初始同步后,它不会停止时钟,以防对需要系统时间保持单调的应用程序造成影响
  4. 在应对临时非对称延迟时(例如,在大规模下载造成链接饱和时)提供了更好的稳定性
  5. 无需对服务器进行定期轮询,因此具备间歇性网络连接的系统仍然可以快速同步时钟

二,在阿里云使用Centos搭建chrony时间服务器

RHEL从7.0开始改用chrony同步时间,原ntp同步方式也可以使用,但要开启ntp服务并关闭chrony。chronyd服务默认开启。

[root@doragon ~]# systemctl status chronyd.service 
● chronyd.service - NTP client/server
   Loaded: loaded (/usr/lib/systemd/system/chronyd.service; enabled; vendor preset: enabled)
   Active: active (running) since Mon 2020-06-29 19:59:15 CST; 19min ago
     Docs: man:chronyd(8)
           man:chrony.conf(5)
  Process: 22539 ExecStartPost=/usr/libexec/chrony-helper update-daemon (code=exited, status=0/SUCCESS)
  Process: 22535 ExecStart=/usr/sbin/chronyd $OPTIONS (code=exited, status=0/SUCCESS)
 Main PID: 22537 (chronyd)
   CGroup: /system.slice/chronyd.service
           └─22537 /usr/sbin/chronyd

在阿里云的Centos已经修改好配置文件指向阿里云的ntp服务器
查看配置文件

格式:server + 服务器地址

[root@doragon ~]# head /etc/chrony.conf 

# Use Alibaba NTP server
# Public NTP
# Alicloud NTP

server ntp1.aliyun.com minpoll 4 maxpoll 10 iburst
server ntp1.cloud.aliyuncs.com minpoll 4 maxpoll 10 iburst
server ntp10.cloud.aliyuncs.com minpoll 4 maxpoll 10 iburst
server ntp11.cloud.aliyuncs.com minpoll 4 maxpoll 10 iburst
server ntp12.cloud.aliyuncs.com minpoll 4 maxpoll 10 iburst

修改配置文件使该服务器提供时间同步服务

新增以下内容,内网生产环境可以限制网段,例如192.168.0.0/16

# Allow NTP client access from local network.
# 设置allow 0.0.0.0/0 供全网访问
allow 0.0.0.0/0

查看监听端口

[root@doragon ~]# netstat -ulnp | grep chronyd
udp        0      0 0.0.0.0:123             0.0.0.0:*                           22812/chronyd       
udp        0      0 127.0.0.1:323           0.0.0.0:*                           22812/chronyd       
udp6       0      0 ::1:323                 :::*                                22812/chronyd

阿里云安全组放行123/udp 323/udp

三,客户端与时间服务器同步

移动宽带基本无法域名解析地球上公有的ntp服务器,是个下等人宽带。
所以这里把两台设备修改为我的阿里云

windows:

如图所示

windows time setup

ubuntu server:

修改配置文件

long@long-server:~$ sudo vim /etc/chrony/chrony.conf
server doragon.xyz iburst
server ntp.aliyun.com iburst
...

同步时间

long@long-server:~$ chronyc sources -v
210 Number of sources = 2

  .-- Source mode  '^' = server, '=' = peer, '#' = local clock.
 / .- Source state '*' = current synced, '+' = combined , '-' = not combined,
| /   '?' = unreachable, 'x' = time may be in error, '~' = time too variable.
||                                                 .- xxxx [ yyyy ] +/- zzzz
||      Reachability register (octal) -.           |  xxxx = adjusted offset,
||      Log2(Polling interval) --.      |          |  yyyy = measured offset,
||                                \     |          |  zzzz = estimated error.
||                                 |    |           \
MS Name/IP address         Stratum Poll Reach LastRx Last sample               
===============================================================================
^* 112.74.165.206                2   7   377   104  -2940us[-3118us] +/-   17ms
^+ 203.107.6.88                  2   7   377   114   +916us[ +738us] +/-   28ms