当前位置:首页>Linux>Linux 同步时间具体操作教程

Linux 同步时间具体操作教程

  • 2026-09-02 20:29:35
Linux 同步时间具体操作教程

一、 作为客户端:同步网络时间

方案1:Chrony(生产环境首选)

适用于 CentOS/RHEL 8+、Ubuntu 18.04+(Ubuntu 25.10+ 默认使用)。精度高,适应网络波动。

1. 安装与启动

# CentOS/RHEL/Rocky
sudo yum install chrony -y
sudo systemctl enable --now chronyd

# Ubuntu/Debian
sudo apt install chrony -y
sudo systemctl enable --now chrony

2. 修改NTP服务器(可选)编辑配置文件(路径注意区分):

  • RedHat系:/etc/chrony.conf

  • Ubuntu/Debian:/etc/chrony/chrony.conf 或 推荐在 /etc/chrony/sources.d/ 下新建 .sources 文件。

    # 将原有的 pool/server 替换为国内快速服务器(以Ubuntu为例)
    sudovim /etc/chrony/sources.d/custom.sources
    添加以下内容:

    # 阿里云NTP服务
    server ntp.aliyun.com iburst
    # 腾讯云NTP服务
    server time1.tencentyun.com iburst
    # 支持NTS加密的公共池(Ubuntu 26.04+)
    server time.cloudflare.com iburst nts
  • iburst:加速初始同步。

  • nts:启用网络时间安全加密(需新版Chrony)

3. 重启并验证

# RedHat系
sudo systemctl restart chronyd
# Ubuntu
sudo systemctl restart chrony

# 查看同步源(有*号表示已同步)
chronyc sources -v
# 查看系统时钟详细状态
chronyc tracking

方案2:systemd-timesyncd(轻量级)

适用于 Ubuntu 18.04~24.04(默认)或需要极简场景。注意:Ubuntu 25.10+ 已不再预装,若安装它会自动禁用Chrony。

1. 启用自动同步

sudo timedatectl set-ntp true

2. 修改NTP服务器

sudovim /etc/systemd/timesyncd.conf

在 [Time] 部分修改:

[Time]
NTP=ntp.aliyun.com
FallbackNTP=pool.ntp.org

3. 重启服务并查看状态

sudo systemctl restart systemd-timesyncd
timedatectl status
# 确认显示 "System clock synchronized: yes"

方案3:临时手动同步(ntpdate/chronyd)

仅适用于一次性校正,不适合长期运行。

方法A:使用ntpdate(传统)

sudo apt install ntpdate   # Ubuntu
sudo yum install ntpdate   # CentOS
sudo ntpdate ntp.aliyun.com

方法B:使用Chrony一次性查询/设置

# 仅查询时间差,不修改
chronyd -Q'server ntp.aliyun.com iburst'

# 立刻同步时间(必须停止本地chronyd服务)
sudo systemctl stop chrony
sudo chronyd -q'server ntp.aliyun.com iburst'
sudo systemctl start chrony

✅ 推荐做法:Chrony运行中,直接使用以下命令强制立即同步:

sudo chronyc makestep

二、 作为服务器:搭建内网NTP时钟源

在内网环境中,若服务器无法访问公网,需配置一台服务器作为内网NTP Server,其他机器指向它。

在NTP Server端配置(以Ubuntu 26.04为例)

1. 安装Chrony

sudo apt update
sudo apt install chrony -y

2. 配置允许客户端访问创建配置文件片段 /etc/chrony/conf.d/local-ntp-server.conf:

sudovim /etc/chrony/conf.d/local-ntp-server.conf

内容示例(允许特定网段访问):
# 允许内网客户端同步
allow 192.168.1.0/24
allow 10.0.0.0/8

# 当断网时,仍以本地时钟作为参考(设置伪层级)
local stratum 10

3. 防火墙放行NTP使用 UDP 123 端口。

sudo ufw allow 123/udv
# 或仅允许内网:
sudo ufw allow from 192.168.1.0/24 to any port 123 proto udp

4. 重启服务

sudo systemctl daemon-reload
sudo systemctl restart chrony

在内网客户端配置

将客户端的NTP地址指向该内网服务器IP(例如 192.168.1.10)。

Chrony客户端:

# 修改server指向内网IP
sudo nano /etc/chrony/sources.d/internal.sources
server 192.168.1.10 iburst
sudo chronyc reload sources

systemd-timesyncd客户端:

# 编辑 /etc/systemd/timesyncd.conf
[Time]
NTP=192.168.1.10
sudo systemctl restart systemd-timesyncd

三、 通用前置步骤:设置时区

无论使用哪种同步工具,时区错误会导致显示时间异常。

# 查看当前时区
timedatectl

# 设置为中国标准时间
sudo timedatectl set-timezone Asia/Shanghai

# 设置为UTC时间(服务器通用)
sudo timedatectl set-timezone UTC

建议:服务器统一使用UTC,应用层做时区转换;物理机需确认RTC(硬件时钟)使用UTC:

# 确保硬件时钟使用UTC(强烈推荐)
sudo timedatectl set-local-rtc 0

四、 快速排障指南

现象排查命令常见原因
时间一直不对chronyc sources -v服务器地址不可达;UDP 123端口被防火墙拦截;无*标记表示未选中同步源。
NTS 验证失败nc -zv 1.ntp.ubuntu.com 4460NTS需要TCP 4460端口做密钥交换,企业防火墙可能拦截。
同步服务无法启动systemctl status chrony80%是因为与ntpd或timesyncd冲突。需禁用其他服务:sudo systemctl disable --now ntp
刚启动同步慢-Chrony默认策略makestep 1 3:前3次更新且时间差>1秒才跳变。可临时执行chronyc makestep强制同步。

最新文章

随机文章