NTP 时间服务器配置《三》通过ntpd服务平滑同步时间
使用ntpd服务,要好于ntpdate加cron的组合。因为,ntpdate同步时间,会造成时间的跳跃,对一些依赖时间的程序和服务会造成影响。比如sleep,timer等。而且,ntpd服务可以在修正时间的同时,修正cpu tick。理想的做法为,在开机的时候,使用ntpdate强制同步时间,在其他时候使用ntpd服务来同步时间。
一、环境方案
环境:linux centos 7.0 三台(都已安装ntp服务)
方案:一台服务器作为ntpd服务与外部公共ntp服务同步时间,同时作为内网的ntpd服务器,其余两台机器与这台服务做时间同步。
服务器IP |
角色 |
说明 |
同步方式 |
192.168.152.129 |
NTPD服务 |
1、负责与外部公共NTPD服务同步标准时间 2、作为内外网络的NTPD服务 |
NTPD服务平滑同步 |
192.168.152.130 |
内外NTP客户端 |
内网设备与192.168.152.129同步时间 |
NTPD服务平滑同步 |
192.168.152.131 |
内外NTP客户端 |
内网设备与192.168.152.129同步时间 |
NTPD服务平滑同步 |
ntp服务的实现是通过配置/etc/ntp.conf文件完成的,这里重点说一下,可以用ntp搭建自己的时间服务器,也可以使用官方提供的服务器。
二、配置内网NTP-Server(192.168.152.129)
1.修改配置文件
[root@localhost Desktop]# vi /etc/ntp.conf |
# For more information about this file, see the man pages # ntp.conf(5), ntp_acc(5), ntp_auth(5), ntp_clock(5), ntp_misc(5), ntp_mon(5).
driftfile /var/lib/ntp/drift
# Permit time synchronization with our time source, but do not # permit the source to query or modify the service on this system. restrict default nomodify notrap nopeer noquery
# Permit all access over the loopback interface. This could # be tightened as well, but to do so would effect some of # the administrative functions. restrict 127.0.0.1 restrict ::1
# 允许内网其他机器同步时间 restrict 192.168.152.0 mask 255.255.255.0 nomodify notrap
# Hosts on local network are less restricted. #restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap
# Use public servers from the pool.ntp.org project. # Please consider joining the pool (http://www.pool.ntp.org/join.html).
# 中国这边最活跃的时间服务器: http://www.pool.ntp.org/zone/cn server 1.cn.pool.ntp.org server 3.asia.pool.ntp.org server 2.asia.pool.ntp.org server 0.asia.pool.ntp.org server 1.asia.pool.ntp.org
#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
#broadcast 192.168.1.255 autokey# broadcast server #broadcastclient# broadcast client #broadcast 224.0.1.1 autokey# multicast server #multicastclient 224.0.1.1# multicast client #manycastserver 239.255.254.254# manycast server #manycastclient 239.255.254.254 autokey # manycast client
# allow update time by the upper server # 允许上层时间服务器主动修改本机时间 restrict 1.cn.pool.ntp.org nomodify notrap noquery restrict 3.asia.pool.ntp.org nomodify notrap noquery restrict 2.asia.pool.ntp.org nomodify notrap noquery restrict 0.asia.pool.ntp.org nomodify notrap noquery restrict 1.asia.pool.ntp.org nomodify notrap noquery
# 外部时间服务器不可用时,以本地时间作为时间服务 server 127.127.1.0 # local clock fudge 127.127.1.0 stratum 10
# Enable public key cryptography. #crypto
includefile /etc/ntp/crypto/pw
# Key file containing the keys and key identifiers used when operating # with symmetric key cryptography. keys /etc/ntp/keys
# Specify the key identifiers which are trusted. #trustedkey 4 8 42
# Specify the key identifier to use with the ntpdc utility. #requestkey 8
# Specify the key identifier to use with the ntpq utility. #controlkey 8
# Enable writing of statistics records. #statistics clockstats cryptostats loopstats peerstats
# Disable the monitoring facility to prevent amplification attacks using ntpdc # monlist command when default restrict does not include the noquery flag. See # CVE-2013-5211 for more details. # Note: Monitoring will not be disabled with the limited restriction flag. disable monitor |
2.配置文件修改完成,保存退出,启动服务,即完成主服务的配置。
[root@localhost Desktop]# service ntpd start |
3.查看NTP服务情况(启动后,一般需5-10分钟左右才能与外部时间服务器开始时间同步)
[root@localhost Desktop]# ntpstat |
刚启动的时候,一般是:
# ntpstat
unsynchronised
time server re-starting
polling server every 64 s
连接并同步后:
synchronised to NTP server (202.112.10.36) at stratum 3
time correct to within 275 ms
polling server every 256 s
4.查看NTP服务连接和监听
[root@localhost Desktop]# netstat -tlunp | grep ntp |
5.查看网络中的NTP服务器,同时显示客户端和每个服务器的关系
[root@localhost Desktop]# ntpq -p |
参数说明: remote:响应请求的NTP服务器的名称 refid:NTP服务器使用的更高一级服务器的名称 st:正在响应请求的NTP服务器的级别 when:上一次成功请求之后到现在的秒数 poll:本地和远程服务器多少时间进行一次同步,单位秒。开始运行NTP的时候poll值会比较小,服务器同步的频率大,可以尽快调整到正确的时间范围内,之后poll值会逐渐增大,同步的频率也就会相应减小 reach:用来测试能否和服务器连接,是一个八进制值,每成功连接一次它的值就会增加 delay:从本地机发送同步要求到NTP服务器的往返时间 offset:主机通过NTP时钟同步与所同步时间源的时间偏移量,单位为毫秒,offset越接近于0,主机和NTP服务器的时间越接近 jitter:统计了在特定个连续的连接数里offset的分布情况。简单地说这个数值的绝对值越小,主机的时间就越精确 |
三、配置内网NTP-Clients(192.168.152.130/131)
1.修改配置文件/etc/ntp.conf
driftfile /var/lib/ntp/drift
restrict 127.0.0.1 restrict ::1
# 配置时间服务器为本地的时间服务器 server 192.168.152.129
restrict 192.168.152.129 nomodify notrap noquery
server 127.127.1.0 # local clock fudge 127.127.1.0 stratum 10
includefile /etc/ntp/crypto/pw
keys /etc/ntp/keys
disable monitor |
注意:去掉了注释部分
2.配置文件修改完成,保存退出,请先使用ntpdate手动同步下时间
# ntpdate 192.168.152.129 |
3.启动NTP服务,查看情况
# service ntpd start .... # ntpq -p # ntpstat |
四、特别注意
配置完成之后,还有几个步骤比较重要,否则可能出现各种奇怪的问题
1.打开udp/123防火墙端口
Linux下防火墙如果及其严格的话可能会影响ntpd服务对时,所以要打开udp/123端口
2.设置ntpd服务开机自启动
(1)查看系统内置的服务自启动状态命令
# systemctl list-unit-files |
(2)设置NTPD服务开机自启动
# systemctl enable ntpd.service |
但是,调整之后重启系统,发现NTP并没有启动起来。查看chronyd服务是否设置开机自启动,这个服务导致NTP无法开启自启动,解决办法是禁止chronyd服务开机自启动
# systemctl status chronyd # systemctl disable chronyd.service |
3.NTP同步硬件时间
NTP服务默认只会同步系统时间。如果要让NTP同时同步硬件时间,可设置/etc/sysconfig/ntpd 文件。
添加以下内容,就可以让硬件时间与系统时间一起同步。
SYNC_HWCLOCK=yes |
4.NTP服务自我保护
NTP有一个自我保护设置:默认情况下如果NTP本地时间与上级NTP时间差超过1000s,那么NTP进程就会退出并在系统日志文件中记录,且不会进行时间同步。所以新设置的时间服务器一定要先 ntpdate 从上源取得时间初值, 然后启动 ntpd服务。ntpd服务运行后, 先是每64秒与上源服务器同步一次, 根据每次同步时测得的误差值经复杂计算逐步调整自己的时间, 随着误差减小, 逐步增加同步的间隔. 每次跳动, 都会重复这个调整的过程.
当然还有另一种解决办法:在配置文件/etc/ntp.conf的第一行加上这么一句,这可以保证ntpd在时间差较大时依然工作。
tinker panic 0 |
注意:ntpd不仅仅是时间同步服务器,他还可以做客户端与标准时间服务器进行同步时间,而且是平滑同步,并非ntpdate立即同步,在生产环境中慎用ntpdate |
相关推荐
使用`netstat -tlunp | grep ntp`检查NTPD服务是否正在监听123端口,用`ntpq -p`查看NTP服务器列表和状态,以及`ntpstat`命令检查时间同步状态。 7. **配置内网NTP-Clients**: 客户端服务器的配置相对简单,只需...
1. **时间同步**:ntpd不断监听来自NTP服务器的时间信号,并根据这些信号调整本地时钟,以达到高精度的时间同步。 2. **适应性调整**:ntpd能够适应网络延迟和不稳定性,通过算法优化逐步调整时钟,避免频繁的时钟跃...
NTP 客户端和服务端的时间同步是通过 ntpd 服务实现的。NTP 客户端可以使用 ntpdate 命令或 ntpd 服务来同步时间。ntpdate 命令可以将客户端的时钟与服务器端的时钟同步,不管差异多大,都是一次调整到位。ntpd 服务...
ntpd 不仅仅是时间同步服务器,它还可以做客户端与标准时间服务器进行同步时间,而且是平滑同步,并非 ntpdate 立即同步。在生产环境中应慎用 ntpdate。由于 ntpdate 是立即同步,在获得一个时间之后,ntpdate 使用 ...
NTPd的配置文件通常是`/etc/ntp.conf`,在这里可以指定多个NTP服务器,以提高时间同步的可靠性。 在Linux环境中,正确配置时间同步对于网络通信和系统日志等关键功能至关重要。理解系统时间、硬件时间的区别以及...
启动`ntpd`服务并配置NTP服务器地址,例如: ```shell systemctl start ntpd systemctl enable ntpd ``` 然后在`/etc/ntp.conf`配置文件中添加NTP服务器地址,例如`server 192.168.0.1`。 综上所述,Linux...
然而,为了提高时间同步的准确性和稳定性,通常还会配置服务器连接到互联网上的NTP公共服务器,以获取更精确的世界标准时间。此外,还可以使用ntpd的平滑漂移功能来逐渐调整时间,避免因快速时间调整导致的问题。在...
NTP通过连接到已知的时钟服务器(也称为NTP服务器),比较本地系统时间与这些服务器的时间,然后进行微调,以确保系统时钟的准确性。以下是一些关键的步骤和概念: 1. **安装NTP**:首先,你需要在Linux系统上安装...
配置NTP服务器涉及设定服务器地址、设置安全策略、调整同步参数等。在Linux系统中,可以通过修改`/etc/ntp.conf`配置文件来完成。例如,添加服务器地址、限制客户端访问、设置时区等。 五、NTP安全考虑 NTP的安全性...
安装NTP软件包后,可以通过配置`/etc/ntp.conf`文件来指定服务器列表,并控制NTP的行为。例如,可以添加以下行来配置NTP服务器: ``` server 0.pool.ntp.org iburst server 1.pool.ntp.org iburst server 2.pool....
8. **验证配置**:最后,通过 `systemctl status ntpd` 检查 NTP 服务是否正在运行,并且与选定的时间服务器保持同步。 NTP 的工作原理涉及到复杂的算法,它可以处理网络延迟并平滑调整系统时钟,确保时钟误差最小...
2. **`ntpd`**:`ntpd`服务会周期性地检查网络时间,并平滑地调整本地时钟,以保持长期的准确同步。启动服务的命令通常是`sudo systemctl start ntpd`,并且可以设置为开机自启。 3. **`w32time`**:在Windows系统...
`ntpdate`在系统启动时一次性同步时间,而`ntpd`作为后台服务,持续监控并微调系统时钟,避免大范围的时间调整。然而,随着systemd的引入,这两个工具逐渐被`timedatectl`和`timesyncd`取代。 `timedatectl`是...
`ntpd`会周期性地向NTP服务器发送请求,获取服务器的准确时间,并根据接收到的信息调整本地系统时钟。此外,还有一些轻量级的NTP客户端工具,如`chronyd`,它更适应现代网络环境,处理延迟和抖动的能力更强。 ### ...
Linux中的NTP服务通过`ntpd`守护进程实现,它可以持续地、平滑地调整系统时间,避免时间跳跃对系统造成影响。`ntpdate`命令则可以一次性将系统时间强制设置为指定NTP服务器的时间,常与cron配合定期执行同步。 在...
所以最后的建议是:如果首次安装操作系统还未启动业务之前,建议先ntpdate,然后再开启ntpd服务与时间服务器进行实时平滑同步。这可以确保系统时间的准确性和连续性,避免时间跳变对系统的影响。 ntpd和ntpdate都是...
NTP服务器在网络中扮演着时间标准的角色,客户端可以通过`ntpdate`命令或者`ntpd`服务与其同步。 `ntpdate`命令能够快速强制同步系统时间,但它可能会导致时间的瞬间跳跃,可能对某些依赖精确时间的程序造成影响。...
NTP客户端是实现该协议的一端,用于从NTP服务器获取并同步时间。在这个实例中,我们将深入理解如何编写一个简单的NTP客户端,以连接到指定的NTP服务器并获取准确的时间。 1. **NTP协议基础** NTP协议基于UDP(用户...