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 停止查看进程。

时间: 2025-01-24 00:02:23

Linux系统下NTP协议的超级配置攻略的相关文章

Linux系统下的动态DNS服务配置方法详解

在网络管理中,对于DNS服务的管理是一项基础性的工作.随着用户规模的扩大,频繁地手工修改DNS的区域数据库文件不是一件轻松的工作.关于动态DNS(DDNS)的研究逐渐引起了人们的关注,不同的平台都推出了自己的解决方案.本文将详细介绍Linux环境下DDNS的解决方案,即由Internet Software Consortium(ISC)开发的BIND-DNS和DHCP(Dynamic Host Configure Protocol,动态主机配置协议)协同工作,进而共同实现DDNS的方法. 在Li

Linux系统下PHP-FPM的安装和配置教程_php技巧

基本安装方法 安装工具包 $ sudo apt-get install python-software-properties 添加ppa源 $ sudo add-apt-repository ppa:yola/php5 安装php5-fpm sudo apt-get update sudo apt-get install php5-fpm 其它必要的软件安装接 sudo apt-get install nginx 配置php-fpm php-fpm的解析器是C/S结构,它的配置文件位于: (1)

CentOS Linux系统下安装Redis过程和配置参数说明_Redis

安装过程: 复制代码 代码如下: wget http://code.google.com/p/redis/downloads/detail?name=redis-2.0.4.tar.gz tar xvzf redis-2.0.4.tar.gz cd  redis-2.0.4 make mkdir /home/redis cp redis-server  /home/redis cp redis-benchmark  /home/redis cp redis-cli  /home/redis cp

Linux系统下VNC SERVER的相关配置

  安装: 代码如下: yum install tigervnc-server 配置: (1) 复制配置文件: 代码如下: ~]# cp /lib/systemd/system/vncserver@.service /etc/systemd/system/vncserver@.service[/code] (2) 编辑配置文件: [code] ExecStart=/sbin/runuser -l USER -c "/usr/bin/vncserver %i -geometry 1280x1024

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

  用惯了windows系统的用户可能一开始对linux系统掌握不好,很多功能可能用起来不是很习惯.本文就介绍了linux系统的一个小应用:在Linux系统下使用mail发送Internet邮件.不过在介绍mail之前先来看一下先来看一下sendmail服务. Red Hat上sendmail服务一般是自动启动的.可以通过下面的命令查看sendmail服务的状态: service sendmail status 如果sendmail服务未启动可以使用如下命令启动: service sendmai

linux系统下hosts文件详解及配置_linux shell

hosts文件 hosts -- the static table lookup for host name(主机名查询静态表). hosts文件是Linux系统上一个负责ip地址与域名快速解析的文件,以ascii格式保存在/etc/目录下.hosts文件包含了ip地址与主机名之间的映射,还包括主机的别名.在没有域名解析服务器的情况下,系统上的所有网络程序都通过查询该文件来解析对应于某个主机名的ip地址,否则就需要使用dns服务程序来解决.通过可以将常用的域名和ip地址映射加入到hosts文件中

Linux系统下配置软RAID及维护的例子

Linux系统下配置软RAID 一.设置磁盘 这里我们以Raid 1为例,其他的Raid级别设置类似.Riad 1需要两块硬盘,我在vps里添加了2块80G的硬盘.系统里使用fdisk –l 命令查看 二.安装mdadm mdadm 是multiple devices admin 的简称,它是Linux下的一款标准的软件RAID 管理工具. 1.先查看是否安装了mdadm软件 # rpm -qa|grep mdadm 2.如果未安装,则使用yum 方式安装. # yum install mdad

Linux系统下使用ntpdate同步时间

ntpd.ntpdate的区别 使用之前得弄清楚一个问题,ntpd与ntpdate在更新时间时有什么区别.ntpd不仅仅是时间同步服务器,他还可以做客户端与标准时间服务器进行同步时间,而且是平滑同步,并非ntpdate立即同步,在生产环境中慎用ntpdate,也正如此两者不可同时运行. 时钟的跃变,对于某些程序会导致很严重的问题.许多应用程序依赖连续的时钟--毕竟,这是一项常见的假定,即,取得的时间是线性的,一些操作,例如数据库事务,通常会地依赖这样的事实:时间不会往回跳跃.不幸的是,ntpda

Linux/Unix下ODBC的安装、配置与编程

odbc|unix|编程 Linux/Unix下ODBC的安装.配置与编程 齐亮 (cavendish@eyou.com) 2002 年 7 月 本文主要内容是介绍ODBC的简单原理,以及如何在Linux/Unix下进行ODBC的安装.配置与编程. 一. ODBC原理 ODBC 是Open Database Connect 即开放数据库互连的简称,它是由Microsoft 公司于1991 年提出的一个用于访问数据库的统一界面标准,是应用程序和数据库系统之间的中间件.它通过使用相应应用平台上和所需