1、设置服务器时区
(使用外部NTP时间源可不设置)
在Linux系统中设置时区可以使用以下命令:
- 查看当前时区:
timedatectl
- 列出所有可用时区:
timedatectl list-timezones
- 设置时区:
sudo timedatectl set-timezone <时区>
例如,将时区设置为北京时间:
sudo timedatectl set-timezone Asia/Shanghai
设置完成后,可以再次运行 timedatectl
命令来验证时区是否已经修改成功。
2、安装NTP服务
1、查看是否安装NTP服务:rpm -qa|grep ntp
已安装会出现相应版本信息:
2、通过yum、apt、docker等方式安装:
yum install ntp ntpdate -y
在Ubuntu上可以使用 apt命令安装:
sudo apt-get install ntp
3、安装完成后检查NTP状态:
systemctl status ntpd
虚拟机是早已装好NTP,所以是running状态,如果是dead状态也正常,配置完成后启动即可。
3、NTP配置文件
1、root账号,编辑ntp.conf:
vi /etc/ntp.conf
在restrict添加授时服务网址、网段,即可接入NTP的地址。
在server添加NTP时钟源,此处添加的阿里云的NTP服务地址;若使用本地时钟作为时间源,只须保证本地时钟源IP正确即可。
fudge 127.127.1.0 stratum 10 :
fudge
表示对该服务器进行一些特殊的配置,比如调整时钟频率等。127.127.1.0
表示使用本地的时钟作为NTP服务器,这是一种常见的配置方式。127.127.0.1是一个特殊的IP地址,它是本地回环地址,也称为环回地址。它是一个保留的IP地址,用于在本地计算机上测试网络连接和通信。当计算机尝试连接127.127.0.1时,它实际上是在尝试与自己通信。stratum 10
表示该服务器的时钟层级为10,即该服务器是一个较低层级的时钟,其时间参考可能来自于其他更高层级的时钟。NTP协议中,时钟层级越低,其时间参考越不可靠。
NTP服务器时间源配置:
使用本地时钟作为时间源:这种方式适用于没有可靠的外部时间源的情况。
使用外部NTP服务器作为时间源:这种方式适用于有可靠的外部时间源的情况。在这种情况下,NTP服务器将使用外部NTP服务器作为时间源,并尝试通过与其他NTP服务器同步来保持时间的准确性。
使用GPS或其他时间源作为时间源:这种方式适用于需要高精度时间同步的情况。
无论使用哪种方式,配置时间源的步骤大致相同:
打开NTP服务器的配置文件,通常是/etc/ntp.conf。
在配置文件中添加或修改server指令,指定要使用的时间源的IP地址或域名。例如:
server 0.cn.pool.ntp.org
server 1.cn.pool.ntp.org
server 2.cn.pool.ntp.org保存配置文件并重启NTP服务器,使其开始使用新的时间源。
systemctl restart ntpd需要注意的是,为了保证时间同步的准确性,建议使用多个时间源,并将它们配置为层级结构,以便在一个时间源不可用时自动切换到另一个时间源。
2、配置完成后,启动或重启NTP服务
启动:systemctl start ntpd
重启:systemctl restart ntpd
3、设置NTP服务开机自启:
systemctl enable ntpd
4、客户端配置
1、客户端只需要先安装NTP,然后编辑 /etc/ntp.conf 文件,将搭建的NTP服务端加入server 时钟源即可。
2、设置NTP自动同步,打开NTP服务启动脚本/etc/init.d/ntp
,找到以下一行:
NTPDATE_BIN=/usr/sbin/ntpdate
将其改为:
NTPDATE_BIN=/usr/sbin/ntpdate -u -s
3、重启NTP服务
使用以下命令重启NTP服务:
systemctl restart ntpd
2、使用crontab 命令设置客户端自动同步:
(crontab -l; echo "*/60 * * * * /usr/sbin/ntpdate 1.1.1.1 >>/tmp/ntp.log")| crontab
60 (分钟)为同步时间间隔
1.1.1.1 为NTP服务器地址
/tmp/ntp.log 为同步日志
使用sudo crontab -e
即可看到设置的定时同步任务命令。
注意:定时同步的时间间隔不应该设置得太短,否则可能会对NTP服务器造成过大的负担。建议时间间隔至少1分钟以上。