Ubuntu系统默认的时钟同步服务器是ntp.ubuntu.com,Debian则是0.debian.pool.ntp.org等,各Linux发行版都有自己的NTP官方服务器。身在中国,使用这些都会有高延迟,但对时钟同步这件事来说影响不大。在某些环境下,比如公司内网、云上子网等,是与互联网隔绝的。这时要想做时钟同步,就只能自己配置了。
Linux时钟同步是确保系统时间准确无误的关键步骤,这对于多台服务器间的协作以及日志记录等任务至关重要。默认情况下,大多数Linux发行版都配备了自动时钟同步功能,利用网络时间协议(Network Time Protocol,NTP)来与全球NTP服务器进行同步。然而,对于在中国的用户或位于隔离网络环境中的系统,如公司内网或云上子网,可能需要配置自定义的NTP服务器来避免高延迟或无法连接的问题。
在Ubuntu系统中,通常会使用`systemd-timesyncd`服务作为默认的时钟同步工具,它会与`ntp.ubuntu.com`进行同步。Debian系统则倾向于使用`0.debian.pool.ntp.org`。尽管在中国使用这些官方服务器可能遇到高延迟,但这对时钟同步的效果影响较小。但在隔离网络环境中,必须设置本地可访问的NTP服务器。
要自己配置Linux的时钟同步,首先需要确认`systemd-timesyncd`服务是否已经安装。如果未预装,可以通过运行`sudo apt install systemd-timesyncd`命令来安装。需要注意的是,`systemd-timesyncd`与传统的NTP服务`ntpd`冲突,两者不能同时存在,所以确保没有安装`ntpd`。
接下来,我们需要修改`/etc/systemd/timesyncd.conf`配置文件。在这个文件中,将`NTP`字段设置为可访问的NTP服务器地址。例如,可以使用华为在国内提供的一些NTP服务器,如`ntp7.aliyun.com`和`ntp6.aliyun.com`。配置文件修改后,需要重启`systemd-timesyncd`服务以使更改生效,执行`sudo systemctl restart systemd-timesyncd.service`。
如果发现`systemd-timesyncd.service`服务不存在,可以尝试用`sudo dpkg-reconfigure systemd-timesyncd`命令进行修复。
为了验证时钟同步是否成功,可以使用`date`命令查看当前日期和时间,或者使用`timedatectl status`命令获取更详细的状态信息,包括系统是否已同步、使用的NTP服务状态等。
在国内,可以选择阿里云提供的NTP服务器列表,例如`ntp1.aliyun.com`至`ntp7.aliyun.com`,通过`ping`命令测试服务器的响应速度,选择最优的服务器地址进行配置。这样可以确保在隔离网络环境下,系统依然能够准确地与时间源保持同步,保证系统的正常运行和时间一致性。