本地(macOS)和服务器时间不同步导致的 Bug排查及解决

问题

今天在开发项目时发现:本地环境运行的项目偶尔会登录不了,提示token无效。

怪了,很久都没动过登录相关的模块了,环境也没动过,怎么会突然登录不了呢。


排查

于是我就去调试了一下登录的模块,发现在token校验里的有效期判断里,偶尔会出现token里的时间比Redis里存的时间大(正常应该是小于或等于的)。

进一步排查后发现我电脑的时间比服务器的时间慢了3秒左右导致的。

为什么是偶现,而不是必现呢?

由于我是本地代码连接线上的Redis服务,中间还有数据库查询,偶尔网络慢的时候刚好把这1秒多抹平了。


解决方法

  1. 进入系统设置-通用-日期与时间:
  1. 进入来源-设定:
  1. 设置时间服务器:

阿里时间服务器IP:182.92.12.11

服务器查看时间的命令:

bash 复制代码
date

date命令运行效果:

mac系统同步时间的命令:

bash 复制代码
# 以下命令需要输入密码
sudo sntp -sS 182.92.12.11

sntp命令运行效果:

进一步思考

为什么时间会突然就慢了呢?

我想起近期我的魔法IP不太稳定,切过几次IP源。

是不是新的IP无法访问苹果的时间服务器呢?

于是去验证了一下:

bash 复制代码
# 运行同步时间的命令
# time.apple.com是苹果原装时间服务器
sudo sntp -sS time.apple.com

果然超时了(Exchange failed: Timeout):

OK!破案!

福利

我发现有个网站可以很方便的检查电脑的时间是否和网络时间同步。

地址: tools.manmankan.com/shijian/

对比网站中框红的两个时间,相等的话你本地时间是OK的,不等的话就要调整啦。


关注"大虫小呓"(全网同名),第一时间获得更多技术干货。

这一篇就先水到这啦!下期见!

相关推荐
传奇开心果编程11 小时前
【SwiftUI入门练中学】第7课 动画与手势:让界面更灵动
学习·macos·ui·ios·swiftui·swift
the3clipse17 小时前
MacOS、Linux 与 Windows 视频编解码对比:AV1、HEVC、ProRes 与硬件加速优劣势
linux·windows·macos·hevc·av1·视频解码·硬件解码
传奇开心果编程1 天前
【SwiftUI娓娓道来】第3课:让界面活起来——交互与动画指南
学习·macos·ui·ios·swiftui·swift
朋友圈自动点赞工具1 天前
Gmail 委托邮箱在手机上关不掉
macos·智能手机·cocoa·硬件评测
小黄人软件1 天前
AndroidStudio老项目 macOS运行BlueTooth蓝牙串口助手(Android+Studio源码).rar
android·macos
她说..2 天前
IntelliJ IDEA 快捷键速查表(Mac 版)
java·macos·intellij-idea
for_ever_love__2 天前
iOS: CABasicAnimation动画
macos·ios·cocoa
ITKEY_2 天前
Mac mini彻底禁止自动睡眠
macos
k4m7v2pz3 天前
用中文编程语言写游戏:玄铁语言生命游戏的 macOS 适配实录
游戏·macos·玄铁·生命游戏·中文编程语言·玄铁中文编程
大熊猫侯佩3 天前
macOS27 上可变界面尺寸 iOS App 揭秘
macos·ios·swiftui