在CentOS系统中,时间同步是确保系统日志、任务调度以及安全认证等功能正常运作的重要环节,由于硬件时钟的误差或网络环境的变化,系统时间可能会出现偏差,因此配置NTP(Network Time Protocol)服务进行自动校时是必要的操作,本文将详细介绍在CentOS系统中设置NTP校时的完整流程,包括安装配置、服务管理以及常见问题的解决方法。

安装NTP服务
在开始配置之前,首先需要确保系统已安装NTP服务包,CentOS 7及更高版本默认使用chrony作为时间同步服务,而CentOS 6及更早版本则使用传统的ntp服务,以下是针对不同版本的安装步骤。
对于CentOS 7/8系统,可以通过以下命令安装chrony服务:
sudo yum install chrony -y
对于CentOS 6系统,则需要安装ntp服务:
sudo yum install ntp -y
安装完成后,建议检查服务是否成功安装,可以通过rpm -qa | grep ntp或rpm -qa | grep chrony命令确认。
配置NTP服务器
安装完成后,需要对NTP服务进行配置以指定时间同步源,CentOS 7/8系统使用/etc/chrony.conf配置文件,而CentOS 6系统使用/etc/ntp.conf。
以CentOS 7/8为例,编辑chrony.conf文件:
sudo vi /etc/chrony.conf
在文件中,找到server指令,默认配置可能指向pool.centos.org,可以根据需要修改为公共NTP服务器,如:
server 0.centos.pool.ntp.org iburst
server 1.centos.pool.ntp.org iburst
server 2.centos.pool.ntp.org iburst
server 3.centos.pool.ntp.org iburst 其中iburst参数表示在初始同步时快速发送请求以加快同步速度,如果需要在局域网内同步时间,可以添加内部服务器的IP地址。
对于CentOS 6系统,编辑/etc/ntp.conf文件,类似地配置server指令,确保注释或删除默认的restrict指令,以避免权限限制。

启动并启用NTP服务
配置完成后,需要启动NTP服务并设置其开机自启,对于CentOS 7/8系统,使用systemctl命令:
sudo systemctl start chronyd sudo systemctl enable chronyd
对于CentOS 6系统,则使用service命令:
sudo service ntpd start sudo chkconfig ntpd on
启动后,可以通过systemctl status chronyd或service ntpd status检查服务状态,确保服务正常运行。
验证时间同步效果
为了确认NTP服务是否正常工作,可以使用以下命令进行验证,对于CentOS 7/8系统,运行:
chronyc tracking
该命令会显示当前同步状态,包括同步源、时间偏差等信息,如果看到System time和Reference time的差异较小,则说明同步正常。
对于CentOS 6系统,可以使用:
ntpq -p
该命令会列出配置的NTP服务器及其同步状态,如果状态栏显示reach值为377(八进制),表示服务器已响应并成功同步。
防火墙配置
如果系统启用了防火墙,需要开放NTP服务的端口(UDP 123)以允许时间同步请求,对于CentOS 7/8系统,使用firewalld:
sudo firewall-cmd --permanent --add-service=ntp sudo firewall-cmd --reload
对于CentOS 6系统,使用iptables:

sudo iptables -A INPUT -p udp --dport 123 -j ACCEPT sudo service iptables save
确保防火墙规则已正确保存并加载,否则可能会影响NTP服务的通信。
常见问题处理
在配置NTP服务时,可能会遇到一些常见问题,如果时间同步失败,首先检查网络连接是否正常,确认NTP服务器是否可访问,检查系统日志(/var/log/messages或journalctl -u chronyd)以获取详细的错误信息。
另一个常见问题是硬件时钟与系统时间不一致,可以使用hwclock命令手动同步硬件时钟与系统时间:
sudo hwclock --systohc
该命令会将当前系统时间写入硬件时钟,确保重启后时间不会出现较大偏差。
相关问答FAQs
Q1: 如何手动同步系统时间而不依赖NTP服务?
A1: 可以使用date命令手动设置系统时间,例如sudo date "MMDDHHMMYYYY"(格式为月日时分年),运行sudo hwclock --systohc将时间写入硬件时钟,但手动设置仅为临时方案,建议长期使用NTP服务自动同步。
Q2: 为什么NTP服务启动后时间同步仍然失败?
A2: 可能的原因包括:防火墙阻止了UDP 123端口通信、NTP服务器不可达、或系统时间与服务器时间偏差过大(超过1000秒),建议检查防火墙规则、更换NTP服务器源,并使用ntpq -p或chronyc sources命令诊断同步状态。
【版权声明】:本站所有内容均来自网络,若无意侵犯到您的权利,请及时与我们联系将尽快删除相关内容!
发表回复