Linux

关注公众号 jb51net

关闭
首页 > 网站技巧 > 服务器 > Linux > Linux Windows的NTP时间同步

Linux和Windows的NTP时间同步的完整教程

作者:不愿透露姓名的大鹏

本文详细讲解了Linux系统时间的修改、时区配置、NTP时间同步(包括ntpdate和chrony)、定时同步任务设置,以及常见问题解决方法,内容涵盖基础时间操作、时区调整、NTP工具安装与使用、定时任务配置和常见错误处理等,适合运维新手快速掌握,需要的朋友可以参考下

在Linux服务器运维过程中,系统时间偏差是常见问题,尤其在数据库集群、分片部署等场景中,多台机器时间一致性直接影响业务稳定性。本文将详细讲解Linux系统时间修改、时区配置、NTP时间同步(含ntpdate与chrony)、定时同步任务设置,以及常见问题解决,适合运维新手快速上手。

一、基础时间操作(date与hwclock命令)

Linux系统中,时间分为系统时间(由系统内核维护)和硬件时间(BIOS时钟,关机后由主板电池供电),日常操作需区分两者,避免重启后时间错乱。

查看时间

查看系统时间:

date
示例输出:Wed Jun 7 14:00:00 CST 2018

查看硬件时间(BIOS时间):

hwclock # 等价于 hwclock -r(默认参数-r为查看)
示例输出:Wed 02 Nov 2016 02:53:35 AM CST -0.632895 seconds

修改系统时间

单独修改日期:

date -s 06/07/2018 # 格式:月/日/年

date -s 2017/03/06 # 格式:年/月/日

单独修改时间:

date -s 14:00:00 # 格式:时:分:秒

系统时间与硬件时间同步

修改系统时间后,需将系统时间写入硬件时钟,避免重启后时间恢复原状:

hwclock -w # 等价于 clock -w,将系统时间同步到硬件时间

同步后验证:date 和 hwclock 输出时间应一致

二、时区配置(修改为中国东八区)

默认情况下,Linux系统可能使用UTC时区,需手动修改为中国东八区(Asia/Shanghai),确保时间显示与本地一致。

1. 复制时区文件到系统默认时区配置

cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

2. 修改时区配置文件(永久生效)

vi /etc/sysconfig/clock

写入以下内容:

ZONE=“Asia/Shanghai”
UTC=false
ARC=false

配置完成后,执行date命令,确认时间显示为CST(中国标准时间)即可。

三、时间同步工具安装(ntpdate与chrony)

日常时间同步可使用ntpdate(简单快捷),若需更高精度的时间同步,推荐使用chrony(解决ntp精度不足问题,开源免费)。

安装ntpdate

yum install -y ntpdate # CentOS/RHEL系统

若提示命令不存在,可安装ntp完整包:

yum install -y ntp

安装chrony(高精度同步工具)

Chrony是一款开源自由软件,能实时保持系统时钟与NTP服务器同步,精度高于传统ntp,适合对时间精度要求高的场景(如金融、集群部署):

yum install -y chrony # 安装
systemctl start chronyd # 启动服务
systemctl enable chronyd # 设置开机自启

四、手动同步网络时间(ntpdate方式)

使用ntpdate命令可快速同步网络时间,需指定NTP服务器,若某台服务器同步失败,可更换其他服务器尝试。

基础同步命令

ntpdate -u 时间服务器地址

示例:同步美国NIST服务器

ntpdate -u time.nist.gov

同步成功提示:

3 Jun 15:42:39 ntpdate[4721]: adjust time server 211.115.194.21 offset -0.005885 sec

提示说明:系统已调整时间为服务器(211.115.194.21)的时间,时间偏差为-0.005885秒(偏差越小,精度越高)。

关键参数说明

-u:越过防火墙与NTP服务器同步,避免因防火墙限制导致同步失败(若不加此参数,可能出现“no server suitable for synchronization found”错误)。

常用NTP服务器(亲测可用)

示例:同步中国国家授时中心时间:

ntpdate -u 210.72.145.44

同步后更新硬件时间

网络同步系统时间后,务必执行以下命令,将同步后的时间写入硬件时钟:

hwclock -w

五、定时执行时间同步任务(crontab)

手动同步无法保证长期时间一致,需通过crontab设置定时任务,定期同步时间,推荐每1小时同步一次。

crontab格式说明

格式:分 时 日 月 周 执行命令

示例说明:

0 5 * * * :每天5点0分执行

*/30 * * * * :每30分钟执行

* */1 * * * :每1小时执行

添加定时同步任务

执行crontab -e编辑定时任务,添加以下内容(二选一或同时添加,确保同步稳定):

每1小时同步韩国time.nuri.net服务器,并更新硬件时间

*/1 * * * root ntpdate -u time.nuri.net && hwclock -w

每1小时同步内网NTP服务器(192.168.0.96),并更新硬件时间

*/1 * * * root ntpdate -u 192.168.0.96 && hwclock -w

每天5点10分同步中国国家授时中心服务器,并更新硬件时间

10 5 * * * root /usr/sbin/ntpdate -u 210.72.145.44; hwclock -w

重启crontab服务(使任务生效)

systemctl restart crond # CentOS 7+

/etc/init.d/crond restart # CentOS 6

六、开机自动网络校时(备选方案)

除了crontab定时同步,还可设置开机自动同步时间,适合服务器重启后快速校准时间:

vi /etc/rc.d/rc.local

添加以下内容(内网NTP服务器示例,可替换为其他公共服务器)

/usr/sbin/ntpdate -u 192.168.0.2 192.168.0.3 192.168.0.4; /sbin/hwclock -w

说明:多个服务器用空格分隔,确保其中一台可用即可完成同步。

七、常见问题解决

提示“no server suitable for synchronization found”

原因及解决方法:

同步成功后,重启服务器时间错乱

原因:未将系统时间写入硬件时钟,解决方法:同步后执行hwclock -w,或在定时任务中添加该命令。

提示“ntpdate: command not found”

原因:未安装ntpdate或ntp包,解决方法:执行yum install -y ntpdate或yum install -y ntp。

八、补充说明

  1. 若需更高精度的时间同步,推荐使用chrony替代ntpdate,配置简单且精度更高,后续可单独出chrony详细配置教程。
  2. 内网环境中,建议搭建一台本地NTP服务器,所有内网机器同步该服务器时间,避免外网依赖。

以上就是Linux NTP时间同步的完整操作流程,涵盖基础操作、时区配置、手动同步、定时同步及常见问题,适合新手直接上手操作。

Windows同步如下:

gpedit.msc

调整NTP时间同步频率

Linux可以通过crontab控制频率

Windows server通过修改注册表同步

以上就是Linux和Windows的NTP时间同步的完整教程的详细内容,更多关于Linux Windows的NTP时间同步的资料请关注脚本之家其它相关文章!

您可能感兴趣的文章:
阅读全文