一、搭建时间服务器
时间服务器在网络环境中扮演着至关重要的角色:
- 在数据中心,文件服务器、邮件服务器、互联网网关等各种服务器及硬件设备依赖于精确的时间戳来记录和处理数据。如果服务器时间不同步,可能会导致文件时间错误、邮件时间戳混乱等问题,影响数据的准确。
- 企业内部需要同步所有计算机或工作站的时间,以支持数据共享、分布式软件开发等应用,个人计算机或工作站时间不同步,很多应用、网站将无法正常访问。
- 网络安全应用如防火墙、入侵检测系统等,需要精确的时间信息来识别和记录安全事件。时间同步有助于提高这些系统的安全性能。
1.1、基础配置
软件安装:CentOS 7 系统默认安装了chrony软件。
拓扑:
简介:
Chrony 是网络时间协议(NTP)的一种实现:
- 作为客户端与NTP服务器同步系统时钟:使用网络时间协议(NTP)客户端软件(Chrony ),在系统上配置NTP服务器的地址。系统将定期与NTP服务器通信,以同步系统时钟。
- 作为NTPv4服务器给其他服务器提供时间服务:配置系统可以充当NTP服务器,向其他计算机提供时间服务。你需要设置NTP服务器软件,并确保网络中的其他计算机可以访问该服务器。
1、公网NTP服务器
常见的公网NTP服务器:
-
国家授时中心 NTP 服务器:ntp.ntsc.ac.cn
-
中国 NTP 快速授时服务:cn.ntp.org.cn
-
阿里云公共 NTP 服务器:ntp.aliyun.com
-
清华大学NTP服务器:ntp.tuna.tsinghua.edu.cn
2、chrony配置
chrony配置文件:/etc/chrony.conf
- server:指明时间服务器地址;
- makestep 1.0 3:当时间偏移超过1秒,在后续的三次更新中逐步调整时间,最终保持和服务器一致;
- allow NETADD/NETMASK:允许的客户端,all表示所有;
- deny NETADDR/NETMASK:拒绝的客户端,all表示所有;
- bindcmdaddress:命令管理接口监听的地址;
- local stratum 10:即使自己未能通过网络时间服务器同步到时间,也允许将本地时间作为标准时间授时给其它客户端;
配置:
server ntp.aliyun.com iburst
server cn.ntp.org.cn iburst
driftfile /var/lib/chrony/drift
makestep 1.0 3
rtcsync
allow 10.0.0.0/24
local stratum 10
logdir /var/log/chrony
- local stratum 10:参数用于时间服务器完全网络隔离的环境下,即在服务器无法与上游NTP服务器同步的情况下,将本机时间提供给其他服务器。
重启服务:
sudo systemctl enable chronyd.service
sudo systemctl start chronyd.service
sudo systemctl restart chronyd.service
查看同步情况:
[root@klinux ~]# chronyc sources -v
210 Number of sources = 1
.-- Source mode '^' = server, '=' = peer, '#' = local clock.
/ .- Source state '*' = current synced, '+' = combined , '-' = not combined,
| / '?' = unreachable, 'x' = time may be in error, '~' = time too variable.
|| .- xxxx [ yyyy ] +/- zzzz
|| Reachability register (octal) -. | xxxx = adjusted offset,
|| Log2(Polling interval) --. | | yyyy = measured offset,
|| \ | | zzzz = estimated error.
|| | | \
MS Name/IP address Stratum Poll Reach LastRx Last sample
===============================================================================
^* controller 10 6 377 96 +192ns[ -25us] +/- 38us
3、防火墙配置
firewall-cmd --permanent --zone=public --add-port=123/udp
二、配置客户端
下面的配置中指定了时间服务器的机器名,因此需要提前配置hosts文件。
cp /etc/chrony.conf /etc/chrony.conf.bak
egrep -v "^#|^$" /etc/chrony.conf.bak > /etc/chrony.conf
sed -i 's#^server .*##g' /etc/chrony.conf
sed -i "1i\server Controller iburst" /etc/chrony.conf
systemctl stop firewalld.service
systemctl disable firewalld.service
systemctl enable chronyd.service
systemctl start chronyd.service
systemctl restart chronyd.service #选用,有时如果系统默认已经启动时需要重启
查看同步情况:
[root@block1 ~]# chronyc sources -v
210 Number of sources = 1
.-- Source mode '^' = server, '=' = peer, '#' = local clock.
/ .- Source state '*' = current synced, '+' = combined , '-' = not combined,
| / '?' = unreachable, 'x' = time may be in error, '~' = time too variable.
|| .- xxxx [ yyyy ] +/- zzzz
|| Reachability register (octal) -. | xxxx = adjusted offset,
|| Log2(Polling interval) --. | | yyyy = measured offset,
|| \ | | zzzz = estimated error.
|| | | \
MS Name/IP address Stratum Poll Reach LastRx Last sample
===============================================================================
^* controller 11 6 3 61 +10us[ -15ms] +/- 6713us