问题
在服务器当中经常因为时间的不一致导致程序报错出现bug,就算你校准了时间过了几个月还是会慢几分钟。
解决方案
Linux 系统校准时间一般通过网络时间协议(NTP, Network Time Protocol)客户端自动完成。这可以确保你的系统时间与世界标准时间同步。大多数现代的 Linux 发行版已经预装了 NTP 客户端,或者是其更现代的替代品,例如 chrony
或 systemd-timesyncd
。
以下是通过 NTP 客户端进行时间校准的一般步骤:
- 安装 NTP
如果你的系统没有预装 NTP 客户端,可以使用包管理器安装一个。例如,在基于 Debian 的系统中,可以使用以下命令:
sudo apt-get update
sudo apt-get install ntp
- 配置 NTP
安装之后,你可以编辑 /etc/ntp.conf 文件以配置你的 NTP 客户端。你可能会想要添加或更改服务器列表以使用距你最近的时间服务器。 - 启动 NTP 服务
安装和配置之后,启动 NTP 服务以使更改生效,并让 NTP 客户端开始同步时间。
sudo systemctl start ntp
- 设置为开机启动
sudo systemctl enable ntp
- 检查同步状态
使用以下命令检查 NTP 服务的状态和时间同步状态
sudo systemctl enable ntp
或者对于 chrony
使用:
chronyc sources
- 手动强制时间同步
如果你想立即强制时间同步,可以使用ntpdate
命令,但通常你不需要这样做,因为 NTP 会自动处理同步:
sudo ntpdate pool.ntp.org
如果你的 Linux 发行版使用 systemd-timesyncd
来同步时间,可以使用timedatectl
用法如下:
- 启用 NTP 自动时间同步:
timedatectl set-ntp true
- 查询时间同步状态:
timedatectl status
注意:
如果时区不对,一定要调整到东八区对于国内,通常是Asia/Shanghai
sudo timedatectl set-timezone Asia/Shanghai
最后,您可以运行 timedatectl 命令,不带任何参数,来确认时区已经设置正确:
timedatectl
时间同步是在后台自动进行的,一般无需进行手动干预。如果遇到问题,检查你的网络配置并确认你的防火墙设置没有阻止 NTP 端口(默认 UDP 123)。