NTP服务器的配置和使用

2024-05-13

1. NTP服务器的配置和使用

 为了避免Linux系统的主机,在长时间运行下所导致的时间偏差。因此我们需要对时间进行时间同步(synchronize)。我们一般使用ntp服务来同步不同机器的时间。NTP 是网络时间协议(Network Time Protocol)的简称,他是通过UDP协议,对时间进行同步的。
   编辑NTP Server的主要配置文件为/etc/ntp.conf  ,如下:
   配置含义:
   配置完毕,重启NTP服务,使配置更改生效。
   查看NTP服务和上级连通状态
                                           内网其他设备作为NTP的客户端配置,相对就比较简单,而且所有设备的配置都相同。   首先需要安装NTP服务(与NTP-Server完全一样)。然后找其中一台配置/etc/ntp.conf文件,配置完成验证通过后,拷贝到其他客户端机器,直接使用即可。   注释掉之前的上层服务,以下几行
   添加本地的NTP服务器即可完成配置
   可以用date命令查看时区   如果时区是EST需要改成CST
   选择亚洲 /中国 /北京 /然后确认   改完后执行如下复制语句
   使用
   172.17.30.100为你的NTP服务器的ip地址,显示adjust time server 192.168.1.135 offset 0.004882 sec   这里有可能出现同步失败,一般情况下原因都是本地的NTPD服务器还没有正常启动起来,一般需要几分钟时间后才能开始同步。   也有报错 no server suitable for synchronization found,这种问题由一下两种情况造成:   Server dropped: strata too high:   并且显示“stratum 16”。而正常情况下stratum这个值得范围是“0~15”。   这种问题往往是由ntp服务启动后还没有和上层服务同步完成,可以等五分钟再次查看。   Server dropped: strata no data:   这种问题一般是因为访问不到NTP服务,需要检查NTP服务是否启动成功,或者是否是被防火墙拦截。   启动NTP_Client
   启动后,查看同步情况
   由于是内网,NTP服务很快会同步上,可以使用下面命令查看时间是否和服务器时间相同
   本机客户端配置完成后,需要同步的客户端机器使用SCP拷贝/etc/ntp.conf,命令如下,启动NTP服务即可。
     Linux的NTP配置总结         NTP服务及时间同步问题  

NTP服务器的配置和使用

2. 如何在 CentOS 中搭建 NTP 服务器

备 CentOS 服务器
现在让我们来开始在 CentOS 上设置 NTP 服务器。
首先,我们需要保证正确设置了服务器的时区。在 CentOS 7 中,我们可以使用 timedatectl 命令查看和更改服务器的时区(比如,"Australia/Adelaide",LCTT 译注:中国可设置为 Asia/Shanghai )
# timedatectl list-timezones | grep Australia
# timedatectl set-timezone Australia/Adelaide
# timedatectl

继续并使用 yum 安装需要的软件
# yum install ntp
然后我们会添加全球 NTP 服务器用于同步时间。
# vim /etc/ntp.conf
server 0.oceania.pool.ntp.org
server 1.oceania.pool.ntp.org
server 2.oceania.pool.ntp.org
server 3.oceania.pool.ntp.org
默认情况下,NTP 服务器的日志保存在 /var/log/messages。如果你希望使用自定义的日志文件,那也可以指定。
logfile /var/log/ntpd.log
如果你选择自定义日志文件,确保更改了它的属主和 SELinux 环境。
# chown ntp:ntp /var/log/ntpd.log
# chcon -t ntpd_log_t /var/log/ntpd.log
现在初始化 NTP 服务并确保把它添加到了开机启动。
# systemctl restart ntp
# systemctl enable ntp

验证 NTP Server 时钟
我们可以使用 ntpq 命令来检查本地服务器的时钟如何通过 NTP 同步。

