Linux系统下NTP协议的超级配置攻略

  在Linux系统中,为了避免主机时间因为在长时间运行下所导致的时间偏差,进行时间同步(synchronize)的工作是非常必要的。Linux系统下,一般使用ntp服务来同步不同机器的时间。NTP 是网络时间协议(Network Time Protocol)的简称,干嘛用的呢?就是通过网络协议使计算机之间的时间同步化。

  安装NTP包

  检查是否安装了ntp相关包。如果没有安装ntp相关包,使用rpm或yum安装,安装也非常简单方便。

  复制代码

  代码如下:

  [root@localhost ~]# rpm -qa | grep

  ntpntpdate-4.2.6p5-1.el6.x86_64

  fontpackages-filesystem-1.41-1.1.el6.noarch

  ntp-4.2.6p5-1.el6.x86_64

  NTP的配置

  A: 配置/etc/ntp.conf

  NTP Server的主要配置文件为/etc/ntp.conf ,没有修改过的ntp.conf文件内容如下所示,配置选项都有相关注释信息(Linux 版本为Red Hat Enterprise Linux Server release 6.6 )

  复制代码

  代码如下:

  [root@localhost ~]# more /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 kod nomodify notrap nopeer noquery

  restrict -6 default kod 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 -6 ::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).

  server 0.rhel.pool.ntp.org iburst

  server 1.rhel.pool.ntp.org iburst

  server 2.rhel.pool.ntp.org iburst

  server 3.rhel.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

  # 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

  [root@localhost ~]# more /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 kod nomodify notrap nopeer noquery

  restrict -6 default kod 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 -6 ::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).

  server 0.rhel.pool.ntp.org iburst

  server 1.rhel.pool.ntp.org iburst

  server 2.rhel.pool.ntp.org iburst

  server 3.rhel.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

  # 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

  各个选项信息:

  #系统时间与BIOS事件的偏差记录

  driftfile /etc/ntp/drift

  restrict 控制相关权限。

  语法为: restrict IP地址 mask 子网掩码 参数

  其中IP地址也可以是default ,default 就是指所有的IP

  参数有以下几个:

  ignore :关闭所有的 NTP 联机服务

  nomodify:客户端不能更改服务端的时间参数,但是客户端可以通过服务端进行网络校时。

  notrust :客户端除非通过认证,否则该客户端来源将被视为不信任子网

  noquery :不提供客户端的时间查询:用户端不能使用ntpq,ntpc等命令来查询ntp服务器

  notrap :不提供trap远端登陆:拒绝为匹配的主机提供模式 6 控制消息陷阱服务。陷阱服务是 ntpdq 控制消息协议的子系统,用于远程事件日志记录程序。

  nopeer :用于阻止主机尝试与服务器对等,并允许欺诈性服务器控制时钟

  kod : 访问违规时发送 KoD 包。

  restrict -6 表示IPV6地址的权限设置。

  1:设定NTP主机来源(其中prefer表示优先主机),192.168.7.49是本地的NTP服务器,所以优先指定从该主机同步时间。

  复制代码

  代码如下:

  server 192.168.7.49 prefer

  server 0.rhel.pool.ntp.org iburst

  server 1.rhel.pool.ntp.org iburst

  server 2.rhel.pool.ntp.org iburst

  server 3.rhel.pool.ntp.org iburst



  2:限制你允许的这些服务器的访问类型,在这个例子中的服务器是不容许修改运行时配置或查询您的Linux NTP服务器

  复制代码

  代码如下:

  restrict 192.168.0.0 mask 255.255.255.0 notrust nomodify notrap

  在上例中,掩码地址扩展为255,因此从192.168.0.1-192.168.0.254的服务器都可以使用我们的NTP服务器来同步时间

  复制代码

  代码如下:

  #此时表示限制向从192.168.0.1-192.168.0.254这些IP段的服务器提供NTP服务。

  restrict 192.168.0.0 mask 255.255.255.0 notrust nomodify notrap noquery

  #设置默认策略为允许任何主机进行时间同步

  restrict default ignore

  3:确保localhost(这个常用的IP地址用来指Linux服务器本身)有足够权限.使用没有任何限制关键词的语法:

  复制代码

  代码如下:

  restrict 127.0.0.1

  restrict -6 ::1

  B:配置/etc/ntp/stpe-tickers文件

  修改/etc/ntp/stpe-tickers文件,内容如下(当ntpd服务启动时,会自动与该文件中记录的上层NTP服务进行时间校对)

  复制代码

  代码如下:

  [root@localhost ntp]# more /etc/ntp/step-tickers

  # List of servers used for initial synchronization.

  [root@localhost ntp]# vi /etc/ntp/step-tickers

  # List of servers used for initial synchronization.

  server 192.168.7.49 prefer

  server 0.rhel.pool.ntp.org

  server 1.rhel.pool.ntp.org

  server 2.rhel.pool.ntp.org

  server 3.rhel.pool.ntp.org

  C:配置/etc/sysconfig/ntpd文件

  ntp服务,默认只会同步系统时间。如果想要让ntp同时同步硬件时间,可以设置/etc/sysconfig/ntpd文件,在/etc/sysconfig/ntpd文件中,添加 SYNC_HWCLOCK=yes 这样,就可以让硬件时间与系统时间一起同步。

  复制代码

  代码如下:

  #允许BIOS与系统时间同步,也可以通过hwclock -w 命令

  SYNC_HWCLOCK=yes

  IPTABLES 配置

  由于NTP服务需要使用到UDP端口号123,所以当系统的防火墙(Iptables)启动的情况下,必须开放UDP端口号123。

  复制代码

  代码如下:

  [root@localhost ~]# /etc/init.d/iptables status

  Table: filter

  Chain INPUT (policy ACCEPT)

  num target prot opt source destination

  1 ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED

  2 ACCEPT icmp -- 0.0.0.0/0 0.0.0.0/0

  3 ACCEPT all -- 0.0.0.0/0 0.0.0.0/0

  4 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:22

  5 REJECT all -- 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibited

  Chain FORWARD (policy ACCEPT)

  num target prot opt source destination

  1 REJECT all -- 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibited

  Chain OUTPUT (policy ACCEPT)

  num target prot opt source destination

  [root@localhost ~]# /sbin/iptables -I INPUT -p udp --dport 123 -j ACCEPT

  [root@localhost ~]# /etc/init.d/iptables status

  Table: filter

  Chain INPUT (policy ACCEPT)

  num target prot opt source destination

  1 ACCEPT udp -- 0.0.0.0/0 0.0.0.0/0 udp dpt:123

  2 ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED

  3 ACCEPT icmp -- 0.0.0.0/0 0.0.0.0/0

  4 ACCEPT all -- 0.0.0.0/0 0.0.0.0/0

  5 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:22

  6 REJECT all -- 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibited

  Chain FORWARD (policy ACCEPT)

  num target prot opt source destination

  1 REJECT all -- 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibited

  Chain OUTPUT (policy ACCEPT)

  num target prot opt source destination

  [root@localhost ~]#



  如果防火墙没有开放UDP端口号123,有可能出现下面情况。

  复制代码

  代码如下:

  [root@localhost ~]# /usr/sbin/ntpq -c rv | grep stratum

  stratum=16, precision=-24, rootdelay=0.000, rootdisp=3.525, refid=INIT,

  [root@localhost~]#

  A stratum level of 16 indicates that NTP is not synchronizing correctly.If a stratum level of 16 is detected, wait 15 minutes and issue the command again. It may take this long for the NTP server to stabilize.If NTP continues to detect a stratum level of 16, verify that the NTP port (UDP Port 123) is open on all firewalls between the cluster and the remote machine you are attempting to synchronize to.

  启动NTP服务

  复制代码

  代码如下:

  [root@localhost ~]# service ntpd status

  ntpd is stopped

  [root@localhost ~]# service ntpd start

  Starting ntpd: [ OK ]

  [root@localhost ~]#

  service ntpd status #查看ntpd服务状态

  service ntpd start #启动ntpd服务

  service ntpd stop #停止ntpd服务

  service ntpd restart #重启ntpd服务

  检查ntp服务是否开机启动,将其设置为开机启动。

  [root@localhost ~]# chkconfig --list ntpd

  ntpd 0:off 1:off 2:off 3:off 4:off 5:off 6:off

  [root@localhost ~]# runlevel

  N 3

  [root@localhost ~]# chkconfig ntpd on #在运行级别2、3、4、5上设置为自动运行

  [root@localhost ~]# chkconfig --list ntpd

  ntpd 0:off 1:off 2:on 3:on 4:on 5:on 6:off

  [root@localhost ~]#

  如果要设置在运行级别上自动运行,可以使用下面命令

  复制代码

  代码如下:

  chkconfig --level 345 ntpd on

  可以用下面命令检测NTP服务是否运行

  复制代码

  代码如下:

  [root@localhost ~]# pgrep ntpd

  2639

  2641

  [root@localhost ~]# netstat -tlunp | grep ntp #如果看到123端口,说明ntp服务成功启动。

  udp 0 0 192.168.7.224:123 0.0.0.0:* 2639/ntpd

  udp 0 0 127.0.0.1:123 0.0.0.0:* 2639/ntpd

  udp 0 0 0.0.0.0:123 0.0.0.0:* 2639/ntpd

  udp 0 0 fe80::250:56ff:feb3:b5:123 :::* 2639/ntpd

  udp 0 0 ::1:123 :::* 2639/ntpd

  udp 0 0 :::123 :::* 2639/ntpd

  [root@localhost ~]#



  查看ntp服务器有无和上层ntp连通

  复制代码

  代码如下:

  [root@localhost ~]# ntpstat

  synchronised to NTP server (192.168.7.49) at stratum 6

  time correct to within 440 ms

  polling server every 128 s

  [root@localhost ~]#

  查看ntp服务器与上层ntp的状态



  remote - 本机和上层ntp的ip或主机名,“+”表示优先,“*”表示次优先

  refid - 参考上一层ntp主机地址

  st - stratum阶层

  when - 多少秒前曾经同步过时间

  poll - 下次更新在多少秒后

  reach - 已经向上层ntp服务器要求更新的次数

  delay - 网络延迟

  offset - 时间补偿

  jitter - 系统时间与bios时间差

  要查看 ntpd 进程的状态,请运行以下命令,按 Ctrl+C 停止查看进程。



  remote - 本机和上层ntp的ip或主机名,“+”表示优先,“*”表示次优先

  refid - 参考上一层ntp主机地址

  st - stratum阶层

  when - 多少秒前曾经同步过时间

  poll - 下次更新在多少秒后

  reach - 已经向上层ntp服务器要求更新的次数

  delay - 网络延迟

  offset - 时间补偿

  jitter - 系统时间与bios时间差

  要查看 ntpd 进程的状态,请运行以下命令,按 Ctrl+C 停止查看进程。

