Chrony时间同步配置与自建NTP服务器教程

vps.dance 2024-12-04 2024-12-20 74℃

Chrony 是一个实现网络时间协议的软件包, 用于同步计算机的系统时间与世界各地的 NTP 服务器. Chrony 能够更好地适应高延迟和不稳定的网络环境, 能够以快速和高效的方式调整系统时间.
Chrony 可以提供保持系统时间与 NTP 时钟服务器同步的服务, 还能作为 NTP 服务器对其他服务器提供时间同步服务.
相较于NTP, Chrony具有更高的同步精度, 更强的稳定性.

安装 chrony

sudo apt update -y
sudo apt install chrony -y
sudo systemctl enable chrony --now # 启动服务
# sudo systemctl status chrony # 查看服务状态

配置 chrony

# cat /etc/chrony/chrony.conf # 默认的配置文件

# 添加同步源 (国内机 用阿里云/腾讯云 的NTP服务器)
sudo tee /etc/chrony/sources.d/custom.sources<< EOF
server ntp.tencent.com iburst prefer
server ntp.aliyun.com iburst prefer
EOF

# 国外机用CF/Google的同步源(也可以保持默认配置, 一般会自动优选)
# sudo tee /etc/chrony/sources.d/custom.sources<< EOF
# server time.cloudflare.com iburst prefer
# server time.google.com iburst prefer
# EOF

# 重新加载配置
sudo chronyc reload sources

# 检查配置文件语法
sudo chronyc dump

# 重启服务
sudo systemctl restart chrony
# 查看同步源
chronyc sources
# 检查同步源状态
chronyc sources -v
# 强制同步时间
sudo chronyc makestep
# 检查同步状态
chronyc tracking # 正常是 (Leap status: Normal), 异常是 (Leap status: Not synchronized)

开启 NTP 服务器 (可选, 允许其他机器把本机作为 NTP 服务器)

allow all 是允许所有主机同步时间; allow xxx.xxx.xxx.xxx/xx 是允许指定网段同步时间

# 允许ntp客户端访问
sudo tee /etc/chrony/conf.d/allow.conf << EOF
allow all
# allow 192.168.0.0/16
# allow 10.17.0.0/16
EOF

# 重启服务
# sudo systemctl restart chrony
# sudo netstat -unlp | grep 123 # 查看 NTP 端口(123)是否启用

Windows 利用 自建 NTP 服务器 同步时间

场景: 自建 NTP 服务器, 假设为 192.168.1.100, 解决一些特殊场景(比如 内网NTP时间同步 等)

# 管理员权限在 powershell 里执行
$NTP_SERVER = "192.168.1.100"
w32tm /stripchart /computer:$NTP_SERVER /dataonly /samples:1 # 测试 NTP 服务器
w32tm /config /syncfromflags:manual /manualpeerlist:$NTP_SERVER /update # 配置 NTP 服务器
w32tm /resync /force # 强制同步时间
w32tm /query /status # 查看时间同步状态
w32tm /query /peers # 查看时间同步源

同步更准确时间的用途:

  • 2FA(双因素身份验证)工具, 生成的验证码是基于时间的, 如果时间不准确, 就可能生成错误的验证码.
    比如, 系统时间误差>30秒, 2FA工具 计算的验证码就是错误的.

注:

  • 如果chronyc tracking 同步异常
    编辑/etc/chrony/chrony.conf 文件, 注释掉默认的 pool xx.xx.xx.xx iburst 规则.
    然后重启服务后, 再检查 chronyc tracking 是否正常.
标签: Chrony, NTP

非特殊说明, 所有文章均为原创.