在Ubuntu系统部署NTP服务
NTP是网络同步时间的TCP/IP协议。通常客户端会从服务器请求当前时间,并使用获取到的时间设置本地时钟。
注意:从Ubuntu 16.04开始
timedatectl和timesyncd(属于systemd的部分)代替了以往常用的ntpdate和ntp工具。
timesyncd不仅默认提供,并且取代了ntpdate以及chrony(用于取代ntpd的服务)的客户端。以前通过启动时使用ntpdate命令来矫正时间,现在只需要默认启动的timesyncd来完成并保持本地时间同步。
如果安装了chrony,则timedatectl将让chrony来实现时间同步。这样可以确保不会同时运行两个时间同步服务。
ntpdate今后将在未来的timedatectl(或者chrony)中去除,并且默认不再安装。timesyncd则用于常规的时钟同步,而chrony则处理更为复杂的案例。
如果想要矫正时间,可以使用如下命令:
chronyd -q如果只是检查时间,但是不设置时钟,则使用
chronyd -Q配置timedatectl和timesyncd
timedatectl和timesyncd使用
timedatectl status可以检查时钟情况:
$ timedatectl status
Local time: Tue 2018-05-01 21:54:24 CST
Universal time: Tue 2018-05-01 13:54:24 UTC
RTC time: Tue 2018-05-01 13:54:24
Time zone: Asia/Shanghai (CST, +0800)
Network time on: yes
NTP synchronized: yes
RTC in local TZ: no使用
systemctl status systemd-timesyncd可以检查时钟同步情况:
在/etc/systemd/timesyncd.conf设置了timedatectl和timesyncd获取时钟值的名字服务器,并且详细的配置文件可以在/etc/systemd/timesyncd.conf.d/目录下找到。
在/etc/systemd/timesyncd.conf中配置了timedatectl访问的服务器,这里配置了局域网中自建的chronyd之间服务(具体配置见后文)
然后重启systemd-timesyscd服务
再次检查systemctl status systemd-timesyncd,就可以看到和指定NTP服务器同步时间:
设置网络时间协议的服务
在Ubuntu平台,有多个软件可以实现网络时间服务,如chrony,ntpd和open-ntp。建议使用chrony.
chrony(d)
chrony(d)NTP服务chronyd计算系统时钟的drift和offset并持续修正。如果长时间不能连接网络NTP服务器,也可以保证时钟不偏移。该服务只消耗很少的处理能力和内存,在现代服务器硬件环境这个消耗往往可以忽略。
安装
chrony软件包包含2个执行程序:
chronyd- 通过NTP协议提供时间同步的服务
chronyc- 命令行和chrony服务交互的接口
chronyd配置
编辑/etc/chrony/chrony.conf添加服务配置行:
注意:一定要配置一行
allow 192.168.0.0/24,否则chronyd服务启动后不会监听任何端口
启动服务
检查状态
配置ufw
对于启动了ufw防火墙配置的Ubuntu服务器,需要添加端口允许:
参考
Last updated
Was this helpful?