Ubuntu ntp搭建(客户端及服务器)

发布于:2025-07-29 ⋅ 阅读:(16) ⋅ 点赞:(0)

 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服务器关了 可以看到这里作为客户端 同步时间超时了


网站公告

今日签到

点亮在社区的每一天
去签到