控制到 NTP 服务器的访问
默认情况下,NTP 服务器允许来自所有主机的查询。如果你想过滤进来的 NTP 同步连接,你可以在你的防火墙中添加规则过滤流量。
# iptables -A INPUT -s 192.168.1.0/24 -p udp --dport 123 -j ACCEPT
# iptables -A INPUT -p udp --dport 123 -j DROP
该规则允许从 192.168.1.0/24 来的 NTP 流量(端口 UDP/123),任何其它网络的流量会被丢弃。你可以根据需要更改规则。

配置 NTP 客户端

1. Linux
NTP 客户端主机需要 ntpupdate 软件包来和服务器同步时间。可以轻松地使用 yum 或 apt-get 安装这个软件包。安装完软件包之后,用服务器的 IP 地址运行下面的命令。
# ntpdate 
基于 RHEL 和 Debian 的系统命令都相同。

2. Windows
如果你正在使用 Windows,在日期和时间设置(Date and Time settings)下查找网络时间(Internet Time)。

3. Cisco 设备
如果你想要同步 Cisco 设备的时间,你可以在全局配置模式下使用下面的命令。
# ntp server 
来自其它厂家的支持 NTP 的设备有自己的用于网络时间的参数。如果你想将设备和 NTP服务器同步时间,请查看设备的说明文档。

结论
总而言之,NTP 是在你的所有主机上同步时钟的一个协议。我们已经介绍了如何设置 NTP 服务器并使支持 NTP 的设备和服务器同步时间。

3. 如何在 CentOS 中搭建 NTP 服务器

第一步、通过yum安装ntp
# yum install ntp
第二步、配置NTP服务器
编辑vim /etc/ntp.conf
server 192.168.1.10 (centos7IP地址)
server s2m.time.edu.cn 
server 0.asia.pool.ntp.org 
server 1.asia.pool.ntp.org 
server 2.asia.pool.ntp.org 
server 3.asia.pool.ntp.org
server 127.127.1.0 iburst  local clock 当外部时间不可用时,使用本地时间。 
restrict 192.168.1.1 mask 255.255.255.0 nomodify  允许更新的IP地址段
第三步、启动NTP
systemctl start ntpd 
systemctl enable ntpd.service 设置开机启动服务  
第四步、验证NTP
# ntpq -p

配置客户端
1:linux
NTP 客户端主机需要 ntpupdate 软件包来和服务器同步时间。可以轻松地使用 yum 安装。
# ntpdate
具体可以参考网页链接

如何在 CentOS 中搭建 NTP 服务器

4. 如何将Win7做为NTP服务器

1. 修改注册表项
  HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\NtpServer
  Enabled 设定为 1(默认0)
  HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Config\
  AnnounceFlags 设定为 5 (默认 10)


  
  2. 禁用防火墙或设置例外,UDP 123端口。
  3. 运行 services.msc,将Windows Time服务设置成自动(延迟启动)
   

5. 常用的 NTP 服务器有哪些

有很多的ntp服务器可以用的,经过测试比较稳定的有:

常用的 NTP 服务器有哪些

6. NTP服务器功能有哪些?

‍‍随着计算机应用的广度和深度不断加大,网络中的设备种类和业务类型越来越多,服务器的数量也与日俱增。传统上,各种服务器、网络设备使用的时间都是由设备内部时钟来提供的。由于服务器、网络设备本身的时钟误差是不可避免的,尽管这种误差每天不大,但经过一段时间的累积就会出现大的时间差,从而导致网络中各服务器、网络设备的时间不一致。对于一些重要的行业来说,这种时间的不一致是致命的。基于以上考虑,网络中有必要部署NTP网络时间服务器,使用GPS信号作为时间源,同时可选北斗、CDMA、IRIG-B、OCXO、铷原子钟等时间源,通过NTP协议对网络内的所有服务器和网络设备的时间进行同步。
NTP网络时间服务器是针对自动化系统中的计算机服务器、控制设备等进行授时的高科技产品,它从GPS北斗卫星上获取标准的时间信号,将标准时间信息通过各种类型接口(脉冲、B码、串口、NTP、ieee1588、DCF77)传输给自动化系统中需要时钟信息的设备(计算机、保护装置、故障录波器、测控单元、DCS、ECS、PLC、安全自动装置、远动RTU、DVR、NVR),这样就可以达到整个系统的时钟同步。broadcast/multicast方式主要适用于局域网的环境,时间服务器周期性的以广播的方式,将时间信息传送给其他网路中的时间服务器,其时间仅会有少许的延迟,而且配置非常的简单。但是此方式的精确度并不高,对时间精确度要求不是很高的情况下可以采用。symmetric的方式得一台服务器可以从远端时间服务器获取时钟,如果需要也可提供时间信息给远端的时间服务器。此一方式适用于配置冗余的时间服务器,可以提供更高的精确度给主机。

