NTP时间服务


1.显示当前的日期和时间:

date

2.以指定格式显示日期和时间:

date +"%Y-%m-%d %H:%M:%S"

上述命令将以 2024-01-13 10:46:16 的格式显示当前日期和时间。

3.设置系统时间为指定时间:

date --set="2024-01-01 00:00:00"

4.将系统时间与网络时间同步:

ntpdate ntp.aliyun.com

构建和使用 NTP(Network Time Protocol)有助于确保计算机系统和设备的时间同步,并可确保网络中各个设备的时间保持一致。以下是构建和使用 NTP 的基本步骤:

需求场景:

局域网内,将一台Centos7服务器,作为时间服务器,配置为NTP服务端,其他机器为客户端通过本地网络与之同步时间。

一、安装前准备

1、关闭SELinux服务

# 关闭SELinux临时生效
[root@server01 ~]# setenforce 0
# 永久关闭SELinux(需重启生效)
[root@server01 ~]# sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config

2、配置防火墙

1)关闭防火墙并禁止开机启动:

# 停止Firewall服务
[root@server01 ~]# systemctl stop firewalld

# 禁止Firewall服务开机启动
[root@server01 ~]# systemctl disable firewalld

# 2)或者仅放行NTP服务端口:
# 添加NTP服务的UDP端口123到public区域,并设置为永久生效

[root@server01 ~]# firewall-cmd --add-port=123/udp --permanent

# 重新载入防火墙规则以使更改生效
[root@server01 ~]# firewall-cmd --reload

二、安装NTP服务

1、查询是否已安装

[root@server01 ~]# rpm -qa | grep ntp

图片

如果输出包含ntp和ntpdate,则说明已经安装NTP服务。如果只有一个包被安装,建议卸载后重新安装。使用命令rpm -e xxx卸载。

2、YUM安装

[root@server01 ~]# yum install ntp ntpdate -y

三、修改NTP配置文件

编辑/etc/ntp.conf文件。

[root@server01 ~]# vim /etc/ntp.conf

【服务端配置】

(一)时间服务器连接互联网

-----------------------------------------------------------
# 允许服务器使用本地系统上的时钟漂移文件
driftfile /var/lib/ntp/drift

# 设置默认的访问规则,允许同步但禁止修改、查询等操作
restrict default nomodify notrap nopeer noquery

# 允许本地网络的机器同步,但禁止修改、查询等操作
restrict 192.168.8.0 mask 255.255.255.0 nomodify notrap

# 允许本地主机同步,但禁止修改、查询等操作
restrict 127.0.0.1
restrict ::1

# 使用 ntp.aliyun.com 作为 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
server ntp.aliyun.com

# 指定需要包含的密码文件(如果有)
includefile /etc/ntp/crypto/pw

# 指定包含密钥的文件路径
keys /etc/ntp/keys

# 禁用监控功能
disable monitor

-----------------------------------------------------------
说明:
服务器地址默认为centos.pool.ntp.org,上述配置中为 ntp.aliyun.com 。

四、启动NTP服务并设置自动启动

[root@server01 ~]# systemctl start ntpd
[root@server01 ~]# systemctl enable ntpd
[root@server01 ~]# systemctl daemon-reload

五、检查NTP服务器是否正常工作

运行以下命令检查NTP服务器是否正常工作:

[root@server01 ~]# ntpq -p
[root@server01 ~]# ntpstat

如果返回结果中有时间服务器,表示NTP服务器已经正常工作。

六、同步硬件时钟与系统时间

NTP服务默认配置下主要负责同步Linux系统的内核时间。然而,为了确保在系统重启后硬件时钟(CMOS/RTC)也能保持准确的时间,可以设置让ntpd服务同时同步硬件时钟。

编辑/etc/sysconfig/ntpd文件,并确认添加以下内容:

SYNC_HWCLOCK=yes

这样一来,在ntpd服务运行过程中,每当系统时间被NTP同步更新时,硬件时钟也会随之更新,确保两者保持一致。

此外,若需要手动将当前已同步的系统时间写入到硬件时钟中,可使用如下命令:hwclock -w

七、测试时间同步

[root@client01 ~]# date --set="2024-01-01 00:00:00"
[root@client01 ~]# date
# 测试同步,不改时间
[root@client01 ~]# ntpdate -d  192.168.8.31
# 同步时间
[root@client01 ~]# ntpdate  192.168.8.31
[root@client01 ~]# hwclock -w
[root@client01 ~]# date