点了「立即同步」却弹出一句同步时出错,这一页把它拆成一条能走完的排查链。先挑一种你遇到的错——同步时出错、time.windows.com 同步失败、点了没反应、总是慢几分钟、每次开机回到旧日期——页面就按最可能的顺序给出步骤卡:去哪点、怎么做、该看到什么,试过一步勾一下,下一步自动展开。命令行那几条原样列出,每条单独一行带复制按钮,并标明要以管理员身份运行。另有一个小判定器:差整数个小时的其实是时区选错了,改时区就好,同步多少次都没用。
怎么用
先说清楚这一页能做什么、不能做什么。它不替你对时,也对不了:网页没有修改系统时钟的权限,浏览器也发不出对时用的那种数据包。它做的是另一件事——把 Windows 报的错按最可能的顺序排成一条链,一步一问,告诉你每一步去哪点、该看到什么。
页面分三块:上面挑一种报错,中间是对应的排查链,最下面是一个「差整点还是差几分钟」的小判定器。
第一步:挑一种你遇到的错
五个入口,挑最像的那个:
| 你看到的现象 | 这条链先查什么 |
|---|---|
| 同步时出错 | 自动设置是不是关着 → 对时服务在不在跑 |
| time.windows.com 同步失败 | 直接换服务器地址 |
| 点了同步没反应 | 对时服务在不在跑 |
| 时间总是慢或快几分钟 | 先分清是时区还是时钟 |
| 每次开机都回到某个旧日期 | 主板纽扣电池 |
挑错了随时能换,各条链勾过的步骤各自记着,不会串。
第二步:照着步骤卡一步步试
每张步骤卡只写三件事,不啰嗦:
- 去哪点——完整路径,比如「设置 → 时间和语言 → 日期和时间」;
- 怎么做——分成几句,每句一个动作;
- 该看到什么——做完之后界面上应该出现的变化。有这一条,你才知道这一步到底算不算成了。
试完点一下「试过了,还是不行」,这张卡会收起来变成绿色,下一张自动展开。中途想回头看某一步,点卡头就能重新展开。想从头来过,点「这条链重新来过」把勾清掉即可。
第三步:命令那几条
链里有一步是用命令重新同步。页面把命令原样列出、一条一行、各带一个复制按钮,顺序也是固定的:
w32tm /resync—— 立刻同步一次。返回「命令成功完成」就算好了,不用再往下做。- 第一条报错时,再按顺序跑这一组:
net stop w32time、w32tm /unregister、w32tm /register、net start w32time、w32tm /resync。
🔴 这几条都要以管理员身份运行:在开始按钮上点右键,选带「管理员」字样的「终端」或「命令提示符」,普通窗口里跑会直接报拒绝访问。还有一点要先知道:「取消注册」和「注册」这两步会把对时服务的配置恢复成出厂状态,之前手工填过的服务器地址会被清掉,做完记得重新填一次。
本页的命令只对 Windows 有效。用 Mac 的、用 Linux 的,去 时间校准 看对应系统那一节,两边打开自动对时的方式都和 Windows 不一样。
第四步:顺手判一下是不是时区问题
页面最下面那个小格子,填你的电脑比标准时间快了或慢了多少分钟(慢了填负数),它会给一句结论:
- 差不到两分钟:算准的,不是「同步出错」该管的事。
- 差得几乎正好是整数个小时:时区选错了,改时区,别再点同步。
- 差几分钟、几十分钟,又不是整点:时钟真的在漂,照排查链走一遍。
不知道自己差多少的,先去 时间校准 量一次,那一页会直接给出「你的设备慢了几秒」。
怎么看结果
报错的那句话本身就是线索
Windows 在这件事上给的提示很含糊,来回就那么几句,但每一句指向的方向其实不一样:
- 「同步时出错」「Windows 在与 time.windows.com 进行同步时出错」——请求发出去了,但没得到有效回应。方向是网络与服务器地址。
- 「服务尚未启动」——对时服务被关了。方向是服务。
- 点了什么都不发生,「上次成功同步时间」一直不变——多半也是服务没在跑,或者被策略接管了。
- 时间明明改对了,一重启又回去——不是同步的事,是主板时钟那一侧的事。
所以页面把入口做成五个,就是想让你在第一步就走对方向,而不是把所有办法挨个试一遍。
「上次成功同步时间」是最好用的一行
这一行在「日期和时间」页面上,很多人从来没注意过。它的价值在于:它是系统自己记的、不会骗人的成绩单。
- 停在几分钟前 → 对时一直在正常工作,你遇到的问题多半不是同步失败。
- 停在几天、几个月前 → 同步其实一直在失败,只是平时没弹窗提醒你。
- 显示「从未」或者空着 → 这台机器从来就没成功对过一次时,八成是自动设置从一开始就关着。
每做完一步排查,回来看一眼这一行,比盯着报错弹窗有用得多。
走完一步之后该怎么判断有没有进展
每张卡的「该看到什么」就是判据。举几个典型的:
- 打开「自动设置时间」之后点同步,「上次成功同步时间」变成刚刚——成了。
- 换了服务器地址之后立刻就成功——那就是原来那台连不上,把新地址留着用。
w32tm /resync返回「命令成功完成」——成了,后面那几条不用跑。- 用手机热点连一次就立刻同步成功——是原来那个网络挡住了 UDP 123 端口,不是你的电脑有毛病。
- 服务那一页「状态」变成「正在运行」——服务这一环通了,回去再点一次同步看。
几种「看着像故障、其实不是」的情况
差整数个小时。这是时区,不是时钟,前面说过了,页面上的判定器会直接点破。
公司发的电脑怎么改都会变回去。加了域的电脑,时间由域控制器统一下发,本机设置会被策略覆盖。判断办法:单位发的机器、开机要用工号登录、桌面上有单位统一装的软件,多半就是。这种情况在本机怎么折腾都不长久,把现象告诉网管即可。
虚拟机里的时间老是跳。虚拟化软件自己有一套把宿主机时间喂给客户机的机制,客户机里的对时服务同时开着,两边就抢着调同一个时钟。只留一个就好,留哪个都行。
刚同步完偏差没有立刻归零。偏差很小时,系统通常不会把时钟直接拨过去,而是微调走速让它慢慢追上——因为很多软件假设时间只会往前走,突然往回跳会造成各种诡异故障。所以同步之后过几十秒再量,偏差才会收敛。
这一页给不了什么
- 给不了「一键修复」。网页没有那个权限,写着能一键修的,要么在骗点击,要么是想让你装个来路不明的程序。
- 给不了你的实际偏差。那需要跟服务器对一次时,本页不发请求,这件事交给 时间校准。
- 给不了硬件层面的定论。开机回到旧日期通常意味着纽扣电池快没电了,但也可能有别的原因,换一颗再观察一段时间才能确定。
常见问题
为什么系统自带的那个时间服务器在国内这么容易失败
这不是某一家的问题,而是「默认值」的宿命:全世界的同一款系统都填着同一个地址,机器却分布在全球各地。地址背后是一组分布在海外的服务器,国内访问要绕一大圈,赶上线路拥堵就直接超时。而对时这件事对延迟特别敏感——它默认「去程和回程耗时差不多」,绕远路不但慢,估出来的偏差也不准。所以换一个近的地址几乎总是立竿见影,这也是排查链里把「换地址」排得很靠前的原因。
为什么对时会被防火墙挡住,网页却能正常打开
因为它们走的不是同一个端口,甚至不是同一种协议。对时用的是 UDP 的 123 端口,网页用的是另外一套。不少单位网络、校园网出于安全考虑,会把不常用的 UDP 端口整个关掉,于是就有了那个经典现象:公司电脑怎么同步都失败,回家一次就好。排查链里让你用手机热点连一次再试,就是为了用最少的力气坐实这一条——换个网络立刻成功,问题就不在你的电脑上。
手动把时间调准,不同步行不行
短期可以,长期不行。任何一块石英晶振都有误差,电脑时钟每天走偏几秒到几十秒是常态,一个月下来就是几分钟。而且有几处会直接因为时间不准出问题:有时效的动态口令按 30 秒一格算,差超过一格就一直提示错误;安全连接的证书按时间判有效期,偏得离谱时正常网站会被判成不安全;抢票、报名、打卡这些卡点的事更不用说。所以手动调准只是应急,最终还是要让自动对时能正常工作。
改了时间服务器地址,要不要重启电脑
不用。改完直接点「立即同步」就会用新地址试一次。如果点了没反应,先去看 Windows Time 服务在不在跑;服务是在跑的、改完还是失败,就在管理员窗口里跑一次 w32tm /resync,命令行的报错通常比图形界面那句「同步时出错」具体得多。
双系统为什么一定会打架
这是个历史遗留问题。早期的个人电脑只跑一个系统,把主板时钟当本地时间读最省事,Windows 沿用至今;而类 Unix 系统从多用户、跨时区的环境里长出来,坚持把主板时钟当世界时读、显示时再套时区。两种做法各自都自洽,凑在一台机器上就变成每次开机互相「纠正」对方,差值正好是你的时区偏移,在国内就是 8 小时。解决办法是让两边对主板时钟的理解一致,改哪一边都行,改完两个系统各开一次机、各同步一次就不会再打架。
用第三方的「时间校准软件」是不是更省事
不建议把这类小工具当常规方案。系统自带的对时机制已经很完善:它会挑服务器、会按间隔轮询、偏差小的时候还会微调走速而不是硬拨。第三方工具做的事大多是同一件,却多了一个常驻进程,还容易和系统的对时服务抢着调同一个时钟,造成时间来回跳。真正需要做的只有两件:把「自动设置时间」打开,把服务器地址换成一个连得上的。
手机需要这样折腾吗
基本不需要。插卡的手机时间通常由运营商网络直接给,几秒就对上。真的不准,先确认「自动设置」是开的——很多人为了某个签到、某个游戏手动改过时间,之后就忘了改回来。纯 Wi-Fi 的平板和儿童手表要靠网络对时,长期不联网会慢慢走偏。
这一页在手机上能看吗
能。五个入口在窄屏下会变成上下排列,步骤卡和命令行都不横向滚动,400 像素宽也完整可见。不过页面里的操作路径和命令都是 Windows 的,真正要动手时还是得回到那台电脑前。
原理与冷知识
「同步」这个词其实描述的是一次对话,而不是一次下载。你的电脑并不是从服务器上「取回一个时间」那么简单——真要那样,网络路上花掉的时间就白白算进去了。实际做法是:本机记下发出的时刻,服务器记下收到和回复的时刻,回包里把这些时刻都带回来,本机再记下收到的时刻。四个时刻一凑,既能算出偏差,也能算出往返耗时,还能估出这次估计有多可靠。所谓「同步失败」,失败的其实是这场对话——要么没送到,要么没回来,要么回来的东西不可信。
为什么对时宁可用「不可靠」的传输方式。有人会奇怪:这么重要的事,为什么不用有重传、有确认的可靠传输?答案恰恰相反——重传、排队、拥塞控制都会让延迟忽大忽小,而偏差估算全靠「去程和回程耗时差不多」这个假设。用最轻的数据报一来一回,延迟最可预测,误差才估得准。代价就是那个端口太好认,企业防火墙顺手一关,就有了「公司电脑同步不上」的经典场景。
系统对时不敢「猛拨」,是被历史教训出来的。偏差很小时,操作系统会选择微调时钟的走速让它慢慢追上,而不是直接把时间拨过去。原因很实际:海量软件都假设时间单调递增,日志、数据库、定时任务、计时器全靠这个假设。时钟突然往回跳一秒,能让一台服务器上的好几个服务同时出现莫名其妙的故障——这类事故在业界发生过太多次,于是「平滑追赶」成了默认做法。
那颗纽扣电池管的不是时间,是「记性」。断电之后,主板上一小块独立电路还在走时,靠的就是它。它没电了,机器一断电就把时间忘掉,开机时会回到一个出厂默认的日期——有些机器会显示成某个很久以前的年份,这就是为什么老电脑偶尔会「穿越」到十几年前。顺带一提,同一颗电池还管着主板上的一些设置,所以它没电时偶尔会伴随别的小毛病,比如某些设置每次开机都恢复默认。
时间差得太远,同步反而会被拒绝。这是一条保护措施:如果允许任意大的时间跳变,一个被篡改的时间源就能把你的机器一把拽到过去或未来,让已经过期的证书重新「有效」。所以偏差超过某个门槛时,对时会被当成异常拒掉。这就带来一个反直觉的操作顺序——时间差得离谱的机器,得先手动把它调到大致正确,再让它自动同步。
为什么公司电脑的时间不归你管。加了域的电脑,时间是由域内的层级结构自上而下下发的:域控制器对着外部时间源,其余机器对着域控制器。这么做不是为了管你,而是因为域内的身份验证机制对时间差有硬性要求——差超过几分钟,登录直接失败。所以单位的电脑宁可全体一起偏,也不能各对各的。
闰秒:一个被投票决定取消的东西。地球自转并不匀速,为了让世界协调时和天文观测不至于差太多,1972 年起会不定期在某个月末插入一个「23:59:60」的闰秒,至今加过 27 次。它让无数系统出过事故,因为「一分钟有 61 秒」几乎没人在代码里考虑过。2022 年国际计量大会通过决议,计划在 2035 年前取消它。有意思的是,近几年地球自转反而在变快,如果趋势延续,人类可能第一次要面对「负闰秒」——把某一分钟减掉一秒,那会比正闰秒更难对付。
你屏幕右下角那串数字,源头是一群原子钟。1967 年起,一秒被定义为铯 133 原子基态两个超精细能级之间跃迁辐射的 9192631770 个周期所持续的时间,从此秒与地球自转脱了钩。今天的标准时间由全球数百台原子钟加权平均得出,再逐级分发:从国家级的授时机构,到各级时间服务器,到你的操作系统,最后到任务栏上那一行。中间每一层都会引入一点误差——而所谓「时间同步出错」,不过是这条链条在你这一环断了而已,接回去就好。