‍‍

7. 如何搭建自己的NTP服务器

1、首先使用组合键WIN + R 启动运行窗口,在打开的窗口中输入regedit,点击确定按钮。

2、输入HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Config,找到Config目录,双击Config目录下的AnnounceFlags。

3、把注册表项的值设定为5,点击确定按钮。

4、HKEY_LOCAL_MACHINE\SYSTEM\CurrentControl\Services\W32Time\Time\NtpServer,再输入注册表路径,双击NtpServer下的Enabled文件。

5、把Enabled的值设定为1,点击确定按钮。

6、然后打开命令提示符窗口,输入net stop w32time停止服务,再输入net start w32time启动服务。

7、输入命令w32tm /stripchart /computer:127.0.0.1,有时间回显说明配置成功了。

如何搭建自己的NTP服务器

8. 如何搭建自己的NTP服务器?

NTP服务器【Network Time Protocol(NTP)】是用来使计算机时间同步化的一种协议,它可以使计算机对其服务器或时钟源(如石英钟,GPS等等)做同步化,它可以提供高精准度的时间校正(LAN上与标准间差小于1毫秒,WAN上几十毫秒),且可介由加密确认的方式来防止恶毒的协议攻击。时间按NTP服务器的等级传播。按照离外部UTC源的远近把所有服务器归入不同的Stratum(层)中。
                                                           
