NTP时间服务部署

本文详细介绍NTP(网络时间协议)的概念、Linux系统时间管理、NTP的安装配置及命令使用。NTP用于使网络中各计算机时间精确同步至世界协调时UTC,精度可达0.1ms至50ms。文章深入解析NTP配置文件参数,如driftfile、restrict、server及fudge等,同时提供NTP服务的启停方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1 NTP简介

1.1 NTP,网络时间协议(Network Time Protocol)

  • 用来使网络中的各个计算机时间同步的一种协议。它的用途是把计算机的时钟同步到世界协调时UTC(Universal Time Coordinated,世界协调时),其精度在局域网内可达0.1ms,在互联网上绝大多数的地方其精度可以达到1-50ms。

  • NTP 只考虑 UTC 时间,不考虑时区,不考虑夏令时等。
    NTP使用UDP,端口123。

  • 分层架构
    NTP使用一种树状的,半分层的时间源系统。每一层叫做 stratum。每个 stratum 都有一个编号,从0开始,最大到15,16被用来标记设备未同步。
    一般情况下,第 n+1 层 stratum 从第 n 层同步时间。

  • 所以NTP服务,一般是设置为类似中继的服务,从上级时间服务器同步时间,再作为向它同步时间的时间源

  • ntpdate使用的时候一定要先停止 ntpd.service 服务,它们不兼容

1.2 linux系统时间简介

  • linux系统有两个时钟
  1. 硬件时钟:RTC,Real Time Clock
  2. 软件时钟:System Clock
    两个时间独立运行,会产生相对误差
  • 使用ntpdate同步时间,是同步系统时间,将/etc/sysconfig/ntpd中的参数SYNC_HWCLOCK=yes改为yes,那么在同步系统时间的时候,硬件时间也会更新
  • 查看系统时间:date
  • 查看硬件时间:hwclock --show 或者 hwclock -r
将系统时间设为硬件时间:
hwclock --systohc
或者
hwclock -w

将硬件时间设为系统时间:
hwclock --hctosys
或者
hwclock -s

手动修改系统时间:
date -s "年/月/日  时:分:秒"

2 NTP安装,部署

2.1 安装NTP

#先检查有没有安装ntpdate命令
rpm -qa | grep ntp
#若有,需要卸载

#使用yum安装ntp
yum -y install ntp
#安装ntp会自动安装ntpdate命令

2.2 配置详解

  • 配置文件参数详解:vim /etc/ntp.conf
#该文件记录每次时间同步的误差,并根据时间误差来调整时间,若不开启此参数,误差数据在服务重启会丢失
driftfile /var/lib/ntp/drift

#restrict是配置连接本机ntp服务的主机有什么权限
restrict default nomodify notrap nopeer noquery
restrict 127.0.0.1
restrict 192.168.200.0 mask 255.255.255.0 nomodify

#server代表本机ntp服务同步的上级时间服务器,也就是时间源
server ntp1.aliyun.com
server 127.127.1.0 prefer
fudge 127.127.1.0 stratum 10

#下面几行不作解释
includefile /etc/ntp/crypto/pw
keys /etc/ntp/keys
disable monitor
  • restricit参数详解:

ntp的配置文件,默认从上至下读取配置,restrict参数可以设置各种权限:
格式:restrict IP mask **** [权限参数]
权限参数:
noquery:不提供ntp服务
notrap:不提供trap远程事件登录的功能
nomodify:客户端可时间同步,但是不能更改本机ntp服务的时间
notrust:拒绝没有通过认证的客户端
nokod:kod技术可以组织一种dos攻击,在ntp服务被违规访问时发动攻击
ignore:关闭所有ntp服务,不向任何客户端提供时间本地服务
以上面几行为例进行解释

  1. restrict default nomodify notrap nopeer noquery
    默认禁止所有客户端来同步时间,也不能修改本机ntp服务时间
  2. restrict 127.0.0.1
    允许本地对ntp服务进行任何操作
  3. restrict 192.168.200.0 mask 255.255.255.0 nomodify
    允许192.168.200.0这个网段的客户端来同步时间,但不能修改本地ntp服务时间
  • server参数详解:

server后面接上级时间服务器的地址,可以设置多个,ntp服务会自动检测误差最小的作为默认时间源
格式:server IP/URL perfer
就拿上面几行来解释:

  1. server ntp1.aliyun.com
    添加上级时间服务器为阿里的时间服务器,中国国家授时中心地址为210.72.145.8
  2. server 127.127.1.0 prefer
    设置本机ntp服务的上级时间服务器为本机,这个时候的IP固定为127.127.1.0,而不是127.0.0.1
    若只想把本地时间当做最高级服务器,不做中继,则只需要添加这个server
    当设置多个上级时间服务器时,加prefer参数的server就会被设置默认,不加就自动测试误差自动选择
  3. fudge 127.127.1.0 stratum 10
    时间服务器是分层的,此参数代表把本机ntp服务设置为第10层,那本机默认就不会向10层以后的时间服务器去同步时间,所以层级不要设置太高(从0到15以此降低)
  • NTP服务的启停:

systemctl start ntpd
systemctl stop ntpd

2.3 ntp其他相关命令

  • ntpq -p

ntpq -p 或者 ntpq -4p(ipv4的方式)
获取上级时间服务器的状态信息,测试本地ntp服务与上级的连接情况
若获取太慢可以用-4p,或者ntpq -p IP 指定上级时间服务器的IP来测试连接,应该也可以指定主机名或者说域名,没有进行测试
获取到的数据分为以下几列
remote:有“ * ”的代表默认的上层ntp时间源,“ + ”代表上层ntp服务器候选
refied:上层ntp服务器对应的IP
st:stratum级别

  • ntpstat
    查看当前ntp服务上次的时间同步情况

  • ntpdate -d IP
    -d 参数是默认时间同步,在客户端可以用它来进行测试,不会改变客户端时间,不加-d则是指定IP为源同步时间

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值