安装NTP服务器
使用以下Linux命令在Ubuntu 18.04系统上安装NTP服务器守护程序:
$ sudo apt install ntp
配置NTP服务器
NTP服务器默认情况下预先配置。
但是,我们可能希望切换到靠近我们的服务器位置的NTP服务器池。
使用浏览器导航到NTP池项目 http://www.pool.ntp.org/zone/@ ,并找到最近的NTP服务器池。
例如,以下是澳大利亚的NTP池列表:
0.au.pool.ntp.org 1.au.pool.ntp.org 2.au.pool.ntp.org 3.au.pool.ntp.org
编辑NTP服务器的主要配置文件
$ sudo nano /etc/ntp.conf
修改下面行:
pool 0.ubuntu.pool.ntp.org iburst pool 1.ubuntu.pool.ntp.org iburst pool 2.ubuntu.pool.ntp.org iburst pool 3.ubuntu.pool.ntp.org iburst
保存文件并重新启动NTP服务器:
$ sudo service ntp restart
检查NTP服务器状态:
$ sudo service ntp status ● ntp.service - Network Time Service Loaded: loaded (/lib/systemd/system/ntp.service; enabled; vendor preset: enabled) Active: active (running) since Wed 2015-03-21 11:08:04 AEDT; 1s ago Docs: man:ntpd(8) Process: 28155 ExecStart=/usr/lib/ntp/ntp-systemd-wrapper (code=exited, status=0/SUCCESS) Main PID: 28173 (ntpd) Tasks: 2 (limit: 2322) CGroup: /system.slice/ntp.service └─28173 /usr/sbin/ntpd -p /var/run/ntpd.pid -g -u 111:115
最后,如果系统上启用了UFW防火墙,则需要打开NTP UDP端口123:
$ sudo ufw allow from any to any port 123 proto udp Rule added Rule added (v6)
NTP客户端配置
首先安装ntpdate
命令来测试NTP服务器配置:
$ sudo apt install ntpdate
执行以下ntpdate
命令和我们的NTP服务器进行同步时间:
$ sudo ntpdate ntp服务器域名 或者 $ sudo ntpdate ntp服务器ip地址 21 Mar 11:16:43 ntpdate[6090]: adjust time server 10.1.1.9 offset -0.000100 sec
禁用默认Ubuntu systemd的TimeSync服务:
$ sudo timedatectl set-ntp off
禁用timesyncd后,我们现在将安装NTP守护进程,并将自己配置的NTP服务器设置为时间同步的首选NTP服务器。
输入以下命令以安装NTP deamon:
$ sudo apt install ntp
接下来,配置NTP守护程序以使用以前配置的NTP服务器,该服务器通过NTP linuxconfig主机名解析。
以下linux命令将ntp linuxconfig设置为首选ntp时间同步服务器。使用NTP服务器的主机名或者IP地址更新以下命令:
$ sudo bash -c "echo server ntp-onitroad prefer iburst >> /etc/ntp.conf"
然后,重新启动NTP守护程序:
$ sudo service ntp restart
使用ntpq
命令列出NTP时间同步队列:
$ ntpq -p
*
符号表示该NTP服务器被选为当前时间同步源。
NTPQ命令列输出解释:
- remote——您希望与之同步时钟的远程服务器
- refid——远程服务器的上游层。对于第1层服务器,这将是第0层源。
- st——地层级别,从0到16。
- t——连接的类型。可以是“u”表示单播或者多播,“b”表示广播或者多播,“l”表示本地参考时钟,“s”表示对称对等点,“A”表示多播服务器,“b”表示广播服务器,或者“M”表示多播服务器
- when—上次查询服务器的时间。默认值为秒,或者以分钟显示“m”,以小时显示“h”,以天显示“d”。
- poll ——查询服务器时间的频率,最短为16秒,最长为36小时。它还显示为二次幂的值。通常情况下,时间介于64秒和1024秒之间。
- reach——这是一个8位左移八进制值,显示与远程服务器通信的成功率和失败率。成功表示已设置位,失败表示未设置位。377是最高值。
- delay --此值以毫秒为单位显示,并显示计算机与远程服务器通信的往返时间(RTT)。
- offset——此值以毫秒为单位,使用均方根显示,并显示您的时钟与服务器给您的报告时间之间的距离。它可以是正面的,也可以是负面的。
- jitter ——这个数字是以毫秒为单位的绝对值,表示偏移量的均方根偏差。
NTPQ命令行输出解释:
“”-- 由于无效而被丢弃。可能是您无法与远程计算机通信(它未联机),此时间源是“.LOCL.”refid时间源,它是高层服务器,或者远程服务器将此计算机用作NTP服务器。
x -- 被交集算法丢弃。
. -- 被表溢出丢弃(未使用)。
-- -- 被聚类算法丢弃。
+ -- 包含在合并算法中。如果我们正在同步的当前服务器由于任何原因被丢弃,那么这是一个很好的选择。
# -- 作为备用备份使用的良好远程服务器。仅当您有10台以上的远程服务器时,才会显示此选项。
* -- 当前系统是对等的。计算机正在使用此远程服务器作为其时间源来同步时钟
o -- 每秒脉冲数(PPS)对等。这通常与 GPS 时间源一起使用,尽管任何提供 PPS 的时间源都可以。 此计数代码和上一个计数代码“*”不会同时显示。