centos6 & centos7搭建ntp服务器

原理

NTP(Network TimeProtocol,网络时间协议)是用来使计算机时间同步的一种协议。它可以使计算机对其服务器或时钟源做同步化,它可以提供高精准度的时间校正(LAN上与标准间差小于1毫秒,WAN上几十毫秒),切可介由加密确认的方式来防止恶意的协议攻击。

运行模式:C/S模式

运行端口/协议:123/udp

安装

直接使用 yum 安装:

yum install ntp ntpdate

配置

配置文件 /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 192.168.137.1 mask 255.255.255.0 nomodify #允许更新的IP地址段 restrict ::1 # 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). # perfer:表示优先级最高,如果不设置,从上到下,写的越靠上,优先级越高 # iburst:当一个运程NTP服务器不可用时,向它发送一系列的并发包进行检测 server cn.pool.ntp.org iburst perfer # 中国国家授时中心ntp服务器 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 # local clock 如果上面的服务器都无法同步时间,就和本地系统时间同步。127.127.1.0在这里是一个IP地址,不是网段。 # 127.127.1.0 为第10层。ntp 和127.127.1.0同步完后,就变成了11层。 ntp是层次阶级的。同步上层服务器的stratum 大小不能超过或等于16# 在实际搭建中如果设置了local clock会出现即使ntp服务器本身时间不准确也不会和上层ntp服务器同步的问题,故注释。 # 具体原因待研究 #server 127.127.1.0 #fudge 127.127.1.0 stratum 8 #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 # 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 

启动

centos6

启动:service ntpd start

停止:service ntpd stop

设置开机启动:chkconfig ntpd on

查看启动状态:service ntpd status

查看日志: tailf /var/log/message

查看端口:netstat -ulnp | grep -w 123

centos7

启动:systemctl start ntpd

停止:systemctl stop ntpd

设置开机启动:systemctl enable ntpd

查看启动状态:systemctl status ntpd

查看日志: tailf /var/log/message

查看端口:netstat -ulnp | grep -w 123

注意: ntpd 有一个自我保护设置:如果本机与上源时间相差太大,ntpd 不运行。所以新设置的时间服务器一定要先ntpdate 从上源取得时间初值,然后再启动 ntpd 服务。

查看同步状态

使用命令 ntpq -p 查看同步状态,ntpstat 列出是否与上游服务器连接。

[root@centos751 ~]# ntpq -p
     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
 ntp7.flashdance .INIT.          16 u    -   64    0    0.000    0.000 0.000 *106.39.20.237 108.196.98.101 2 u 202 64 10 48.325 -4.794 0.997 ntp1.ams1.nl.le 130.133.1.10 2 u 82 64 2 440.047 -111.75 0.000 ntp2.flashdance 192.36.143.130 2 u 7 64 7 268.049 -2.210 45.428 static-5-103-13 .INIT. 16 u - 64 0 0.000 0.000 0.000 [root@centos751 ~]# 
  • remote:即remote - 本机和上层ntp的ip或主机名,“+”表示优先,“*”表示次优先。
  • refid:参考的上一层NTP主机的地址
  • st:即stratum阶层
  • poll:下次更新在几秒之后
  • offset:时间补偿的结果
[root@centos751 ~]# ntpstat 
synchronised to NTP server (106.39.20.237) at stratum 3 	# 可以看到我们当前在3层
   time correct to within 350 ms polling server every 64 s [root@centos751 ~]# 

客户端同步时间

使用 ntpdate 同步

[root@centos752 ~]# ntpdate 192.168.223.101 22 Oct 17:19:08 ntpdate[29924]: adjust time server 192.168.223.101 offset -0.001306 sec 

这种方法同步一次后如果时间久了,可能时间又会不准确,所以一般是使用 cron 任务定时同步

*/10 * * * * /usr/sbin/ntpdate 192.168.223.101 | logger -t NTP

拓展补充

1、linux系统时间和BIOS时间

有时候linux系统时间和BIOS时间是不一样的,如果不一样怎么解决呢?方法如下:

a、首先 hwclock -r 读出BIOS的时间参数,查看是否准确

b、如果不准确,使用 hwclock -w 将当前系统时间(已同步准确)写入BIOS中

2、不同机器之间的时间同步

为了避免主机时间因为长期运作下所导致的时间偏差,进行时间同步的工作是非常必要的。 同步时间,可以使用ntpdate命令,也可以使用ntp服务。主要的方法有以下3种。

a、使用 ntpdate 配合 cron 同步公网NTP服务器时间

*/10 * * * * /usr/sbin/ntpdate cn.pool.ntp.org | logger -t NTP

b、将主机搭建成 ntp 服务器同步上层NTP服务器时间

以上两种方法有弊端:必须主机可以连接公网,但是有的时候集群当中有部分主机是不能连接公网的,这时候就要用到第三种的方法

c、将内网中能连接公网的主机搭建成 ntp 服务器同步公网上层NTP服务器时间,然后内网中其他主机使用 ntpdate 定时同步此NTP服务器时间或者搭建成 ntp 服务器并将上层NTP服务器设置为次NTP服务器

猜你喜欢

转载自www.cnblogs.com/leffss/p/9834577.html