NTP 时间服务器配置《三》通过ntpd服务平滑同步时间

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


NTP 时间服务器配置《三》通过ntpd服务平滑同步时间
 

5.查看网络中的NTP服务器,同时显示客户端和每个服务器的关系

[root@localhost Desktop]# ntpq -p

 

NTP 时间服务器配置《三》通过ntpd服务平滑同步时间

参数说明:

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

 

 

 

 

 

 

相关推荐