网络时间协议(NTP)用来同步网络上不同主机的系统时间。你管理的所有主机都可以和一个指定的被称为 NTP  服务器的时间服务器同步它们的时间。而另一方面,一个 NTP 服务器会将它的时间和任意公共 NTP 服务器,或者你选定的服务器同步。由 NTP  管理的所有系统时钟都会同步精确到毫秒级。
在公司环境中,如果他们不想为 NTP 传输打开防火墙,就有必要设置一个内部 NTP 服务器,然后让员工使用内部服务器而不是公共 NTP  服务器。在这个指南中,我们会介绍如何将一个 CentOS 系统配置为 NTP 服务器。在介绍详细内容之前,让我们先来简单了解一下 NTP 的概念。
为什么我们需要 NTP?
由于制造工艺多种多样,所有的(非原子)时钟并不按照完全一致的速度行走。有一些时钟走的比较快而有一些走的比较慢。因此经过很长一段时间以后,一个时钟的时间慢慢的和其它的发生偏移,这就是常说的  “时钟漂移” 或 “时间漂移”。为了将时钟漂移的影响最小化,使用 NTP 的主机应该周期性地和指定的 NTP 服务器交互以保持它们的时钟同步。
在不同的主机之间进行时间同步对于计划备份、入侵检测记录、分布式任务调度或者事务订单管理来说是很重要的事情。它甚至应该作为日常任务的一部分。
NTP 的层次结构
NTP 时钟以层次模型组织。层级中的每层被称为一个 stratum(阶层)。stratum 的概念说明了一台机器到授权的时间源有多少 NTP  跳。
Stratum 0 由没有时间漂移的时钟组成,例如原子时钟。这种时钟不能在网络上直接使用。Stratum N (N > 1) 层服务器从  Stratum N-1 层服务器同步时间。Stratum N 时钟能通过网络和彼此互联。
NTP 支持多达 15 个 stratum 的层级。Stratum 16 被认为是未同步的,不能使用的。
准备 CentOS 服务器
现在让我们来开始在 CentOS 上设置 NTP 服务器。
首先,我们需要保证正确设置了服务器的时区。在 CentOS 7 中,我们可以使用 timedatectl  命令查看和更改服务器的时区(比如,"Australia/Adelaide",LCTT 译注:中国可设置为 Asia/Shanghai )
代码如下:
# timedatectl list-timezones | grep Australia
# timedatectl set-timezone Australia/Adelaide
# timedatectl
继续并使用 yum 安装需要的软件
代码如下:
# yum install ntp
然后我们会添加全球 NTP 服务器用于同步时间。
代码如下:
# vim /etc/ntp.conf
server 0.oceania.pool.ntp.org
server 1.oceania.pool.ntp.org
server 2.oceania.pool.ntp.org
server 3.oceania.pool.ntp.org
默认情况下,NTP 服务器的日志保存在 /var/log/messages。如果你希望使用自定义的日志文件,那也可以指定。
复制代码
代码如下:
logfile /var/log/ntpd.log
如果你选择自定义日志文件,确保更改了它的属主和 SELinux 环境。
复制代码
代码如下:
# chown ntp:ntp /var/log/ntpd.log
# chcon -t ntpd_log_t /var/log/ntpd.log
现在初始化 NTP 服务并确保把它添加到了开机启动。
代码如下:
# systemctl restart ntp
# systemctl enable ntp
验证 NTP Server 时钟
我们可以使用 ntpq 命令来检查本地服务器的时钟如何通过 NTP 同步。
下面的表格解释了输出列。
remote 源在 ntp.conf 中定义。‘*’ 表示当前使用的,也是最好的源;‘+’ 表示这些源可作为 NTP 源;‘-’  标记的源是不可用的。
refid 用于和本地时钟同步的远程服务器的 IP 地址。
st Stratum(阶层)
t 类型。 'u' 表示单播(unicast)。其它值包括本地(local)、多播(multicast)、广播(broadcast)。
when 自从上次和服务器交互后经过的时间(以秒数计)。
poll 和服务器的轮询间隔,以秒数计。
reach 表示和服务器交互是否有任何错误的八进制数。值 337 表示 100% 成功(即十进制的255)。
delay 服务器和远程服务器来回的时间。
offset 我们服务器和远程服务器的时间差异,以毫秒数计。
jitter 两次取样之间平均时差,以毫秒数计。
控制到 NTP 服务器的访问
默认情况下,NTP 服务器允许来自所有主机的查询。如果你想过滤进来的 NTP 同步连接,你可以在你的防火墙中添加规则过滤流量。
# iptables -A INPUT -s 192.168.1.0/24 -p udp --dport 123 -j ACCEPT
# iptables -A INPUT -p udp --dport 123 -j DROP
该规则允许从 192.168.1.0/24 来的 NTP 流量(端口 UDP/123),任何其它网络的流量会被丢弃。你可以根据需要更改规则。
配置 NTP 客户端
1. Linux
NTP 客户端主机需要 ntpupdate 软件包来和服务器同步时间。可以轻松地使用 yum 或 apt-get  安装这个软件包。安装完软件包之后,用服务器的 IP 地址运行下面的命令。
代码如下:
# ntpdate
基于 RHEL 和 Debian 的系统命令都相同。
2. Windows
如果你正在使用 Windows,在日期和时间设置(Date and Time settings)下查找网络时间(Internet Time)。
3. Cisco 设备
如果你想要同步 Cisco 设备的时间,你可以在全局配置模式下使用下面的命令。
代码如下:
# ntp server
来自其它厂家的支持 NTP 的设备有自己的用于网络时间的参数。如果你想将设备和 NTP服务器同步时间,请查看设备的说明文档。
结论
总而言之,NTP 是在你的所有主机上同步时钟的一个协议。我们已经介绍了如何设置 NTP 服务器并使支持 NTP 的设备和服务器同步时间。