Ubuntu 系统中可用的 NTP 方案有systemd-timesyncd、NTP、chrony等
一. systemd-timesyncd(轻量级客户端)
定位:集成于 systemd 的轻量级 NTP 客户端,不支持作为服务端,ubuntu2204默认安装了该客户端。
特点:
低资源占用(内存约 1-2MB)
自动选择最优服务器,动态调整轮询间隔
默认配置简单,适合桌面环境
1. 安装服务
sudo apt update && sudo apt install systemd-timesyncd -y
验证安装:
dpkg -l | grep systemd-timesyncd # 确认包已安装
2. 配置文件
编辑主配置文件 /etc/systemd/timesyncd.conf:
sudo nano /etc/systemd/timesyncd.conf
关键配置项:
[Time]
NTP=ntp.aliyun.com ntp.tencent.com # 主服务器(空格分隔)
FallbackNTP=0.pool.ntp.org 1.pool.ntp.org # 备用服务器
RootDistanceMaxSec=5 # 最大根距离(秒)
PollIntervalMinSec=32 # 最小轮询间隔(秒)
PollIntervalMaxSec=2048 # 最大轮询间隔(秒)
核心命令
1. 服务管理
systemctl status systemd-timesyncd 查看服务状态
systemctl restart systemd-timesyncd 重启服务
systemctl stop systemd-timesyncd 停止服务
systemctl disable systemd-timesyncd 禁用开机自启
2. 时间同步控制
命令 说明
timedatectl set-ntp true 启用 NTP 同步(等效于启动服务)
timedatectl set-ntp false 禁用 NTP 同步
sudo systemd-timesyncd --force-refresh 强制立即同步
3. 状态查看
命令 关键输出项
timedatectl status:
System clock synchronized: yes(同步状态)
journalctl -u systemd-timesyncd 查看实时日志
timedatectl show-timesync --all 显示详细同步参数
# 查看当前时间源
timedatectl timesync-status
二、ntpd(传统 NTP 服务端/客户端)
定位:功能完整的 NTP 实现,支持服务端与客户端。
特点:
支持复杂网络拓扑(Stratum 分层)
提供微秒级同步精度
配置复杂,资源占用较高(内存约 10-20MB)
配置文件:/etc/ntp.conf
适用场景:企业级服务器、高精度需求环境
1)、NTP 客户端配置与测试
1. 安装客户端工具
sudo apt update && sudo apt install ntp ntpdate -y
2. 配置客户端
编辑 /etc/ntp.conf:
sudo nano /etc/ntp.conf
关键配置:
# 指定上游 NTP 服务器(可配置多个)
server ntp.aliyun.com iburst
server ntp.tencent.com iburst
# 禁用本地时钟作为备用(可选)
# server 127.127.1.0
# fudge 127.127.1.0 stratum 10
3. 启动客户端服务
sudo systemctl restart ntp
sudo systemctl enable ntp
4. 测试客户端同步
查看同步状态:
ntpq -p
# 输出示例:
# remote refid st t when poll reach delay offset jitter
# ==============================================================================
# *ntp1.aliyun.com 202.108.6.95 2 u 123 1024 377 12.345 -0.678 0.123
? * 表示当前使用的服务器,+ 为候选服务器
手动同步测试:
sudo ntpdate -u ntp.aliyun.com # 强制同步
date # 验证时间是否更新
2)、NTP 服务端配置与测试
1. 安装服务端
sudo apt update && sudo apt install ntp -y
2. 配置服务端
编辑 /etc/ntp.conf:
sudo nano /etc/ntp.conf
关键配置:
# 允许局域网客户端访问(根据实际网段修改)
restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap
# 本地时钟作为备用(stratum 值建议 ≥10)
server 127.127.1.0
fudge 127.127.1.0 stratum 10
# 上游服务器(可选)
server ntp.aliyun.com iburst
3. 启动服务端
sudo systemctl restart ntp
sudo systemctl enable ntp
4. 测试服务端功能
查看服务状态:
systemctl status ntp
# 确认 Active: active (running)
模拟客户端同步测试:
# 在其他设备上执行:
ntpdate -q 192.168.1.100 # 替换为服务端 IP
# 输出示例:
# server 192.168.1.100, stratum 2, offset -0.000036, delay 0.025
查看连接详情:
ntpdc -c peers 192.168.1.100 # 查看客户端连接状态
三、chrony(动态同步客户端/服务端)
定位:现代 NTP 实现,支持动态调整和断网补偿。
特点:
快速启动(1秒内完成初始同步)
网络不稳定时仍能保持精度
支持硬件时钟同步(rtcsync)
配置文件:/etc/chrony.conf
适用场景:虚拟机、云主机、移动设备
1)、Chrony 作为客户端配置与测试
1. 安装与基础配置
sudo apt update && sudo apt install chrony -y
2. 配置客户端
编辑 /etc/chrony/chrony.conf:
sudo nano /etc/chrony/chrony.conf
关键配置:
# 指定上游 NTP 服务器(可配置多个)
server ntp.aliyun.com iburst
server ntp.tencent.com iburst
# 禁用本地时钟作为备用(可选)
# server 127.127.1.0 iburst
# fudge 127.127.1.0 stratum 10
3. 启动客户端
sudo systemctl restart chronyd
sudo systemctl enable chronyd
4. 测试客户端同步
查看同步状态:
chronyc sources -v
# 输出示例:
#MS Name/IP address Stratum Poll Reach LastRx Last sample
#===============================================================================
#^* ntp.aliyun.com 2 6 377 123 +36us[+1230us] +/- 1111ms
? ^* 表示当前使用的服务器,^+ 为候选服务器
手动同步测试:
sudo chronyc -a makestep # 强制立即同步
date # 验证时间是否更新
2)、Chrony 作为服务端配置与测试
1. 安装与基础配置
sudo apt update && sudo apt install chrony -y
2. 配置服务端
编辑 /etc/chrony/chrony.conf:
sudo nano /etc/chrony/chrony.conf
关键配置:
# 允许局域网客户端访问(根据实际网段修改)
allow 192.168.1.0/24
# 本地时钟作为备用(stratum 值建议 ≥10)
server 127.127.1.0 iburst
fudge 127.127.1.0 stratum 10
# 上游服务器(可选)
server ntp.aliyun.com iburst
3. 启动服务端
sudo systemctl restart chronyd
sudo systemctl enable chronyd
4. 测试服务端功能
查看服务状态:
systemctl status chronyd
# 确认 Active: active (running)
5. 防火墙放行:
sudo ufw allow 123/udp # 开放 UDP 123 端口
同一台机器可以同时安装多个 NTP 客户端或多个 NTP 服务端 需要不同端口
下面是两个systemd-timesyncd作为ntp客户端
客户端配置
修改了为自定义的ntp服务器
同步自定义服务器有问题及没问题的图片
上面这个是把ntp服务器关了 可以看到这里作为客户端 同步时间超时了