(0)

相关推荐

  • 如何在LINUX系统下修改debian wheezy默认配置的方法

    debian wheezy修改默认配置 环境:Thinkpad T420s + Debian Wheezy 1,thinkpad禁用触摸板(反正我是一直不习惯用触摸板)在 /etc/profile 配 ...

  • linux系统下邮件服务器sendmail的配置

    安装所需软件 sendmail.8.12.10.tar.gz http://www.sendmail.org/ cyrus-sasl-2.1.18.tar.gz http://asg.web.cmu. ...

  • Linux系统下VNC SERVER的相关配置

    安装: 代码如下: yum install tigervnc-server 配置: (1) 复制配置文件: 代码如下: ~]# cp /lib/systemd/system/vncserver@.se ...

  • Windows7系统下XP Mode下载.安装.设置攻略

    Windows 7携带了一个特别的功能:Windows XP Mode,又叫XP兼容模式,这个模式专门是为了解决一些应用程序在Windows 7下不兼容而特别制定的,通过它,这些应用程序可能会在XP兼 ...

  • Linux系统下动态DNS服务的详细配置教程

    Linux系统 是我们不常接触的系统,但他又有很多值得我们利用的功能,今天介绍一个在linux系统下配置动态DNS服务器 在网络管理中,对于DNS服务的管理是一项基础性的工作.随着用户规模的扩大,频繁 ...

  • Linux系统下使用mail发送Internet邮件的配置方法

    用惯了windows系统的用户可能一开始对linux系统掌握不好,很多功能可能用起来不是很习惯。本文就介绍了linux系统的一个小应用:在Linux系统下使用mail发送Internet邮件。不过在介 ...

  • Linux系统下配置HTTP负载均衡系统以扛流量增加

    随着网络流量的增加,服务器开始面临繁重负载,这时就需要搭配一套HTTP负载均衡系统了,那么Linux下该如何配置HTTP负载均衡系统呢?随小编一起来学习一下吧。 如今对基于互联网的应用和服务的要求越来 ...

  • linux系统下如何查看服务状态及启停用服务

    linux系统下经常需要查看服务的状态和启停用服务,下面介绍下如何快速得找到服务并实现启停用. 操作方法 01 进入linux系统后,在普通用户模式下输入su - 输入密码,切换到root用户下. 0 ...

  • Linux系统下动态库的生成

    什么是动态库? 动态库又称动态链接库英文为DLL,是Dynamic Link Library 的缩写形式,DLL是一个包含可由多个程序同时使用的代码和数据的库,DLL不是可执行文件。动态链接提供了一种 ...