Linux环境下使用 ntp 实现时间同步

 

最近发现之前写的 VirtualBox下虚拟机与宿主机时间同步 也不能实时保证虚拟机的时间与宿主机实际时间保持一致, 索性直接搭一下 ntp 服务来实现时间同步.

NTP 概念

NTP = Network Time Protocol, 是基于网络实现时间同步的协议.

实际实现

NTP 的实现, 需要 NTP服务端 与 NTP客户端.

其实笔者的情况, 虚拟机直接充当NTP客户端就完事了, 但是考虑到有多台虚拟机, 所以还是把 服务端 跟 客户端 都进行一下安装.

NTP 服务端

安装

yum install -y ntpd

配置

ntpd 的配置文件默认存放在 /etc/ntp.conf

--- 说明 ---

  • restrict 管控权限
    写法: restrict ip_address[ mask netmask][ option[s]]
    option选项
    * ignore
    拒绝所有类型的ntp联机
    * nomodify
    客户端不可以用 ntpc 和 ntpq 来修改服务端的时间参数
    * noquery
    客户端不能用 ntpc 和 ntpq 等命令来查询服务端, 等于不提供ntp网络校时
    * notrap
    不提供 trap 这个远端事件记录( remote event logging )功能
    * notrust
    拒绝没有认证的客户端
    * Kod
    阻止"Kiss of death"包对服务端的破坏
    * Nopeer
    不与其它同层的ntp服务端进行时间同步
  • server 设置上层NTP服务端
    写法: server ip_address or hostname[ option[s]]
    * prefer
    最高优先级
    * burst
    当一个远程NTP服务器可用时, 向它发送一系列的并发包进行检测
    * iburst
    当一个远程NTP服务器不可用时, 向它发送一系列的并发包进行检测
  • driftfile 记录时间差异
    写法: driftfile file_path
    记录与上层NTP服务器的时间差异
    要注意:
    *** file_path 需要是完整路径
    *** file_path 不能是链接
    *** ntpd 需要有 file_path 的写入权限
    *** 文件记录的数值单位是 百万分之一秒( ppm )
  • keys 使用密钥验证
    写法: keys key_file_path
    可以参考 ntp-keygen 命令的帮助手册

--- 实际配置 ---

我们的需要很简单, 直接加入一行即可( 我的虚拟机环境的网段是 192.168.56.0/24 )

restrict 192.168.56.0 mask 255.255.255.0 nomodify

 启动

systemctl start ntpd

需要开机启动的话, 使用

systemctl enable ntpd

检查

正常 ntpd 启动后约 15 分钟会进行与上层NTP服务器的时间校对

ntpstat

 同步后的反馈信息如:

synchronised to NTP server (208.67.72.50) at stratum 3
   time correct to within 227 ms
   polling server every 1024 s

NTP 客户端

客户端使用就简单很多, 使用下方命令即可, 注意 ntp_server_IP 换成你所知道的 NTP服务端 的 IP

ntpdate ntp_server_IP

如果要做完整, 还需要写入 BIOS时间 , 使用

hwclock -w

 

### 注

客户端使用 ntpdate 时有可能会报错, 形如:

ntpdate[31147]: no server suitable for synchronization found

 这是无法与 服务端 通讯导致的, 有可能是防火墙拦截, 注意 服务端 防火墙放行即可.

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Linux系统中,使用NTP服务来完成时间同步的过程非常简单。NTP(Network Time Protocol)是一种用于网络中时间同步的协议。它能够通过计算网络延迟,并校正系统时间来保证各个机器之间的时间一致性。 在Linux系统中,可以使用ntpdate或者chronyd命令来进行时间同步。其中ntpdate命令是最常见和简单的时间同步命令,但是它在最新版本的Linux系统中被废弃了。而chronyd命令是一个比ntpdate更为先进的时间同步软件,它支持动态校正系统时间,并且可以在网络断开连接的时候保存系统时间的误差值,以便在网络重新连接之后进行快速校正。 在使用NTP同步时间之前,需要确保系统已经安装了ntp或者chrony软件包。一旦安装完成之后,就可以打开ntp或chrony配置文件进行基本设置。在这个配置文件中,需要指定一个或多个NTP服务器地址,即NTP服务器的IP地址或域名。这些服务器将为客户端提供高质量的时间同步服务。可以在配置文件中使用server或pool来指定NTP服务器地址,例如: server ntp.server.com pool pool.ntp.org 在指定了NTP服务器地址之后,接着需要启动NTP服务。可以使用ntpdate命令来进行时间同步,例如: ntpdate ntp.server.com 或者使用chronyd来启动NTP服务,例如: systemctl start chronyd 以上是Linux客户端使用NTP服务进行时间同步的基本过程。使用NTP服务来完成时间同步可以有效避免不同计算机之间的时间误差,从而保证网络上各个计算机进行数据传输时的时间一致性,提高整个网络体系的稳定性和安全性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值