在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服务器(亲测可用)
- 中国国家授时中心(推荐):210.72.145.44
- 上海ntp服务器:ntp.api.bz
- 美国nist服务器:time.nist.gov
- 复旦大学服务器:ntp.fudan.edu.cn
- 微软授时服务器:time.windows.com
- 亚洲通用服务器:0.asia.pool.ntp.org、1.asia.pool.ntp.org、2.asia.pool.ntp.org、3.asia.pool.ntp.org
- 韩国服务器:time.nuri.net
示例:同步中国国家授时中心时间:
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”
原因及解决方法:
- 未加-u参数,防火墙限制:添加-u参数,如ntpdate -u time.nist.gov。
- ntp服务器不可用:更换本文提供的其他服务器(优先选择中国国家授时中心210.72.145.44)。
- 系统时间与服务器时间偏差过大(超过24小时):先手动修改系统时间至接近当前时间,再执行同步命令。
同步成功后,重启服务器时间错乱
原因:未将系统时间写入硬件时钟,解决方法:同步后执行hwclock -w,或在定时任务中添加该命令。
提示“ntpdate: command not found”
原因:未安装ntpdate或ntp包,解决方法:执行yum install -y ntpdate或yum install -y ntp。
八、补充说明
- 若需更高精度的时间同步,推荐使用chrony替代ntpdate,配置简单且精度更高,后续可单独出chrony详细配置教程。
- 内网环境中,建议搭建一台本地ntp服务器,所有内网机器同步该服务器时间,避免外网依赖。
以上就是linux ntp时间同步的完整操作流程,涵盖基础操作、时区配置、手动同步、定时同步及常见问题,适合新手直接上手操作。
windows同步如下:

gpedit.msc






调整ntp时间同步频率
linux可以通过crontab控制频率
windows server通过修改注册表同步


以上就是linux和windows的ntp时间同步的完整教程的详细内容,更多关于linux windows的ntp时间同步的资料请关注代码网其它相关文章!
发表评论