在Linux系统中,可以通过以下方法检查NTP(Network Time Protocol)是否正常同步:
ntpq
命令(旧版NTP)ntpq -p
输出说明:
- *
表示当前正在使用的同步源。
- +
表示备选的同步源。
- 如果第一列有*
或+
,表示已同步;若为空或显示x
,则同步异常。
timedatectl
命令(systemd系统,如Ubuntu 16.04+/CentOS 7+)timedatectl status
关键字段:
- NTP synchronized: yes
表示已同步。
- System clock synchronized: yes
同样表示同步正常。
chronyc
(Chrony服务)chronyc tracking
chronyc sources -v
输出说明:
- 在 tracking
结果中,检查 Reference ID
是否为有效的NTP服务器。
- 在 sources
结果中,^*
标记的服务器表示当前同步源。
# 旧版ntpd
systemctl status ntpd
# 或新版chronyd
systemctl status chronyd
关键点:服务状态应为 active (running)
,且日志无错误。
journalctl -u ntpd -u chronyd --since "1 hour ago"
或检查 /var/log/syslog
//var/log/messages
,搜索 ntp
或 chrony
相关错误。
# 旧版ntpd
ntpd -gq
# 或chrony
chronyc -a makestep
bash
sudo ufw allow 123/udp
/etc/ntp.conf
或 /etc/chrony.conf
中的服务器地址是否有效。bash
sudo date -s "YYYY-MM-DD HH:MM:SS"
timedatectl
或 chronyc
查看状态。根据你的系统和服务(ntpd/chrony)选择对应命令即可快速诊断。